單片機(jī)原理與接口技術(shù):第5章 MCS-51單片機(jī)的內(nèi)部結(jié)構(gòu)_第1頁(yè)
單片機(jī)原理與接口技術(shù):第5章 MCS-51單片機(jī)的內(nèi)部結(jié)構(gòu)_第2頁(yè)
單片機(jī)原理與接口技術(shù):第5章 MCS-51單片機(jī)的內(nèi)部結(jié)構(gòu)_第3頁(yè)
單片機(jī)原理與接口技術(shù):第5章 MCS-51單片機(jī)的內(nèi)部結(jié)構(gòu)_第4頁(yè)
單片機(jī)原理與接口技術(shù):第5章 MCS-51單片機(jī)的內(nèi)部結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩99頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第五章 MCS-51單片機(jī)的內(nèi)部結(jié)構(gòu)中斷系統(tǒng)1定時(shí)/計(jì)數(shù)器2串行口3中斷處理過(guò)程中斷的基本概念MCS-51的中斷系統(tǒng)結(jié)構(gòu)中斷應(yīng)用舉例一二三四第一節(jié) 中斷系統(tǒng)日常生活中的中斷與單片機(jī)中斷的比較: 某同學(xué) 單片機(jī) 過(guò)程說(shuō)明正在看書 執(zhí)行主程序電話鈴響 中斷請(qǐng)求信號(hào) 中斷請(qǐng)求暫??磿?暫停執(zhí)行主程序 中斷響應(yīng)書中作記號(hào) 當(dāng)前PC入棧 保護(hù)斷點(diǎn)接電話 執(zhí)行中斷程序 中斷服務(wù)回來(lái)繼續(xù)看 返回主程序 中斷返回一、中斷的基本概念3對(duì)突發(fā)事故,做出緊急處理。解決快速CPU與慢速外設(shè)之間的矛盾。 中斷技術(shù)的優(yōu)點(diǎn)4二、MCS-51單片機(jī)中斷系統(tǒng)結(jié)構(gòu) 中斷源 中斷標(biāo)志 中斷允許 中斷優(yōu)先級(jí) 中斷控制寄存器5 MCS

2、-51的中斷系統(tǒng)中斷源MCS-51單片機(jī)有5個(gè)中斷請(qǐng)求源:?jiǎn)纹瑱C(jī)INT0或 外部輸入中斷源INT0(P3.2)INT1或 外部輸入中斷源INT1(P3.3)T0 定時(shí)器T0溢出中斷源T1 定時(shí)器T1溢出中斷源串行口 串行口發(fā)送或接收中斷源6 MCS-51的中斷系統(tǒng)中斷標(biāo)志CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TIRI中斷源中斷標(biāo)志位 每一個(gè)中斷源都有相應(yīng)的中斷標(biāo)志位; 某一個(gè)中斷源申請(qǐng)中斷,相應(yīng)中斷標(biāo)志位置1。7 MCS-51的中斷系統(tǒng)中斷允許CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TIRI中斷源中斷標(biāo)志位 EA: 總中斷允許位,EA=1開放所

3、有中斷,EA=0禁止 所有中斷; 某一個(gè)中斷源還有相應(yīng)的中斷允許位,置1允許相應(yīng) 中斷源的中斷,置0禁止相應(yīng)中斷源的中斷。中斷允許ESET0EX0EX1ET1EA8 MCS-51的中斷系統(tǒng)中斷優(yōu)先級(jí)CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TISI中斷源中斷標(biāo)志位 單片機(jī)中有兩個(gè)中斷優(yōu)先級(jí),即高優(yōu)先級(jí)和低優(yōu)先級(jí) 中斷,前者優(yōu)先權(quán)高于后者(在程序中設(shè)置,相應(yīng)位 =1,為高優(yōu)先級(jí)); 同一優(yōu)先級(jí)別的中斷源按照自然優(yōu)先級(jí)順序確定優(yōu)先 級(jí)別(硬件形成,無(wú)法改變)。中斷允許ESET0EX0EX1ET1EA自然優(yōu)先級(jí)高低優(yōu)先控制PSPT0PX0PX1PT19 MCS-51的中斷系統(tǒng)結(jié)

4、構(gòu)圖 IE0TCONSCONINT0 IT0=0 IT0=1INT1 IT1=0 IT1=1TF0 IE1TF1T0T1TIRITXDRXDESET0EX0EX1ET1EA自然優(yōu)先級(jí)矢量地址高級(jí)中斷請(qǐng)求自然優(yōu)先級(jí)矢量地址低級(jí)中斷請(qǐng)求PX0PT0PX1PT1PSIEIP中斷標(biāo)志位中斷源允許總允許中斷優(yōu)先級(jí)作用:控制中斷類型、中斷的開關(guān)、中斷的優(yōu)先級(jí)TCON(6位)SCON(2位)IEIP 中斷控制寄存器都是特殊功能寄存器,均可位尋址或字節(jié)尋址11TCON寄存器T0和T1控制寄存器 TF1 TF0 IE1 IT1 IE0 IT0TCON7654321012TF1/0:T1/0溢出中斷標(biāo)志 T1/0

