單片機(jī)及接口技術(shù):第8章 單片機(jī)的串行接口_第1頁
單片機(jī)及接口技術(shù):第8章 單片機(jī)的串行接口_第2頁
單片機(jī)及接口技術(shù):第8章 單片機(jī)的串行接口_第3頁
單片機(jī)及接口技術(shù):第8章 單片機(jī)的串行接口_第4頁
單片機(jī)及接口技術(shù):第8章 單片機(jī)的串行接口_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 單片微型計(jì)算機(jī)與接口技術(shù) (第4版) 第8章 單片機(jī)的串行接口 學(xué)習(xí)內(nèi)容串行通信的基本概念串行通信接口結(jié)構(gòu)和工作原理串行通信控制寄存器和工作方式串行通信的應(yīng)用編程8.1概述基本通信方式:并行通信與串行通信 串行通信分類:同步通信和異步通信 8.1.1 同步和異步方式 1.異步通信:(1幀傳輸1個(gè)字符) 發(fā)送、接收設(shè)備使用各自的時(shí)鐘控制數(shù)據(jù)的發(fā)送和接收過程優(yōu)點(diǎn):硬件結(jié)構(gòu)簡單 (單片機(jī)多采用)缺點(diǎn):傳輸速度慢P1D0D1D2D3D4D5D6D7P10第n個(gè)字符(一幀)n-1n+10D0起始位數(shù)據(jù)位(58位)校驗(yàn)位停止位2.同步通信(1幀傳輸數(shù)據(jù)塊) 由時(shí)鐘來實(shí)現(xiàn)發(fā)送端和接收端同步 優(yōu)缺點(diǎn):與異步

2、通信相反1-2個(gè)同步字符數(shù)據(jù)1數(shù)據(jù)2.數(shù)據(jù) n連續(xù)傳送n 個(gè)數(shù)據(jù)校驗(yàn)字節(jié) 8.1.2 通信方向 通信方向分類:單工、半雙工、全雙工1.單工方式(單向): 一端發(fā)送,另外一端接收 2. 半雙工方式 (雙向,不同時(shí)) 數(shù)據(jù)可以雙向傳送,但不能同時(shí)發(fā)送和接收3. 全雙工方式 (雙向,同時(shí))可以同時(shí)發(fā)送和接收數(shù)據(jù), 提高了速度串行接口的基本任務(wù): 1.實(shí)現(xiàn)數(shù)據(jù)格式化 2.進(jìn)行串、并轉(zhuǎn)換 3.控制數(shù)據(jù)的傳輸速率 4.進(jìn)行傳送錯誤檢測 8.1.3 串行通信接口的任務(wù) 通信雙方按通信協(xié)議進(jìn)行通信協(xié)議:通信雙方必須共同遵守的一種約定 8.1.4 串行接口串行通信接口: 設(shè)備之間的互連接口(如USB接口)串行擴(kuò)

3、展接口: 設(shè)備內(nèi)部器件之間的互連接口8.1.5 波特率 (串行通信數(shù)據(jù)傳輸速度) 比特率(bps):單位時(shí)間內(nèi)傳輸二進(jìn)制代碼的有效位數(shù)波特率(Baud):單位時(shí)間內(nèi)傳輸碼元符號的個(gè)數(shù)例如:120字符/秒,1個(gè)字符10位二進(jìn)制數(shù)波特率為:12010=1200波特每位傳送占用時(shí)間 (波特率的倒數(shù)) Td = 1/1200=0.833ms比特率為:1208=960 bps每位傳送占用時(shí)間 (比特率的倒數(shù)) Td = 1/960=1.04ms8.2 單片機(jī)串行口結(jié)構(gòu)與工作原理 51單片機(jī)有一個(gè)可編程的全雙工異步串行通信接口,使用靈活8.2.1串行口結(jié)構(gòu) 發(fā)送SBUF(99H)門88 圖8.7 串行口結(jié)

4、構(gòu)框圖 RXD(P3.0)TXD(P3.1)中斷接收SBUF(99H)定時(shí)器T1fosc2分頻器發(fā)送控制器接收控制器串寄行存控器制 SCON (98H)輸入移位寄存器TIRI內(nèi) 部 總 線 兩個(gè)物理上獨(dú)立的接收、發(fā)送寄存器SBUF(同名、同地址) 發(fā)送SBUF只能寫入,不能讀出,CPU寫SBUF,一方面修改發(fā)送寄存器,同時(shí)啟動數(shù)據(jù)串行發(fā)送 (如MOV SBUF, A) 接收SBUF只能讀出、不能寫入。讀SBUF,就是讀接收寄存器 (如MOV A, SBUF)shiftMOV A , SBUF串行數(shù)據(jù)CPUCPU SBUF SBUFshiftMOV SBUF , A并行數(shù)據(jù)并行數(shù)據(jù)甲機(jī)(發(fā)送)乙

