




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 單片微型計算機與接口技術 (第4版) 第8章 單片機的串行接口 學習內(nèi)容串行通信的基本概念串行通信接口結(jié)構(gòu)和工作原理串行通信控制寄存器和工作方式串行通信的應用編程8.1概述基本通信方式:并行通信與串行通信 串行通信分類:同步通信和異步通信 8.1.1 同步和異步方式 1.異步通信:(1幀傳輸1個字符) 發(fā)送、接收設備使用各自的時鐘控制數(shù)據(jù)的發(fā)送和接收過程優(yōu)點:硬件結(jié)構(gòu)簡單 (單片機多采用)缺點:傳輸速度慢P1D0D1D2D3D4D5D6D7P10第n個字符(一幀)n-1n+10D0起始位數(shù)據(jù)位(58位)校驗位停止位2.同步通信(1幀傳輸數(shù)據(jù)塊) 由時鐘來實現(xiàn)發(fā)送端和接收端同步 優(yōu)缺點:與異步
2、通信相反1-2個同步字符數(shù)據(jù)1數(shù)據(jù)2.數(shù)據(jù) n連續(xù)傳送n 個數(shù)據(jù)校驗字節(jié) 8.1.2 通信方向 通信方向分類:單工、半雙工、全雙工1.單工方式(單向): 一端發(fā)送,另外一端接收 2. 半雙工方式 (雙向,不同時) 數(shù)據(jù)可以雙向傳送,但不能同時發(fā)送和接收3. 全雙工方式 (雙向,同時)可以同時發(fā)送和接收數(shù)據(jù), 提高了速度串行接口的基本任務: 1.實現(xiàn)數(shù)據(jù)格式化 2.進行串、并轉(zhuǎn)換 3.控制數(shù)據(jù)的傳輸速率 4.進行傳送錯誤檢測 8.1.3 串行通信接口的任務 通信雙方按通信協(xié)議進行通信協(xié)議:通信雙方必須共同遵守的一種約定 8.1.4 串行接口串行通信接口: 設備之間的互連接口(如USB接口)串行擴
3、展接口: 設備內(nèi)部器件之間的互連接口8.1.5 波特率 (串行通信數(shù)據(jù)傳輸速度) 比特率(bps):單位時間內(nèi)傳輸二進制代碼的有效位數(shù)波特率(Baud):單位時間內(nèi)傳輸碼元符號的個數(shù)例如:120字符/秒,1個字符10位二進制數(shù)波特率為:12010=1200波特每位傳送占用時間 (波特率的倒數(shù)) Td = 1/1200=0.833ms比特率為:1208=960 bps每位傳送占用時間 (比特率的倒數(shù)) Td = 1/960=1.04ms8.2 單片機串行口結(jié)構(gòu)與工作原理 51單片機有一個可編程的全雙工異步串行通信接口,使用靈活8.2.1串行口結(jié)構(gòu) 發(fā)送SBUF(99H)門88 圖8.7 串行口結(jié)
4、構(gòu)框圖 RXD(P3.0)TXD(P3.1)中斷接收SBUF(99H)定時器T1fosc2分頻器發(fā)送控制器接收控制器串寄行存控器制 SCON (98H)輸入移位寄存器TIRI內(nèi) 部 總 線 兩個物理上獨立的接收、發(fā)送寄存器SBUF(同名、同地址) 發(fā)送SBUF只能寫入,不能讀出,CPU寫SBUF,一方面修改發(fā)送寄存器,同時啟動數(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ù)甲機(發(fā)送)乙
5、機(接收) 甲機:執(zhí)行 MOV SBUF ,A 啟動發(fā)送,數(shù)據(jù)送入SBUF ,在發(fā)送時鐘 shift的控制下由低到高一位一位發(fā)送,一幀數(shù)據(jù)發(fā)送完畢(先),置位TI(后),可作查詢/中斷請求。8.2.2工作原理TIRI乙機:在接收時鐘 shift 的控制下由低到高順序進入SBUF ,接收緩沖器滿,置位RI(先),可作查詢/中斷請求,通過MOV A ,SBUF ,CPU將這幀數(shù)據(jù)并行讀入(后)。由上述可知:查詢/中斷方式時 發(fā)送:先發(fā)數(shù)據(jù)再查TI,接收:先查RI再收數(shù)據(jù)2.通信雙方應具有相同波特率8.2.3 波特率的設定 串行通信波特率:固定/可變1.來自內(nèi)部時鐘的分頻值,為固定波特率2.T1作波
6、特率發(fā)生器,改變計數(shù)初值可改變串行通信的速率,為可變波特率8.3 串行口的控制寄存器 (3個)8.3.1 串行控制寄存器SCON (98H,可位尋址) 8XX51串行通信的方式選擇 ,接收和發(fā)送控制及串行口的標志均由SCON控制和指示,其格式如下:SM0SM1 SM2RENTB8RB8TIRI方式選擇多機控制串行接收允許/禁止欲發(fā)的第九位收到的第九位發(fā)送中斷有/無接收中斷有/無SM0.SM1:串行口工作方式控制位 0 0-方式0, 0 1-方式1 1 0-方式2, 1 1-方式3REN:串行接收允許位 0-禁止接收, 1-允許接收TB8: 在方式2,3中,TB8是發(fā)送機要發(fā)送的第9位數(shù)據(jù)RB8
7、:在方式2,3中,RB8是接收機收到的第9位數(shù)據(jù), 該數(shù)據(jù)來自發(fā)送機的TB8TI: 發(fā)送中斷標志位 (人工清零,機器置1,可查詢或請求中斷)RI: 接收中斷標志位 (人工清零,機器置1,可查詢或請求中斷)SM2:多機通信控制位,僅用于方式2和方式3SM2的作用:在方式2,3中,發(fā)送機SM2=1 (程序設置). 接收機SM2=1,若RB8=1,激活RI,引起接收中斷 RB8=0,不激活RI,不引起中斷 SM2=0, RB8=1/RB8=0均激活RI引起接收中斷。在方式1中, 當接收時SM2=1, 則只有收到有效停止位 才激活RI在方式0中, SM2應置為0PCON對CHMOS的單片機而設, 初始
8、化時SMOD=0*IE寄存器 (中斷允許位ES位, P102)SMODXXXXXXXPCON87H 8.3.2 電源控制寄存器PCON (87H,不可位尋址)串行通信只用最高位SMODSMOD : 波特率加倍位 SMOD0 不加倍; SMOD1 加倍 (MOV PCON, #80H; ?) 8.4 串行口的工作方式 (4種)1.方式0(8位移位寄存器方式擴展) RXD為串行數(shù)據(jù)的發(fā)送端或接收端, TXD輸出頻率為fosc/12的時鐘脈沖波特率固定為fosc/12發(fā):清TI(人工) MOV SBUF,A8位數(shù)據(jù)移出(RXD) TI 置1(機器)收:清RI(人工) ,REN=1(人工)8位數(shù)據(jù)移入
9、(RXD) RI 置1(機器) MOV A, SBUF數(shù)據(jù)格式為8位,低位在前,高位在后 方式0多用于接口的擴展(并行口)2.方式1 (波特率可變) 為10位異步通信方式, 每幀由1起始位 、數(shù)據(jù)位和1停止位構(gòu)成。起始位和停止位在發(fā)送時自動插入TXD為串行數(shù)據(jù)的發(fā)送端RXD為數(shù)據(jù)的接收端由T1提供溢出率, 波特率可變 波特率=(2SMOD/32)(T1的溢出率) =(2SMOD/32)(fosc/12(256-X)根據(jù)給定的波特率,可以計算T1的計數(shù)初值X溢出率:定時器一秒鐘內(nèi)的溢出次數(shù) (定時時,頻率)T1溢出率=1/(T1溢出周期)=1/(MC*計數(shù)個數(shù)) =1/(12/ fosc)*(2
10、8-C) =fosc/12(256-C)(T1方式,C為計數(shù)初值) C=X=256-(fosc*2SMOD)/384*波特率 3. 方式2 (波特率固定) 11位異步發(fā)送/接收方式 1起始位,9數(shù)據(jù)位和1停止位組成. 發(fā)送時第9個數(shù)據(jù)位,由SCON的TB8位提供, 接收到第9位數(shù)據(jù)存放在SCON的RB8位. 第9位數(shù)據(jù)可作為檢驗位,也可用于多機通信中識別傳送的是地址(=1)還是數(shù)據(jù)(=0)的特征位 波特率為(2SMOD/64)fosc.(兩種)4. 方式3 (波特率可變) 數(shù)據(jù)格式同方式2,不同的是波特率可變,計算方式同方式1* 1)方式13為異步串行通信方式 2)方式0:擴展I/O用 3)方
11、式1,方式3波特率與T1溢出率有關(編程設定T1) 4)波特率固定:方式0和方式2 波特率可變:方式1和方式3 溢出率?8.5 串行口的應用編程串行通信編程要點: 1)確定波特率 (收,發(fā)一致)2)填寫SCON控制字3)查詢方式/中斷方式? (TI/RI,清零)4)收/發(fā)約定發(fā)送數(shù)據(jù)開始8.5.1 查詢方式查詢方式發(fā)送流程圖和接收流程圖見下頁T1初始化、啟動T1工作設定串行通信方式置發(fā)送數(shù)據(jù)塊首址數(shù)據(jù)塊長度計數(shù)器清TI發(fā)送數(shù)據(jù)TI1?修改地址指針和塊長度計數(shù)器全部數(shù)據(jù)發(fā)送完?開始結(jié)束查詢方式發(fā)送流程圖YNYNT1初始化、啟動T1工作設定串行通信方式,允許接收置接收緩沖區(qū)首址接收數(shù)據(jù)塊長度清RI
12、RI1?修改地址指針和塊長度計數(shù)器全部數(shù)據(jù)接收完?開始結(jié)束接收數(shù)據(jù)查詢方式接收流程圖YNYN8.5.2 中斷方式 中斷方式對T1和SCON的初始化編程同查詢方式,但要開中斷,即置位EA和ES,編寫中斷服務程序中斷方式串行通信的程序流程見下圖:設定T1和SCON置發(fā)送數(shù)據(jù)塊首址數(shù)據(jù)塊長度計數(shù)器發(fā)送數(shù)據(jù)全部數(shù)據(jù)發(fā)送完?N中斷方式發(fā)送流程圖等待中斷1 EA, 1ES發(fā)送數(shù)據(jù)中斷返回0 EA,0ES中斷服務程序主程序修改地址指針和塊長度計數(shù)器清TIYT1初始化、啟動T1工作設定SCON,REN=1置接收數(shù)據(jù)塊首址數(shù)據(jù)塊長度計數(shù)器全部數(shù)據(jù)接收完?Y中斷方式接收流程圖等待中斷1 EA, 1ES中斷返回0
13、EA, 0ES中斷服務程序主程序修改地址指針和塊長度計數(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個數(shù)據(jù),要求采
14、用方式1串行發(fā)送出去,傳送速率為1200波特,設fosc12MHz。 解: T1工作于方式2作波特率發(fā)生器,取SMOD0,T1的計數(shù)初值計算如下: 波特率 1200(1/32)1210 /12(256-X) X230E6H 2SMOD fosc12(256-X)326 發(fā)送程序:(查詢方式、甲機ROM) ORG 0000H MOV TMOD, #20H ;T1方式2,門控關,定時 MOV TH1, #0E6H MOV TL1, #0E6H ;T1計數(shù)初值 SETB TR1 ;啟動T1 MOV SCON,#40H ;串行方式1,禁接收,清RI,TI,非多機 MOV R0, #20H ;R0指示發(fā)
15、送緩沖區(qū)首址 MOV R7, #32 ;R7作發(fā)送數(shù)據(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 接收程序: (查詢方式、乙機ROM) ORG 0000H MOV TMOD, #20H MOV TH1, #0E6H MOV TL1, #0E6H SETB TR1 ;初始化T1,并啟動T1(同甲機) MOV SCON,#50H ;串行方式1,許接收,清RI,TI,非多機 MOV R0, #20H ;R0指示接收緩
16、沖區(qū)首址 MOV R7, #32 ;數(shù)據(jù)個數(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 接線如圖,編一個自發(fā)自收程序,檢查單片機的串行口是否完好,f=12MHz,波特率600,取SMOD0。解:依據(jù)公式波特率 求得 匯編語言編程 MOV TMOD,#20H ;T1方式2,門控關,定時 MOV TH1, #0CCH MOV TL1, #0CCH ; 設定波特率,計數(shù)初值 SETB TR1 ;啟動T1 MO
17、V SCON, #50H ;串行方式1,許接收,清RI,TI,非多機 ABC: CLR TI ;清TI,為下一次發(fā)送準備 MOV P1, #0FEH ; LED滅(P1.0=0) ACALL DAY ; 延時 MOV A, #OFFH MOV SBUF, A ; 發(fā)送數(shù)據(jù)FFH(TI=0后) JNB RI, $ ;RI 1等待 CLR RI ;清RI,為下一次接收準備 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 ; 延時 SJ
18、MP ABCDAY: MOV R0, #0 ;1MC1次DAL: MOV R1, #0 ;1MC256次 DJNZ R1, $ ;2MC256256次 DJNZ R0, DAL ;2MC256次 RET ;2MC1次 總計131843MC次,延時?如果發(fā)送接收正確,可觀察到P1.0接的發(fā)光二極管閃亮8.6 利用串行口方式0擴展I/O口例8-4 利用串行通信方式0和串入并出移位寄存器74LS164擴展輸出接口,接8個數(shù)碼管,使內(nèi)部數(shù)據(jù)存儲器58H5FH單元的內(nèi)容依次顯示在8個數(shù)碼管上。數(shù)碼管為共陽極,字形碼“0”“F”列在表TAB中,58H5FH單元的內(nèi)容均為0XH。 分析 串口工作方式0時,可方便連接串入并出寄存器74LS164, TXD
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 借用鐵路用地合同范本
- 2025年淮安b2考貨運資格證要多久
- 別墅電梯銷售合同范本
- 上海退休人員返聘合同范本
- 買賣產(chǎn)品合作合同范本
- 轉(zhuǎn)化單位規(guī)則
- 加盟產(chǎn)品經(jīng)銷合同范本
- 化肥試驗合同范本
- 北京合伙創(chuàng)業(yè)合同范本
- 個人合作股合同范本
- 批評他人發(fā)言稿(通用12篇)
- DCF-現(xiàn)金流貼現(xiàn)模型-Excel模版(dcf-估值模型)
- 上海實驗學校幼升小測試題資料
- 一年級美術課后服務教案-1
- 重大疾病保險的疾病定義使用規(guī)范(2020年修訂版)-
- RB/T 040-2020病原微生物實驗室生物安全風險管理指南
- GB/T 8162-2018結(jié)構(gòu)用無縫鋼管
- 《傲慢與偏見》讀書匯報
- 上海專科層次自主招生考試習題集④(含答案)
- 房屋信息查詢情況表((2022年-2023年))
- (演唱)在葡萄架下教學設計
評論
0/150
提交評論