5、啟動(dòng)計(jì)數(shù)后,計(jì)滿溢出由硬件置位TF1/0=1,向CPU請(qǐng)求中斷,此標(biāo)志一直保持到CPU響應(yīng)中斷后,才由硬件自動(dòng)清0。也可用軟件查詢?cè)摌?biāo)志,并由軟件清0。(演示) TF1 TF0 IE1 IT1 IE0 IT0TCON 88H76543210TCON寄存器T0和T1控制寄存器IE0/1:外部中斷INT0/1中斷標(biāo)志位 IE0/11,外部中斷0/1向CPU申請(qǐng)中斷IT0/1:外部中斷INT0/1觸發(fā)方式控制位: IT0/1=0,電平觸發(fā)方式 IT0/1=1, 下降沿觸發(fā)方式13 TI (SCON.1)串行發(fā)送中斷標(biāo)志。 RI (SCON.0)串行接收中斷標(biāo)志。 TI RISCON寄存器串行口控制寄

6、存器SCON 98H7654321014硬件置1,軟件清0IE寄存器中斷允許寄存器 IE A8H EA ESET1EX1ET0EX0例:允許定時(shí)器T0中斷:76543210 SETB EA SETB ET0 或 MOV IE,#82H15 51單片機(jī)有兩個(gè)中斷優(yōu)先級(jí)高級(jí)和低級(jí) 相應(yīng)位為1,對(duì)應(yīng)的中斷源被設(shè)置為高優(yōu)先級(jí) 相應(yīng)位為0,對(duì)應(yīng)的中斷源被設(shè)置為低優(yōu)先級(jí) 系統(tǒng)復(fù)位時(shí),均為低優(yōu)先級(jí) 該寄存器可以位尋址 PSPT1PX1PT0PX0IP寄存器中斷優(yōu)先級(jí)寄存器 IP B8H 7654321016中斷系統(tǒng)初始化對(duì)IE、IP、TCON、SCON中的控制位進(jìn)行賦值開相應(yīng)中斷源的中斷允許位設(shè)定所有中斷源

7、的優(yōu)先級(jí)若為外部中斷,應(yīng)規(guī)定中斷觸發(fā)方式中斷處理過(guò)程分為三個(gè)階段:中斷響應(yīng)、中斷處理 和中斷返回。中斷響應(yīng)中斷處理(又稱中斷服務(wù))中斷返回中斷響應(yīng)中斷返回三、中斷處理過(guò)程1、中斷響應(yīng)條件在滿足CPU的中斷響應(yīng)條件之后,CPU對(duì)中斷源的中 斷請(qǐng)求予以處理。中斷響應(yīng)條件:有中斷請(qǐng)求開中斷中斷沒(méi)有被屏蔽無(wú)同級(jí)或更高優(yōu)先級(jí)中斷正被服務(wù)當(dāng)前指令周期已經(jīng)結(jié)束若現(xiàn)行指令是RETI或訪問(wèn)IE/IP指令,則緊接著的另一條指令也已執(zhí)行完。2、中斷響應(yīng)過(guò)程中斷響應(yīng)過(guò)程:1、將相應(yīng)的優(yōu)先級(jí)狀態(tài)觸發(fā)器置1(以阻斷后來(lái)的同級(jí)或低級(jí)的中斷請(qǐng)求)。2、執(zhí)行一條硬件LCALL指令,即把程序計(jì)數(shù)器PC的內(nèi)容壓入堆棧保存,再將相應(yīng)

8、的中斷服務(wù)程序的入口地址送入PC。3、執(zhí)行中斷服務(wù)程序中斷響應(yīng)斷點(diǎn)地址中斷服務(wù)子程序的入口地址程序存儲(chǔ)器ROM0000H:復(fù)位后,程序的入口地址(PC=0000H)0023H:串行口中斷入口0003H:外部中斷0入口000BH:定時(shí)器0溢出中斷入口0013H:外部中斷1入口001BH:定時(shí)器1溢出中斷入口002AH 使用時(shí):通常在這些入口地址處存放一條跳轉(zhuǎn)指令,使程序跳轉(zhuǎn)到用戶安排的中斷服務(wù)程序起始地址上去!程序存儲(chǔ)器ROM0000H:復(fù)位后,程序的入口地址(PC=0000H)0023H:串行口中斷入口0003H:外部中斷0入口000BH:定時(shí)器0溢出中斷入口0013H:外部中斷1入口001B