5、機(jī)(接收) 甲機(jī):執(zhí)行 MOV SBUF ,A 啟動發(fā)送,數(shù)據(jù)送入SBUF ,在發(fā)送時(shí)鐘 shift的控制下由低到高一位一位發(fā)送,一幀數(shù)據(jù)發(fā)送完畢(先),置位TI(后),可作查詢/中斷請求。8.2.2工作原理TIRI乙機(jī):在接收時(shí)鐘 shift 的控制下由低到高順序進(jìn)入SBUF ,接收緩沖器滿,置位RI(先),可作查詢/中斷請求,通過MOV A ,SBUF ,CPU將這幀數(shù)據(jù)并行讀入(后)。由上述可知:查詢/中斷方式時(shí) 發(fā)送:先發(fā)數(shù)據(jù)再查TI,接收:先查RI再收數(shù)據(jù)2.通信雙方應(yīng)具有相同波特率8.2.3 波特率的設(shè)定 串行通信波特率:固定/可變1.來自內(nèi)部時(shí)鐘的分頻值,為固定波特率2.T1作波

6、特率發(fā)生器,改變計(jì)數(shù)初值可改變串行通信的速率,為可變波特率8.3 串行口的控制寄存器 (3個(gè))8.3.1 串行控制寄存器SCON (98H,可位尋址) 8XX51串行通信的方式選擇 ,接收和發(fā)送控制及串行口的標(biāo)志均由SCON控制和指示,其格式如下:SM0SM1 SM2RENTB8RB8TIRI方式選擇多機(jī)控制串行接收允許/禁止欲發(fā)的第九位收到的第九位發(fā)送中斷有/無接收中斷有/無SM0.SM1:串行口工作方式控制位 0 0-方式0, 0 1-方式1 1 0-方式2, 1 1-方式3REN:串行接收允許位 0-禁止接收, 1-允許接收TB8: 在方式2,3中,TB8是發(fā)送機(jī)要發(fā)送的第9位數(shù)據(jù)RB8

7、:在方式2,3中,RB8是接收機(jī)收到的第9位數(shù)據(jù), 該數(shù)據(jù)來自發(fā)送機(jī)的TB8TI: 發(fā)送中斷標(biāo)志位 (人工清零,機(jī)器置1,可查詢或請求中斷)RI: 接收中斷標(biāo)志位 (人工清零,機(jī)器置1,可查詢或請求中斷)SM2:多機(jī)通信控制位,僅用于方式2和方式3SM2的作用:在方式2,3中,發(fā)送機(jī)SM2=1 (程序設(shè)置). 接收機(jī)SM2=1,若RB8=1,激活RI,引起接收中斷 RB8=0,不激活RI,不引起中斷 SM2=0, RB8=1/RB8=0均激活RI引起接收中斷。在方式1中, 當(dāng)接收時(shí)SM2=1, 則只有收到有效停止位 才激活RI在方式0中, SM2應(yīng)置為0PCON對CHMOS的單片機(jī)而設(shè), 初始