9、H:定時(shí)器1溢出中斷入口002AH 包含T0中斷服務(wù)子程序的程序結(jié)構(gòu):ORG 0000HAJMP MAINORG 000BHAJMP INTT0ORG 0100HMAIN: . . SJMP $INTT0: . . RETI END;(演示T0)AJMP MAINAJMP INTT03、中斷響應(yīng)時(shí)間某中斷的響應(yīng)時(shí)序如圖:80C51的中斷響應(yīng)時(shí)間(從標(biāo)志置1到進(jìn)入相應(yīng)的中斷服務(wù)),至少要3個(gè)完整的機(jī)器周期。 4、中斷處理中斷服務(wù)程序從中斷服務(wù)程序入口地址開始執(zhí)行,直到返回指令RETI為止,這個(gè)過(guò)程稱為中斷處理(或中斷服務(wù))。INTT0:PUSH ACC PUSH DPH PUSH DPL PUS

10、H PSW 中斷源服務(wù) POP PSW POP DPL POP DPH POP ACC RETI保護(hù)現(xiàn)場(chǎng)恢復(fù)現(xiàn)場(chǎng)5、中斷返回 RETI指令功能:把斷點(diǎn)地址取出,送回到程序計(jì)數(shù)器PC中去。另外,它還通知中斷系統(tǒng)已完成中斷處理,將清除優(yōu)先級(jí)狀態(tài)觸發(fā)器。 特別注意:不能用RET指令代替RETI指令!中斷響應(yīng)中斷返回四、中斷應(yīng)用舉例26程序結(jié)構(gòu)27交通燈主程序28BGREENBGREENAGREEN中斷服務(wù)子程序29#0F6HABRED課堂練習(xí):1、請(qǐng)寫出外部中斷1為低電平觸發(fā),高優(yōu)先級(jí)的中 斷系統(tǒng)初始化程序。2、思考:當(dāng)單片機(jī)應(yīng)用需要處理多個(gè)外部中斷事件 ,如何擴(kuò)展外部中斷源?1 解:采用位操作指令

11、:SETB EA SETB EX1 ;開外部中斷1SETB PX1 ;令外部中斷1高優(yōu)先級(jí)CLR IT1 ;令外部中斷1為電平觸發(fā)采用字節(jié)操作指令:MOV IE,#84H;開外部中斷1ORL IP,#04H;令外部中斷1高優(yōu)先級(jí)ANL TCON,#0FBH;令外部中斷1為電平觸發(fā)四種工作方式結(jié)構(gòu)和工作原理控制寄存器應(yīng)用舉例一二三四第二節(jié) 定時(shí)/計(jì)數(shù)器一、定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)一、定時(shí)/計(jì)數(shù)器的工作原理 定時(shí)對(duì)內(nèi)部時(shí)鐘信號(hào)進(jìn)行加1計(jì)數(shù),每來(lái)一個(gè)機(jī)器周期,加1。主要用于定時(shí)、延時(shí)。計(jì)數(shù)對(duì)外部脈沖源計(jì)數(shù),每來(lái)一個(gè)負(fù)跳變,加1。主要用于統(tǒng)計(jì)外部事件的個(gè)數(shù)。1. 定時(shí)控制寄存器(TCON)TF0、TF1:計(jì)

12、數(shù)溢出中斷請(qǐng)求標(biāo)志位。 TF0=1或TF1=1時(shí)計(jì)數(shù)溢出; TF0=0或TF1=0時(shí)計(jì)數(shù)未滿。TR0、TR1:?jiǎn)?停控制位。 TR0=1或TR1=1,使T0或T1啟動(dòng)計(jì)數(shù); TR0=0或TR1=0,使T0或T1停止計(jì)數(shù)。二、定時(shí)/計(jì)數(shù)器的控制寄存器TCON (88H)TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0T1和T0外部中斷方式控制寄存器(TMOD)GATE門控選擇位 : =0,非門控方式,定時(shí)/計(jì)數(shù)器由內(nèi)部軟件啟動(dòng): TRx=1,啟動(dòng)定時(shí)器工作; TRx=0,停止定時(shí)器工作。(x=0或1) =1,門控方式,定時(shí)/計(jì)數(shù)器由內(nèi)、外部啟動(dòng): TRx=1,同時(shí)必須引腳INTx=

13、1,才啟動(dòng)。二、定時(shí)/計(jì)數(shù)器的控制寄存器GATE C / T M1 M0 GATE C / T M1 M0TMOD (89H)T0T1常作為波特率發(fā)生器C/T: C/T =1,計(jì)數(shù)方式,對(duì) T0、T1引腳輸入的負(fù) 脈沖計(jì)數(shù); C/T =0,定時(shí)方式,對(duì)機(jī)器周期計(jì)數(shù)。M1、M0:計(jì)數(shù)器工作方式選擇位:三、定時(shí)/計(jì)數(shù)器的工作方式1、方式0 (M1M0=00)計(jì)數(shù)外部脈沖個(gè)數(shù)范圍:18192 (213)定時(shí)時(shí)間范圍 :T8192T2、方式1(16位定時(shí)/計(jì)數(shù)器,M1M0=01 )計(jì)數(shù)外部脈沖個(gè)數(shù)范圍:165536(216)定時(shí)時(shí)間范圍 :T65536T3、方式2(自動(dòng)再裝入8位定時(shí)/計(jì)數(shù)器, M1M

14、0=10 ) 用于需要重復(fù)定時(shí)和計(jì)數(shù)的場(chǎng)合,多用作串口的波特率發(fā)生器。計(jì)數(shù)外部脈沖個(gè)數(shù)范圍:1256(28)定時(shí)時(shí)間范圍 :T256T4、方式3(M1M0=11,僅適用于T0)T0分成兩個(gè)8位定時(shí)/計(jì)數(shù)器TL0和TH0:TL0:既可計(jì)數(shù)也可定時(shí),是一個(gè)8位定時(shí)/計(jì)數(shù)器。占 用了T0所有控制位: C/T,TR0,GATE,TF0和INT0、 T0引腳;TH0:只能作為定時(shí)器,因?yàn)門0已被TL0占用, TH0用 T1的控制位:TR1、TF1;T0在方式3時(shí)T1的工作模式四、定時(shí)/計(jì)數(shù)器的應(yīng)用1、定時(shí)/計(jì)數(shù)器初始化若采用中斷方式,則應(yīng)設(shè)置IE初值= 最大計(jì)數(shù)值-所需計(jì)數(shù)值 定時(shí)/計(jì)數(shù)器T0工作于門控

15、計(jì)數(shù)方式,所需計(jì)數(shù)值=1,允許中斷,使用工作方式2。進(jìn)行初始化編程。例 11) T0定時(shí)/計(jì)數(shù)器工作于門控、計(jì)數(shù)、方式2, 可確定T0的GATE = 1, C/T = 1,M1M0=102)計(jì)數(shù)器位數(shù)n = 8,計(jì)數(shù)器初值:Count = 28-1 = 11111111B = FFH即,TH0 = FFH,TL0 = FFHMOV TMOD, #0EH ;設(shè)置T0工作于門控計(jì)數(shù)方式2MOV TL0, #0FFH ;計(jì)數(shù)器TL1賦初值FFHMOV TH0, #0FFH ;重裝寄存器TH1賦初值FFHSETB ET0 ;T0開中斷SETB EA ;CPU開中斷SETB TR0 ;預(yù)啟動(dòng)T0 (當(dāng)I

16、NT0輸入高電平時(shí)啟動(dòng))T0工作于方式2的初始化程序分析:周期為2ms的方波要求定時(shí)間隔為1ms,每次 時(shí)間到將P1.0取反。機(jī)器周期T=12/fosc=1s。 每個(gè)機(jī)器周期定時(shí)器計(jì)數(shù)加1,1ms=1000s, 定時(shí)器賦初值65536-1000=64536=0FC18H。 設(shè)單片機(jī)的fosc=12MHz,要求在P1.0引腳上輸出周期為2ms的方波。用定時(shí)器1的方式1編程,采用中斷方式。例 2-應(yīng)用實(shí)例(1)匯編語(yǔ)言程序: ORG 0000H ;復(fù)位入口 AJMP START ORG 001BH ;T1中斷服務(wù)程序入口地址 AJMP T1INT ORG 0030HSTART: MOV SP, #

17、60H ;初始化程序 MOV TMOD, #10H ;設(shè)置T1工作于定時(shí)方式1 MOV TH1, #0FCH ;設(shè)置加1計(jì)數(shù)器的計(jì)數(shù)初值高字節(jié) MOV TL1, #18H ;設(shè)置加1計(jì)數(shù)器的計(jì)數(shù)初值低字節(jié) SETB TR1 ;啟動(dòng)T1 SETB ET1 ;開T1中斷 SETB EA ;開總允許中斷MAIN: AJMP MAIN ;主程序T1INT: CPL P1.0 ;T1中斷服務(wù)程序 MOV TH1, #0FCH MOV TL1, #18H RETI思考:若以方式2編程,該如何修改?盡管MCS-51為用戶只提供了兩個(gè)外部中斷源,但用戶可以根據(jù)實(shí)際需求,進(jìn)行外部中斷請(qǐng)求的擴(kuò)展,如用定時(shí)器中斷作