8、化時(shí)SMOD=0*IE寄存器 (中斷允許位ES位, P102)SMODXXXXXXXPCON87H 8.3.2 電源控制寄存器PCON (87H,不可位尋址)串行通信只用最高位SMODSMOD : 波特率加倍位 SMOD0 不加倍; SMOD1 加倍 (MOV PCON, #80H; ?) 8.4 串行口的工作方式 (4種)1.方式0(8位移位寄存器方式擴(kuò)展) RXD為串行數(shù)據(jù)的發(fā)送端或接收端, TXD輸出頻率為fosc/12的時(shí)鐘脈沖波特率固定為fosc/12發(fā):清TI(人工) MOV SBUF,A8位數(shù)據(jù)移出(RXD) TI 置1(機(jī)器)收:清RI(人工) ,REN=1(人工)8位數(shù)據(jù)移入

9、(RXD) RI 置1(機(jī)器) MOV A, SBUF數(shù)據(jù)格式為8位,低位在前,高位在后 方式0多用于接口的擴(kuò)展(并行口)2.方式1 (波特率可變) 為10位異步通信方式, 每幀由1起始位 、數(shù)據(jù)位和1停止位構(gòu)成。起始位和停止位在發(fā)送時(shí)自動插入TXD為串行數(shù)據(jù)的發(fā)送端RXD為數(shù)據(jù)的接收端由T1提供溢出率, 波特率可變 波特率=(2SMOD/32)(T1的溢出率) =(2SMOD/32)(fosc/12(256-X)根據(jù)給定的波特率,可以計(jì)算T1的計(jì)數(shù)初值X溢出率:定時(shí)器一秒鐘內(nèi)的溢出次數(shù) (定時(shí)時(shí),頻率)T1溢出率=1/(T1溢出周期)=1/(MC*計(jì)數(shù)個(gè)數(shù)) =1/(12/ fosc)*(2

10、8-C) =fosc/12(256-C)(T1方式,C為計(jì)數(shù)初值) C=X=256-(fosc*2SMOD)/384*波特率 3. 方式2 (波特率固定) 11位異步發(fā)送/接收方式 1起始位,9數(shù)據(jù)位和1停止位組成. 發(fā)送時(shí)第9個(gè)數(shù)據(jù)位,由SCON的TB8位提供, 接收到第9位數(shù)據(jù)存放在SCON的RB8位. 第9位數(shù)據(jù)可作為檢驗(yàn)位,也可用于多機(jī)通信中識別傳送的是地址(=1)還是數(shù)據(jù)(=0)的特征位 波特率為(2SMOD/64)fosc.(兩種)4. 方式3 (波特率可變) 數(shù)據(jù)格式同方式2,不同的是波特率可變,計(jì)算方式同方式1* 1)方式13為異步串行通信方式 2)方式0:擴(kuò)展I/O用 3)方

11、式1,方式3波特率與T1溢出率有關(guān)(編程設(shè)定T1) 4)波特率固定:方式0和方式2 波特率可變:方式1和方式3 溢出率?8.5 串行口的應(yīng)用編程串行通信編程要點(diǎn): 1)確定波特率 (收,發(fā)一致)2)填寫SCON控制字3)查詢方式/中斷方式? (TI/RI,清零)4)收/發(fā)約定發(fā)送數(shù)據(jù)開始8.5.1 查詢方式查詢方式發(fā)送流程圖和接收流程圖見下頁T1初始化、啟動T1工作設(shè)定串行通信方式置發(fā)送數(shù)據(jù)塊首址數(shù)據(jù)塊長度計(jì)數(shù)器清TI發(fā)送數(shù)據(jù)TI1?修改地址指針和塊長度計(jì)數(shù)器全部數(shù)據(jù)發(fā)送完?開始結(jié)束查詢方式發(fā)送流程圖YNYNT1初始化、啟動T1工作設(shè)定串行通信方式,允許接收置接收緩沖區(qū)首址接收數(shù)據(jù)塊長度清RI

12、RI1?修改地址指針和塊長度計(jì)數(shù)器全部數(shù)據(jù)接收完?開始結(jié)束接收數(shù)據(jù)查詢方式接收流程圖YNYN8.5.2 中斷方式 中斷方式對T1和SCON的初始化編程同查詢方式,但要開中斷,即置位EA和ES,編寫中斷服務(wù)程序中斷方式串行通信的程序流程見下圖:設(shè)定T1和SCON置發(fā)送數(shù)據(jù)塊首址數(shù)據(jù)塊長度計(jì)數(shù)器發(fā)送數(shù)據(jù)全部數(shù)據(jù)發(fā)送完?N中斷方式發(fā)送流程圖等待中斷1 EA, 1ES發(fā)送數(shù)據(jù)中斷返回0 EA,0ES中斷服務(wù)程序主程序修改地址指針和塊長度計(jì)數(shù)器清TIYT1初始化、啟動T1工作設(shè)定SCON,REN=1置接收數(shù)據(jù)塊首址數(shù)據(jù)塊長度計(jì)數(shù)器全部數(shù)據(jù)接收完?Y中斷方式接收流程圖等待中斷1 EA, 1ES中斷返回0

13、EA, 0ES中斷服務(wù)程序主程序修改地址指針和塊長度計(jì)數(shù)器清RI接收數(shù)據(jù)N串行口初始化編程格式:SIO:MOV SCON,#控制字 ;寫方式字且 TI=RI=0,REN=1? (MOV PCON,#80H) ;波特率加倍 ( MOV TMOD,#20H ) ;T1作波特率發(fā)生器 ( MOV TH1,#X ) ;選定波特率 ( MOV TL1,#X ) ( SETB TR1) ( SETB EA) ;開串行口中斷 ( SETB ES) . . (MOV SBUF,A ) ;發(fā)送數(shù)據(jù) . . (MOV A, SBUF) ;接收數(shù)據(jù)例8-1. 在內(nèi)部數(shù)據(jù)存貯器20H3FH單元中共有32個(gè)數(shù)據(jù),要求采