18、為外部中斷的擴(kuò)展。當(dāng)引腳T0或T1上發(fā)生負(fù)跳變時(shí),T0或T1計(jì)數(shù)器則加1。若設(shè)定計(jì)數(shù)初值為滿量程,計(jì)數(shù)器加1,就會(huì)產(chǎn)生溢出中斷請(qǐng)求,TF0或TF1變成了外部中斷請(qǐng)求標(biāo)志位,T0或T1的中斷入口地址被擴(kuò)展成了外部中斷源的入口地址。2、采用定時(shí)/計(jì)數(shù)器擴(kuò)展外部中斷-擴(kuò)展外部中斷 設(shè)某用戶系統(tǒng)中已使用了兩個(gè)外部中斷源,并置定時(shí)器T1工作在模式2,作串行口波特率發(fā)生器用。現(xiàn)要求再增加一個(gè)外部中斷源,并由P1.0輸出一個(gè)5KHz的方波。Fosc = 12MHz。例 3分析:目的:1) 增加一個(gè)外部中斷; 2) 使P1.0輸出一個(gè)方波。條件:1)兩個(gè)外部中斷源已被使用 2)定時(shí)器T1已用于串行口波特率發(fā)生

19、器 因此:可利用定時(shí)/計(jì)數(shù)器T0,使之工作在模式3, 1)利用TL0擴(kuò)展外部中斷源 2)利用TH0作定時(shí)器使用,輸出方波 設(shè)置初值: 1) TL0 = 0FFH 2) 因?yàn)檩敵龇讲╢ = 5kHz,故方波周期為 200us,用TH0產(chǎn)生100us的定時(shí),故TH0 的初值 X = 256 (定時(shí)時(shí)間/機(jī)器周期) = 256 - (100us*晶振頻率/12) = 156設(shè)定T0工作方式,TMOD,TCON.程序: MOV TMOD,#27H;T0:模式3、計(jì)數(shù),T1:模式2、定時(shí) MOV TL0,#0FFH ;一旦加1,馬上溢出,申請(qǐng)中斷 MOV TH0,#156 ;TH0初值 MOV TH1,

20、#data ;根據(jù)波特率要求而定 MOV TL1, #data MOV TCON,#55H;01010101 MOV IE,#9FH ;開放全部中斷 . ORG 000BHTL0INT:MOV TL0,#0FFH ;TL0重新賦值 RETI ORG 001BHTH0INT: MOV TH0,#156 ;TH0重新賦值 CPL P1.0 RETI 例:脈沖參數(shù)測(cè)量GATE功能的使用。 脈沖高電平(計(jì)數(shù))長(zhǎng)度值存于21H、20H中, 脈沖低電平長(zhǎng)度存于23H、22H中。 電路連接如下圖所示。解: 復(fù)習(xí)GATE的用法: GATE = 0時(shí),TRi = 1,即可啟動(dòng)Ti定時(shí) / 計(jì)數(shù) GATE = 1

21、時(shí),TRi = 1,且 =1,才啟動(dòng)定時(shí) / 計(jì)數(shù)。89C51P3.2P3.31被測(cè)信號(hào)21a3T0計(jì)數(shù)T1計(jì)數(shù) ORG 0000H LJMP MAIN ORG 2000HMAIN:MOV TMOD,#99H ;T0、T1均工作在定時(shí), ;模式1,GATE=1 MOV A,#00H ;T0、T1賦計(jì)數(shù)初值00H, ;定時(shí)最長(zhǎng)時(shí)間為0000 65536 MOV TL0,A MOV TH0,A MOV TL1,A MOV TH1,A TEST0:JB P3.2,TEST0;檢測(cè)是否到a點(diǎn) SETB TR0 ;到a點(diǎn),TR0 = 1,做好取計(jì)時(shí)值準(zhǔn)備TEST1:JNB P3.2,TEST1;檢測(cè)是否

22、到1點(diǎn) SETB TR1;到1點(diǎn)T0計(jì)時(shí),TR1 = 1,做好T1計(jì)時(shí)準(zhǔn)備TEST2:JB P3.2,TEST2;檢測(cè)是否到2點(diǎn) CLR TR0 ;到2點(diǎn),停止T0計(jì)時(shí),T1開始計(jì)時(shí) MOV 20H,TH0;保存T0計(jì)時(shí)結(jié)果 MOV 21H,TL0TEST3:JB P3.3,TEST3;檢測(cè)是否到3點(diǎn) CLR TR1 ;到3點(diǎn),停止T1計(jì)數(shù) MOV 22H,TH1;保存T1計(jì)數(shù)結(jié)果 MOV 23H,TL1 LCALL DISP SJMP 串行口的工作方式計(jì)算機(jī)串行通信基礎(chǔ)89C51的串行口一二三第三節(jié) 串行口串行口應(yīng)用四2并行通信和串行通信異步通信和同步通信串行通信的傳輸方向串行通信的傳輸速率

23、135一、計(jì)算機(jī)串行通信基礎(chǔ)4串行通信的接口方式1、并行通信和串行通信 并行通信連線多,速度快,適合近距離通信;串行通信連線少,速度慢,適合遠(yuǎn)距離通信。 異步通信:以字符(構(gòu)成的幀)為單位進(jìn)行傳輸,字 符之間是異步的,同一字符內(nèi)的各位是同步的。2、異步通信與同步通信同步通信:保持位同步也保持字符同步 外同步 自同步3、串行通信的傳輸方向 單工 半雙工 全雙工比特率波特率4、串行通信的傳輸速率Bits per second (bps)每秒鐘調(diào)制信號(hào)變化的次數(shù) 波特率和比特率不總是相同的,對(duì)于將數(shù)字信號(hào)1或0直接用兩種不同電壓表示的所謂基帶傳輸,比特率和波特率是相同的。所以,我們也經(jīng)常用波特率表示

24、數(shù)據(jù)的傳輸速率 如每秒鐘傳送240個(gè)字符,而每個(gè)字符格式包含10位(1個(gè)起始位、1個(gè)停止位、8個(gè)數(shù)據(jù)位),這時(shí)的比特率為:10位240個(gè)/秒 = 2400 bps 根據(jù)串行通信格式及約定(如同步方式、通信速率、數(shù)據(jù)塊格式等)不同,形成了許多串行通信接口標(biāo)準(zhǔn)。UARTUSBI2CSPI5、串行通信接口種類CAN總線485總線289C51串口概述51串口的結(jié)構(gòu)51串行接口寄存器13二、89C51串行口 Universal Asynchronous Receiver/Transmitter通用異步收發(fā)傳輸器 UART引腳四種工作方式波特率可設(shè)置TXD(P3.1)RXD(P3.0)幀格式有8、10、1

25、1位。1、 89C51的串行口概述 有兩個(gè)物理上獨(dú)立的接收、發(fā)送緩沖器SBUF,它們占用同一地址99H ;MOV SBUF, A ;發(fā)送數(shù)據(jù)到串口引腳 MOV A , SBUF ;接收數(shù)據(jù)2、 51串口的結(jié)構(gòu)3、 MCS-51串行接口寄存器SBUFSCONPCON控制寄存器SCONSM0SM1SM2RENTB8RB8TIRI工作方式選擇多機(jī)通信控制位允許串行接收位接收數(shù)據(jù)的第9位發(fā)送數(shù)據(jù)的第9位接收中斷標(biāo)志發(fā)送中斷標(biāo)志9FH9EH9DH9CH9BH9AH99H98HSM2置1,多機(jī)通信,用于方式2和方式3D81,地址幀D80,數(shù)據(jù)幀SM2置0,不屬于多機(jī)通信電源及波特率選擇寄存器PCONSMO

26、DXXXGF1GF0PDIDL串行通信只用該位,為1時(shí),波特率2;為0時(shí),波特率不變。69SM0 SM1工作方式功能波特率0 0方式08位同步移位寄存器fosc/120 1方式110位UART可變1 0方式211位UARTfosc/64或fosc/321 1方式311位UART可變?nèi)⒋诘墓ぷ鞣绞?、串口的工作方式0不適用于單片機(jī)之間的數(shù)據(jù)通信,可通過(guò)外接移位寄存器實(shí)現(xiàn)單片機(jī)的接口擴(kuò)展。RXD為數(shù)據(jù)輸入或輸出TXD為移位時(shí)鐘,作為外接部件的同步信號(hào)。收/發(fā)數(shù)據(jù)為8位低位在前,無(wú)起始位、奇偶校驗(yàn)位及停止位波特率是固定的。方式0真正用于串行發(fā)送或接收。TXD用于發(fā)送RXD用于接收收/發(fā)數(shù)據(jù)為10