14、用方式1串行發(fā)送出去,傳送速率為1200波特,設(shè)fosc12MHz。 解: T1工作于方式2作波特率發(fā)生器,取SMOD0,T1的計(jì)數(shù)初值計(jì)算如下: 波特率 1200(1/32)1210 /12(256-X) X230E6H 2SMOD fosc12(256-X)326 發(fā)送程序:(查詢方式、甲機(jī)ROM) ORG 0000H MOV TMOD, #20H ;T1方式2,門控關(guān),定時(shí) MOV TH1, #0E6H MOV TL1, #0E6H ;T1計(jì)數(shù)初值 SETB TR1 ;啟動T1 MOV SCON,#40H ;串行方式1,禁接收,清RI,TI,非多機(jī) MOV R0, #20H ;R0指示發(fā)

15、送緩沖區(qū)首址 MOV R7, #32 ;R7作發(fā)送數(shù)據(jù)計(jì)數(shù)LO: MOV SBUF,R0 ;發(fā)送數(shù)據(jù)(更新SBUF) JNB TI, ;一幀未發(fā)完繼續(xù)查詢 CLR TI ;一幀發(fā)完清TI(人工) INC R0 ;指向下一數(shù)據(jù)單元 DJNZ R7, LO ;數(shù)據(jù)塊未發(fā)完繼續(xù) SJMP 接收程序: (查詢方式、乙機(jī)ROM) ORG 0000H MOV TMOD, #20H MOV TH1, #0E6H MOV TL1, #0E6H SETB TR1 ;初始化T1,并啟動T1(同甲機(jī)) MOV SCON,#50H ;串行方式1,許接收,清RI,TI,非多機(jī) MOV R0, #20H ;R0指示接收緩

16、沖區(qū)首址 MOV R7, #32 ;數(shù)據(jù)個(gè)數(shù) LOOP:JNB RI, ;一幀收完? CLR RI ;收完清RI MOV R0, SBUF ;將數(shù)據(jù)讀入 INC R0 ;指向下一單元 DJNZ R7, LOOP ;數(shù)據(jù)塊未收完繼續(xù) SJMP RXD89S51TXDP1.0例8-2 接線如圖,編一個(gè)自發(fā)自收程序,檢查單片機(jī)的串行口是否完好,f=12MHz,波特率600,取SMOD0。解:依據(jù)公式波特率 求得 匯編語言編程 MOV TMOD,#20H ;T1方式2,門控關(guān),定時(shí) MOV TH1, #0CCH MOV TL1, #0CCH ; 設(shè)定波特率,計(jì)數(shù)初值 SETB TR1 ;啟動T1 MO

17、V SCON, #50H ;串行方式1,許接收,清RI,TI,非多機(jī) ABC: CLR TI ;清TI,為下一次發(fā)送準(zhǔn)備 MOV P1, #0FEH ; LED滅(P1.0=0) ACALL DAY ; 延時(shí) MOV A, #OFFH MOV SBUF, A ; 發(fā)送數(shù)據(jù)FFH(TI=0后) JNB RI, $ ;RI 1等待 CLR RI ;清RI,為下一次接收準(zhǔn)備 MOV A, SBUF ; 接收數(shù)據(jù),A=FFH (CJNE A,#0FFH,ABC ;判接收正確?出錯轉(zhuǎn)) MOV P1, A ; 燈亮(P1.0=1) JNB TI, $ ; TI 1等待 ACALL DAY ; 延時(shí) SJ

18、MP ABCDAY: MOV R0, #0 ;1MC1次DAL: MOV R1, #0 ;1MC256次 DJNZ R1, $ ;2MC256256次 DJNZ R0, DAL ;2MC256次 RET ;2MC1次 總計(jì)131843MC次,延時(shí)?如果發(fā)送接收正確,可觀察到P1.0接的發(fā)光二極管閃亮8.6 利用串行口方式0擴(kuò)展I/O口例8-4 利用串行通信方式0和串入并出移位寄存器74LS164擴(kuò)展輸出接口,接8個(gè)數(shù)碼管,使內(nèi)部數(shù)據(jù)存儲器58H5FH單元的內(nèi)容依次顯示在8個(gè)數(shù)碼管上。數(shù)碼管為共陽極,字形碼“0”“F”列在表TAB中,58H5FH單元的內(nèi)容均為0XH。 分析 串口工作方式0時(shí),可方便連接串入并出寄存器74LS164, TXD

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論