27、位1位起始位、8位數(shù)據(jù)位(低位在前)、1位停止位波特率可調(diào)。方式12、串口的工作方式1第9位數(shù)據(jù)作為奇偶校驗(yàn)位或地址/數(shù)據(jù)標(biāo)志位。每幀11位:即1位起始位、8位數(shù)據(jù)位(低位在前)、1位可編程的第9數(shù)據(jù)位和1位停止位。方式2和方式3方式2,波特率為fosc/32或fosc/64;方式3,波特率可調(diào),同方式1。3、串口的工作方式2和方式3發(fā)送時(shí),第9位(D8)數(shù)據(jù)裝入TB8;MOV A ,DATAMOV TB8, CMOV SBUF, A接收時(shí),第9位(D8)數(shù)據(jù)裝入RB8;-串口自動(dòng)完成D0D7 SBUFD8RB8RI =1743、串口的工作方式2和方式3方式1和方式3的波特率可變,由定時(shí)器1的

28、溢出率決定波特率/(b/s)fosc/MHzSMOD定時(shí)器1C/模式初始值方式0:1 M方式2:375 k方式1、3:62.5 k19.2 k9.6 k4.8 k2.4 k1.2 k137.5 k11011012121211.05911.05911.05911.05911.05911.9866121110000000000000000222222221FFHFDHFDHFAHF4HE8H1DH72HFEEBHT波特率=2方式0的同步應(yīng)用雙機(jī)串行通信PC與單片機(jī)的通信13四、串行口應(yīng)用同步方式應(yīng)用異步方式應(yīng)用4多機(jī)通信1、同步方式應(yīng)用(方式0) 用于擴(kuò)展I/O口,外接74HC164(串入并出)或

29、165(并入串出)。RXD作為數(shù)據(jù)輸入/輸出端,TXD作為同步時(shí)鐘信號(hào),接至?xí)r鐘端。 8位數(shù)據(jù)為1幀,由低位到高位,無(wú)起始位和停止位。 波特率: fosc/12例:用89C52串行口外接164串入/并出移位寄存器擴(kuò)展8位并行輸出口,外接165并入/串出移位寄存器擴(kuò)展8位并行輸入口。8位并行輸出口的每位都接一個(gè)發(fā)光二極管,要求從8位并行輸入口讀入開關(guān)的狀態(tài)值,使閉合開關(guān)對(duì)應(yīng)的發(fā)光二極管點(diǎn)亮。同步方式應(yīng)用舉例ORG 0000HSJMP MAINORG 23HSJMP S_SRV ;串行口中斷服務(wù)程序MAIN:MOV SCON,#10H ;串行口方式0初始化SETB ESSETB EAMOV A,#

30、0CLR P1.0;關(guān)閉并行輸出MOV SBUF,A;開始串行輸出SETB P1.1CLR P1.1SJMP $;等待中斷匯編語(yǔ)言程序清單:S_SRV:JBC TI,SENDCLRRIMOV A,SBUFCLR P1.0CPL AMOV SBUF,ASETB P1.1CLR P1.1RETISEND:SETB P1.0RETI思考串口的方式0還可以有哪些同步應(yīng)用呢?雙機(jī)串行通信的硬件連接2、異步方式應(yīng)用(雙機(jī)串行通信)AT89S51串行口的輸入、輸出均為TTL電平??垢蓴_性差,傳輸距離短,傳輸速率低。為提高串行通信的可靠性,增大串行通信的距離和提高傳輸速率,都采用標(biāo)準(zhǔn)串行接口,如RS-232、

31、RS-422A、RS-485等。TTL電平通信接口RS-422A雙機(jī)通信接口RS-232C雙機(jī)通信接口RS-485雙機(jī)通信接口兩個(gè)單片機(jī)相距在1.5m之內(nèi),甲機(jī)RXD與乙機(jī)TXD端相連。雙機(jī)通信距離在1.515m之間傳輸速率低、通信距離短、接口處信號(hào)容易產(chǎn)生串?dāng)_等雙機(jī)串行通信接口能在長(zhǎng)距離、高速率下傳輸數(shù)據(jù)。最大傳輸率為10Mbit/s,電纜允許長(zhǎng)度為12m,如果采用較低傳輸速率時(shí),最大傳輸距離可達(dá)1219m。RS-422A為全雙工,采用兩對(duì)平衡差分信號(hào)線;需四芯傳輸線,不經(jīng)濟(jì);與RS-422A一樣,最大傳輸距離約為1219m,最大傳輸速率為10Mbit/s。 RS-485為半雙工,采用一對(duì)平

32、衡差分信號(hào)線。雙絞線傳輸對(duì)于多站互連是十分方便的,很容易實(shí)現(xiàn)多機(jī)通信。比較分析四種雙機(jī)串行通信接口圖確定通信的波特率首先確定通信雙方的數(shù)據(jù)傳輸速率由數(shù)據(jù)傳輸速率確定采用的串行通信接口標(biāo)準(zhǔn)確定收發(fā)雙方使用的通信協(xié)議1234串行通信設(shè)計(jì)需要考慮的問(wèn)題通信線的選擇,一般選用雙絞線較好5通信軟件編程6雙機(jī)通信應(yīng)用舉例(方式2)用第9個(gè)數(shù)據(jù)位作奇偶校驗(yàn)位, 編制串行口方式2的發(fā)送程序。例:設(shè)計(jì)一個(gè)發(fā)送程序,將片內(nèi)RAM 50H5FH中的數(shù)據(jù)串行發(fā)送;串行口設(shè)定為方式2狀態(tài),TB8作奇偶校驗(yàn)位,采用偶校驗(yàn)。P取反校驗(yàn)位奇校驗(yàn)偶校驗(yàn)收到奇數(shù)個(gè)1,正確收到偶數(shù)個(gè)1,錯(cuò)誤發(fā)送方接收方奇偶校驗(yàn) P校驗(yàn)位收到奇數(shù)個(gè)

33、1,錯(cuò)誤收到偶數(shù)個(gè)1,正確串行口初始化地址指針R0長(zhǎng)度計(jì)數(shù)器R7置初值取數(shù)據(jù)APTB8ASBUFTI =1?0TI,指針R0+1(R7)-1=0?返回YYNN程序流程圖TRT: MOV SCON, #80H ; 方式2設(shè)定MOV PCON, #80H ; 波特率=fosc/32MOV R0, #50H ; 首地址R0 MOV R7, #10H ; 數(shù)據(jù)長(zhǎng)度LOOP:MOV A, R0 ; 取數(shù)據(jù) MOV C, PSW.0 ; PTB8MOV TB8, CMOV SBUF, A ;數(shù)據(jù)SBUF,啟動(dòng)發(fā)送WAIT: JBC TI, CONT ;判斷發(fā)送中斷標(biāo)志SJMP WAITCONT: INC

34、R0DJNZ R7, LOOPRET90請(qǐng)?jiān)O(shè)計(jì)單片機(jī)發(fā)送程序,通過(guò)89C51單片機(jī)的串口發(fā)送片內(nèi)RAM 40H-6FH中的數(shù)據(jù);串行口設(shè)定為方式3狀態(tài),TB8作奇偶校驗(yàn)位,采用奇校驗(yàn)。要求傳送碼率為2400b/s,fosc=11.059MHz。雙機(jī)通信應(yīng)用舉例(方式3)TRT:MOV TMOD, #20H; MOV TL1, #0F4H;MOV TH1, #0F4H;SETB TR1;MOV SCON, #0D0H)(或0C0H) ;MOV PCON, #00H MOV R0,#40H ;首地址R0 MOV R7, #20H ;數(shù)據(jù)長(zhǎng)度LOOP: MOV A,R0 ;取數(shù)據(jù)MOV C, PSW

35、.0 ;PTB8CPL C MOV TB8, CMOV SBUF, A ;數(shù)據(jù)SBUF,啟動(dòng)發(fā)送WAIT: JBC TI, CONT ;判斷發(fā)送中斷標(biāo)志SJMP WAITCONT: INC R0DJNZ R7, LOOPRET思考請(qǐng)寫上以上例題對(duì)應(yīng)的串口接收程序。3、PC機(jī)與單片機(jī)的串行通信C1+C1-C2+C2-AT88C51GNDGNDIBM-PCTXDTXDRXDRXDT1outT1inR1inR1outGNDV+V-VCCMAX232C4C1C2C3C5+5V+單片機(jī)與PC機(jī)之間的電平規(guī)范不一致,需進(jìn)行電平轉(zhuǎn)換,短距離雙機(jī)通信時(shí)可通過(guò)MAX232進(jìn)行電平轉(zhuǎn)換。串口調(diào)試助手:可測(cè)試單片機(jī)串口通信的要求編寫PC機(jī)上的上位機(jī)軟件。開發(fā)串行通信程序主要有兩種方法,一種是利用Windows的API函數(shù);另一種是采用VB或VC的通信控件MSComm利用API函數(shù)編寫串行通信程序較為復(fù)雜,需要掌握大量的通信知識(shí),其優(yōu)點(diǎn)是可實(shí)現(xiàn)的功能更豐富、應(yīng)用面更廣泛,適合于編寫較為復(fù)雜的低層次通信程序。而MSComm通信控件提供了標(biāo)準(zhǔn)的事件處理函數(shù)、事件、方法,并通過(guò)控件屬性對(duì)串口參數(shù)進(jìn)行設(shè)置,比較容易地解決了串口通信問(wèn)題。 PC機(jī)串行通信設(shè)計(jì)964、異步通信應(yīng)用(

溫馨提示

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

評(píng)論

0/150

提交評(píng)論