




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
5.1
MCS-51單片機(jī)并行I/O口5.2MCS-51單片機(jī)中斷系統(tǒng)5.3MCS-51單片機(jī)定時(shí)器/計(jì)數(shù)器5.4MCS-51單片機(jī)串行接口5.5思考與練習(xí)題第五章MCS-51單片機(jī)的功能模塊編輯ppt第五章MCS-51單片機(jī)的功能模塊 主要內(nèi)容:介紹51系列單片機(jī)主要內(nèi)部功能模塊:有并行I/O口、中斷系統(tǒng)、定時(shí)/計(jì)數(shù)器和串行接口。
要求:1、掌握51系列單片機(jī)的各功能模塊的結(jié)構(gòu)和工作原理;2、各模塊應(yīng)用程序的編寫。
編輯ppt5.1MCS-51單片機(jī)并行I/O口
I/O口的作用:1實(shí)現(xiàn)CPU與外設(shè)間的速度匹配;2改變數(shù)據(jù)的傳送方式(并行、串行);3改變信號的性質(zhì)(A/D)和信號的電平(TTL電平與RS232電平)外設(shè)的編址:獨(dú)立編址編址范圍0000H~0FFFFH,有專有的傳送指令;與存儲器統(tǒng)一編址編址范圍0FF00H~0FFFFH,傳送指令MOVXA,@DPTRMOVX@DPTR,A編輯ppt5.1MCS-51單片機(jī)并行I/O口
I/O數(shù)據(jù)的四種傳送方式無條件傳送(同步傳送)條件傳送(異步傳送)中斷傳送DMA傳送編輯ppt5.1MCS-51單片機(jī)并行I/O口
MCS-51單片機(jī)具有4個(gè)雙向的8位I/O口P0~P3,P0口為三態(tài)雙向口,負(fù)載能力為8個(gè)TTL電路,P1~P3口為準(zhǔn)雙向口(用作輸入時(shí),口線被拉成高電平,故稱為準(zhǔn)雙向口),負(fù)載能力為4個(gè)TTL電路。各口中的每一位都是由鎖存器(稱特殊功能寄存器SFR)、輸出驅(qū)動器和輸入緩沖器組成。這種結(jié)構(gòu),在數(shù)據(jù)輸出時(shí)可鎖存,但對輸入信息是不鎖存的,所以從外部輸入的信息必須保持到取數(shù)指令執(zhí)行完為止。編輯ppt5.1.1P0口
P0口是一個(gè)三態(tài)雙向口,在系統(tǒng)擴(kuò)展時(shí),可作為低8位地址線和數(shù)據(jù)總線的分時(shí)復(fù)用口,在其他狀態(tài)下可作為通用I/O接口,其1位的結(jié)構(gòu)原理如圖5.1所示,P0口由8個(gè)這樣的電路組成。編輯ppt5.1.1P0口
圖5.1編輯ppt5.1.1P0口
P0口是一個(gè)多功能8位口,可以字節(jié)訪問,也可位訪問,字節(jié)訪問地址為80H,位訪問地址為80H~87H。(1)P0口用于I/O口是準(zhǔn)雙向I/O口。作為I/O口使用時(shí),控制信號應(yīng)為“0”,多路開關(guān)接通輸出鎖存器的端。同時(shí)與門關(guān)閉,上拉FET截止,形成P0口的輸出電路為漏極開路輸出。需要外接上拉電阻。a)作輸出口時(shí):不需要條件,可以正確的輸出b)作輸入口時(shí):①當(dāng)CPU復(fù)位后進(jìn)行輸入操作時(shí),輸入信息是正確的。②當(dāng)P0口的某位(或整個(gè)P0口)先進(jìn)行了輸出操作,而后要由輸出變成輸入操作方式時(shí),必須先用輸出指令將鎖存器置“1”,才能保證輸入信息正確。(即是準(zhǔn)雙向的含義)編輯ppt5.1.1P0口(2)P0口用于地址/數(shù)據(jù)分時(shí)復(fù)用時(shí)是真正雙向I/O口。①當(dāng)控制=1時(shí),MUX接通地址/數(shù)據(jù)輸出端。a)當(dāng)?shù)刂?數(shù)據(jù)輸出線置1時(shí),“與”門輸出為1,上拉FET導(dǎo)通,同時(shí)地址/數(shù)據(jù)輸出通過反相器輸出0,控制下拉FET截止,這樣A點(diǎn)電位上拉,地址/數(shù)據(jù)輸出線為1。b)當(dāng)?shù)刂?數(shù)據(jù)輸出線置0時(shí),“與”門輸出為0,上拉FET截止,同時(shí)地址/數(shù)據(jù)輸出通過反相器輸出1,控制下拉FET導(dǎo)通,這樣A點(diǎn)電位下拉,地址/數(shù)據(jù)輸出線為0。②輸入數(shù)據(jù),控制=0,分析同(1)中的輸入中的第一種情況。通過上述分析可以看出,此時(shí)的輸出狀態(tài)隨地址/數(shù)據(jù)線而變。因此,P0口可以作為地址/數(shù)據(jù)復(fù)用總線使用(需要加地址鎖存器)。此時(shí)的P0口相當(dāng)一個(gè)雙向口。編輯ppt5.1.2P1口P1口是一個(gè)8位口,可以字節(jié)也可按位訪問,其字節(jié)地址為90H,位訪問地址為90H~97H。P1口是一個(gè)準(zhǔn)雙向I/O口,其1位的內(nèi)部結(jié)構(gòu)如圖5.2所示。
編輯ppt5.1.2P1口圖5.2編輯ppt5.1.2P1口它在結(jié)構(gòu)上與P0口的區(qū)別在于輸出驅(qū)動部分,其輸出驅(qū)動部分由場效應(yīng)管V1與內(nèi)部上拉電阻組成。當(dāng)其某位輸出為1時(shí),使輸出驅(qū)動器中的場效應(yīng)管截止,該位的輸出由內(nèi)部等效的上拉電阻拉成高電平,輸出1。當(dāng)輸出為0時(shí),輸出場效應(yīng)管導(dǎo)通則輸出引腳為低電平,輸出為0。不必像P0口那樣需要外接上拉電阻。編輯ppt5.1.2P1口在8051/80C51單片機(jī)中,P1口只有通用I/O接口一種功能,它的每一位可以分別定義為輸入或輸出,其輸入輸出原理特性與P0口作為通用I/O接口使用時(shí)一樣。P1口具有驅(qū)動4個(gè)LSTTL負(fù)載的能力。在8052/80C52單片機(jī)中,P1口P1.0與P1.1除作為通用I/O接口線外,還具有第二功能,即P1.0可作為定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)脈沖輸入端T2,P1.1可作為定時(shí)器/計(jì)數(shù)器2的外部控制輸入端T2EX。編輯ppt5.1.3P2口P2口也是一個(gè)準(zhǔn)雙向I/O口,其1位內(nèi)部結(jié)構(gòu)見圖5.3。在訪問外部存儲器時(shí),P2口作為高8位地址輸出口,在其他時(shí)候作為一般I/O接口使用。編輯ppt5.1.3P2口圖5.3編輯ppt5.1.3P2口當(dāng)作為準(zhǔn)雙向通用I/O口使用時(shí),控制信號為低電平無效,多路轉(zhuǎn)換器MUX接通鎖存器Q端,鎖存器Q端經(jīng)反相器3接控制場效應(yīng)管V1,其工作原理與P1相同,負(fù)載能力也與P1相同。當(dāng)作為外部擴(kuò)展存儲器的高8位地址總線使用時(shí),控制信號應(yīng)為高電平“1”有效,多路轉(zhuǎn)換開關(guān)MUX接通地址信號,來自程序計(jì)數(shù)器PC的高8位地址PCH,或數(shù)據(jù)指針DPTR的高8位地址DPH經(jīng)反相器3和V1反相后復(fù)原在P2.x口的引腳上,輸出高8位地址A8~A15。在上述情況下,口鎖存器的內(nèi)容不受影響,所以,取指或訪問外部存儲器結(jié)束后,由于轉(zhuǎn)換開關(guān)又接至左側(cè),使輸出驅(qū)動器與鎖存器Q端相連,引腳上將恢復(fù)原來的數(shù)據(jù)。編輯ppt5.1.4P3口
P3口是一個(gè)多功能的8位口,可以字節(jié)訪問也可位訪問,其字節(jié)訪問地址為B0H,位訪問地址為B0H~B7H。
P3口的功能:(1)可作I/O口使用,為準(zhǔn)雙向口。這方面的功能與P1口一樣。(2)每一位均具有第2功能。
編輯ppt5.1.4P3口圖5.4編輯ppt5.1.4P3口當(dāng)P3口作為通用I/O接口時(shí),要求第2功能輸出線保持高電平,使與非門3的輸出取決于口鎖存器的狀態(tài)。在這種情況下,P3口仍是1個(gè)準(zhǔn)雙向口,它的工作方式、負(fù)載能力均與P1、P2口相同。當(dāng)P3口作為第2功能(各引腳功能見表5.1)使用時(shí)就不能再做通用輸出口使用,其鎖存器Q端必須為高電平,以允許第2功能輸出,在做第2功能輸入時(shí),雖仍做通用輸入口,但已無實(shí)際意義。編輯ppt5.1.5接口的使用原則1.I/O接口的讀、寫、修改每個(gè)I/O口均有兩種“讀”方式:讀引腳和讀鎖存器。讀引腳:是讀外部接口的電平信號,讀引腳信號有效。真正讀引腳的指令只有MOVA,Px讀鎖存器:是將接口鎖存器的Q端信號讀回,寫鎖存器信號有效。讀鎖存器指令主要用于讀—修改—寫指令。如下列這些指令:如:ORL、XRL、JBC、CPL、INC、DEC、DJNZ、MOVPx,y、CLRPx.y和SETPx.y。編輯ppt5.1.5接口的使用原則2.使用原則MCS-51單片機(jī)中的4個(gè)I/O口在實(shí)際使用中,一般遵循以下用法:P0口一般做系統(tǒng)擴(kuò)展地址低8位/數(shù)據(jù)復(fù)用口,P1口一般做I/O擴(kuò)展口,P2口做系統(tǒng)擴(kuò)展地址高8位和I/O口擴(kuò)展的地址譯碼用,P3口做中斷輸入、串行通用口使用。在各個(gè)口的帶負(fù)載能力和接口要求上,由于P0口的輸出級與P1~P3口的輸出級在結(jié)構(gòu)上不同,所以,要求也不同。P0口的每一位可驅(qū)動8個(gè)TTL輸入,在做通用I/O口使用時(shí),輸出級是開漏電路,故需外部加上拉電阻。在做地址/數(shù)據(jù)總線使用時(shí),不需要外接上拉電阻。P1~P3的輸出級內(nèi)部有高效的上拉電阻,每一位輸出可驅(qū)動4個(gè)TTL輸入。編輯ppt在實(shí)際使用中,一般用戶在I/O擴(kuò)展時(shí),很難計(jì)算I/O的負(fù)載能力。對擴(kuò)展集成芯片,如74LS系列的一些大規(guī)模集成芯片(如8155、8255、8253、8259等),都可與MCS-51直接接口。其他一些擴(kuò)展用芯片,使用中可參考器件手冊及典型電路。對于一些線性元件,如鍵盤、碼盤及LED顯示等輸入/輸出設(shè)備,由于MCS-51單片機(jī)提供不了足夠的驅(qū)動電流,應(yīng)盡量設(shè)計(jì)驅(qū)動部分。5.1.5接口的使用原則編輯ppt5.2MCS-51單片機(jī)中斷系統(tǒng)
5.2MCS-51單片機(jī)中斷系統(tǒng)一、中斷的基本概念 “中斷”是處理事件的一個(gè)“過程”,這一過程一般是由計(jì)算機(jī)內(nèi)部或外部某種緊急事件引起并向主機(jī)發(fā)出請求處理的信號,主機(jī)在允許情況下響應(yīng)請求,暫停正在執(zhí)行的程序,保存好“斷點(diǎn)”處的現(xiàn)場,轉(zhuǎn)去執(zhí)行中斷處理程序,處理完后恢復(fù)現(xiàn)場,自動返回到原斷點(diǎn)處,繼續(xù)執(zhí)行原程序。這一處理過程就稱為“中斷”。
編輯ppt5.2MCS-51單片機(jī)中斷系統(tǒng)中斷程序與子程序的區(qū)別:
調(diào)用中斷服務(wù)程序的過程類似于調(diào)用子程序,其區(qū)別在于調(diào)用子程序在程序中是事先安排好的,而何時(shí)調(diào)用中斷服務(wù)程序事先卻無法確定,因?yàn)椤爸袛唷钡陌l(fā)生是由外部因素決定的,程序中無法事先安排調(diào)用指令,因此,調(diào)用中斷服務(wù)程序的過程是由硬件自動完成的。編輯ppt5.2.1中斷的基本概念圖5.5中斷執(zhí)行過程編輯ppt1.中斷源:中斷源就是中斷請求信號的來源。2.中斷響應(yīng)與返回3.優(yōu)先級控制圖5.6二級中斷嵌套的中斷過程5.2.1中斷的基本概念編輯ppt二、中斷源和中斷請求標(biāo)志
中斷源是指在計(jì)算機(jī)系統(tǒng)中向CPU發(fā)出中斷請求的來源,中斷可以人為設(shè)定,也可以是為響應(yīng)突發(fā)性隨機(jī)事件而設(shè)置。通常有I/O設(shè)備、實(shí)時(shí)控制系統(tǒng)中的隨機(jī)參數(shù)和信息故障源等??煞譃橥獠恐袛嗪蛢?nèi)部中斷。
5.2.2中斷源和中斷請求標(biāo)志編輯ppt5.2.2中斷源和中斷請求標(biāo)志圖5.7中斷系統(tǒng)結(jié)構(gòu)編輯pptIT0(IT1):外部中斷0(或1)觸發(fā)方式控制位。IT0(或IT1)=0,則選擇外部中斷為電平觸發(fā)方式,低電平有效;IT0(或IT1)=1,則選擇外部中斷為邊沿觸發(fā)方式,負(fù)跳沿有效。這兩位由用戶用根據(jù)需要用軟件編程寫入“1”或“0”,進(jìn)而控制外中斷請求信號方式??梢允褂米止?jié)操指令,也可用位操作指令:CLRIT0;定義外中斷0為電平觸發(fā)方式。ORLTCON,#05H;定義兩外中斷均為脈沖觸發(fā)方式5.2.2中斷源和中斷請求標(biāo)志1.外部中斷由P3.2、P3.3輸入中斷請求信號,外部中斷請求有兩種觸發(fā)方式:電平觸發(fā)及邊沿觸發(fā)。用戶可以通過對特殊功能寄存器TCON中IT0和IT1位的編程來選擇。相應(yīng)位定義格式如下:
編輯pptIE0(IE1):外部中斷0(或1)的中斷請求標(biāo)志位。(硬件置位、硬件復(fù)位)IE0(IE1)=1,表示()檢測到有效的中斷請求信號;IE0(IE1)=0,表示()上無有效的中斷請求信號。5.2.2中斷源和中斷請求標(biāo)志編輯ppt2.內(nèi)部中斷 內(nèi)部中斷有:定時(shí)器/計(jì)數(shù)器T0/T1的溢出中斷,串行口的發(fā)送/接收中斷。T0/T1的溢出中斷標(biāo)志位TF0、TF1
:對外部脈沖計(jì)數(shù)由P3.4、P3.5輸入脈沖信號。當(dāng)T0/T1計(jì)數(shù)到由全1變?yōu)槿?時(shí),由硬件自動置位TCON的TF0或TF1,向CPU申請中斷。CPU響應(yīng)中斷后能自動撤除中斷請求信號(硬件復(fù)位)。
5.2.2中斷源和中斷請求標(biāo)志編輯ppt串行口的中斷標(biāo)志位TI、RI
:當(dāng)串行口發(fā)送完或接收完一幀信息后,通過接口硬件自動置位SCON的TI或RI位向CPU申請的。當(dāng)CPU響應(yīng)中斷后,需用戶采用軟件方法清零,以便撤除中斷請求信號。5.2.2中斷源和中斷請求標(biāo)志編輯ppt串行口控制器SCONTI:串行口發(fā)送中斷源。發(fā)送完一幀,由硬件置位。響應(yīng)中斷后,必須用軟件清0。RI:串行口接收中斷源。接收完一幀,由硬件置位。響應(yīng)中斷后,必須用軟件清0。5.2.2中斷源和中斷請求標(biāo)志編輯ppt三、中斷系統(tǒng)控制1.中斷允許控制寄存器
MCS-51單片機(jī)對各中斷源的中斷開放(允許)或關(guān)閉(屏蔽)是由內(nèi)部的中斷允許寄存器IE的各位來進(jìn)行兩級控制的。所謂兩級控制是指各個(gè)中斷源的允許控制位與一個(gè)中斷允許總控位EA配合實(shí)現(xiàn)對中斷請求的控制。EA(IE.7):允許/禁止全部中斷。當(dāng)EA=0,則禁止所有中斷的響應(yīng);當(dāng)EA=1,則各中斷源的響應(yīng)與否取決于各自的中斷控制位的狀態(tài)。5.2.3中斷系統(tǒng)控制編輯ppt5.2.3中斷系統(tǒng)控制
X(IE.6):保留位,無意義。ET2(IE.5):定時(shí)計(jì)數(shù)器2(8052型單片機(jī))的溢出或捕獲中斷響應(yīng)控制位。ET2=0則禁止中斷響應(yīng)(關(guān)中斷);ET2=1為允許中斷響應(yīng)(開中斷)。ES(IE.4):串行通信接收/發(fā)送中斷響應(yīng)控制位。ES=0,禁止中斷響應(yīng)(關(guān)中斷);ES=1,允許中斷響應(yīng)(開中斷)。ETi(IE.3,IE.1):定時(shí)器/計(jì)數(shù)器i(i=0、1)的溢出中斷響應(yīng)控制位。ETi=0,禁止中斷響應(yīng)(關(guān)中斷);ETi=1,則允許中斷響應(yīng)(開中斷)。EXi(IE.2、IE.0):外部中斷i()中斷響應(yīng)控制位。EXi=0,禁止中斷響應(yīng)(關(guān)中斷);EXi=1則允許中斷響應(yīng)(開中斷)
。編輯ppt5.2.3中斷系統(tǒng)控制例如:要使INT0開中(其余關(guān)中),可執(zhí)行下列指令:
MOVIE,#1000000lB;
或者:SETBEA;SETBEX0;
編輯ppt5.2.3中斷系統(tǒng)控制
2.中斷優(yōu)先級控制CPU同一時(shí)間只能響應(yīng)一個(gè)中斷請求。若同時(shí)來了兩個(gè)或兩個(gè)以上中斷請求,就必須有先有后。MCS-51單片機(jī)的中斷源有兩個(gè)用戶可控的中斷優(yōu)先級,即高、低中斷優(yōu)先級,從而實(shí)現(xiàn)中斷嵌套。編輯ppt5.2.3中斷系統(tǒng)控制CPU響應(yīng)中斷的原則是:1)先高后低
如果多個(gè)中斷請求同時(shí)出現(xiàn),CPU首先響應(yīng)優(yōu)先級別最高的中斷請求;2)高可斷低
高優(yōu)先級的中斷請求可中斷正在執(zhí)行的低優(yōu)先級中斷服務(wù)程序,實(shí)現(xiàn)中斷嵌套;3)同低不斷
同級或低優(yōu)先級的中斷請求不能中斷正在執(zhí)行的中斷服務(wù)程序。如果有兩個(gè)或兩個(gè)以上的同一優(yōu)先級別的中斷源同時(shí)向CPU申請中斷,則這些同級中斷源的中斷優(yōu)先權(quán)按CPU對內(nèi)部硬件的查詢次序決定。編輯ppt5.2.3中斷系統(tǒng)控制IP寄存器的格式如下:(可通過軟件設(shè)置,定義各中斷源的中斷優(yōu)先級別)、(IP.6、IP.7):保留位,無定義。PT2(IP.5):T2的中斷優(yōu)先級設(shè)置位。通過編程設(shè)置PT2=1,則定義為高優(yōu)先級中斷;設(shè)置PT2=0,則定義為低優(yōu)先級中斷。PS(IP.4):串行通信中斷優(yōu)先級設(shè)置位。軟件設(shè)置PS=1,則定義為高優(yōu)先級中斷;設(shè)PS=0,則定義為低優(yōu)先級中斷。編輯ppt5.2.3中斷系統(tǒng)控制PTi(IP.3、IP.1):Ti中斷優(yōu)先級設(shè)置位。軟件設(shè)置PTi=1,則定義為高優(yōu)先級中斷;設(shè)置PTi=0,則定義為低優(yōu)先級中斷。PXi(IP.2、IP.0):外部中斷i中斷優(yōu)先級設(shè)置位。軟件設(shè)置PXi=1,則定義為高優(yōu)先級中斷;設(shè)置PXi=0,則定義為低優(yōu)先級中斷。例如:若要將INT1、串行口設(shè)置為高優(yōu)先級,其余中斷源設(shè)置為低優(yōu)先級,可執(zhí)行下列指令:MOVIP,#00010100B;編輯ppt5.2.3中斷系統(tǒng)控制
當(dāng)同時(shí)有兩個(gè)或兩個(gè)以上優(yōu)先級相同的中斷請求時(shí),則由內(nèi)部按查詢優(yōu)先順序來確定該響應(yīng)的中斷請求,其優(yōu)先順序由高向低順序排列。優(yōu)先順序排列如下:中斷優(yōu)先原則:1、低級不打斷高級2、高級不睬低級3、同級不能打斷4、同級、同時(shí)中斷,事先約定。
編輯ppt5.2.4中斷處理過程四、中斷處理過程 中斷處理過程大致可分為四步:中斷請求、中斷響應(yīng)、中斷服務(wù)、中斷返回。1.中斷請求
中斷源發(fā)出中斷請求信號,相應(yīng)的中斷請求標(biāo)志位(在中斷允許控制寄存器IE中)置“1”。編輯ppt5.2.4中斷處理過程2.中斷響應(yīng)1)響應(yīng)的條件CPU在每個(gè)機(jī)器周期的S6按照優(yōu)先級查詢中斷標(biāo)志位,當(dāng)相應(yīng)中斷源有中斷請求且滿足如下條件之一時(shí),MSC-51單片機(jī)響應(yīng)中斷。(1)無同級或高級中斷正在處理或CPU處在非中斷響應(yīng)狀態(tài),CPU處于開中斷(即EA=1)狀態(tài)且相應(yīng)中斷是開放的(中斷允許寄存器IE相應(yīng)位置1)。(2)若CPU正在響應(yīng)某一中斷請求時(shí)又來了新的中斷請求,則應(yīng)滿足高級中斷可以中斷低級中斷,實(shí)現(xiàn)中斷嵌套;低級中斷只能等待現(xiàn)有中斷服務(wù)完成后再被響應(yīng)的原則。(3)若CPU現(xiàn)行執(zhí)行的指令為RETI或任何訪問IE、IP(如SETBEA)的指令時(shí),則執(zhí)行完該指令且緊隨其后的另一條指令也已執(zhí)行完畢后才響應(yīng)該中斷請求。編輯ppt5.2.4中斷處理過程2)中斷響應(yīng)過程
首先,根據(jù)中斷源的優(yōu)先級高低,對相應(yīng)的優(yōu)先級狀態(tài)觸發(fā)器置1;
然后,保護(hù)斷點(diǎn),把當(dāng)前程序計(jì)數(shù)器PC的內(nèi)容壓入堆棧。
其次,封鎖同級和低級中斷,以防在響應(yīng)中斷期間受其他中斷的干擾,清除相應(yīng)的中斷請求標(biāo)志位(串行口中斷請求標(biāo)志RI和TI除外);
最后,根據(jù)中斷源入口地址,轉(zhuǎn)入執(zhí)行相應(yīng)中斷服務(wù)程序,各中斷服務(wù)程序的入口地址見表5.1。
編輯ppt5.2.4中斷處理過程中斷源入口地址INT00003HT0000BHINT10013HT1001BHRI/TI0023H表5.1中斷源入口地址編輯ppt5.2.4中斷處理過程3)中斷響應(yīng)時(shí)間所謂中斷響應(yīng)時(shí)間是指CPU檢測到中斷請求信號到轉(zhuǎn)入中斷服務(wù)程序入口所需要的機(jī)器周期數(shù)。MCS-51單片機(jī)響應(yīng)中斷的最短時(shí)間為3個(gè)機(jī)器周期,時(shí)間最長需要8個(gè)機(jī)器周期。編輯ppt5.2.4中斷處理過程3執(zhí)行中斷服務(wù)程序
中斷服務(wù)程序應(yīng)包含以下幾部分:⑴保護(hù)現(xiàn)場:
中斷時(shí)刻單片機(jī)存儲單元中的數(shù)據(jù)或狀態(tài).
(2)允許中斷和禁止中斷
在CPU執(zhí)行當(dāng)前中斷服務(wù)程序的過程中,往往又會有其它中斷源的中斷請求出現(xiàn)。
(3)執(zhí)行中斷服務(wù)程序主體,完成相應(yīng)操作(4)恢復(fù)現(xiàn)場編輯ppt5.2.4中斷處理過程4中斷返回
在中斷服務(wù)程序最后,必須安排一條中斷返回指令RETI,當(dāng)CPU執(zhí)行RETI指令后,自動完成下列操作:⑴恢復(fù)斷點(diǎn)地址。⑵開放同級中斷,以便允許同級中斷源請求中斷。編輯ppt5.2.5中斷請求的撤除五、中斷請求的撤除中斷源發(fā)出中斷請求,相應(yīng)中斷請求標(biāo)志置“1”。CPU響應(yīng)中斷后,必須清除中斷請求“1”標(biāo)志。否則中斷響應(yīng)返回后,將再次進(jìn)入該中斷,引起死循環(huán)出錯(cuò)。⑴對定時(shí)/計(jì)數(shù)器T0、T1中斷,外中斷邊沿觸發(fā)方式,CPU響應(yīng)中斷時(shí)就用硬件自動清除了相應(yīng)的中斷請求標(biāo)志。⑵對外中斷電平觸發(fā)方式,需要采取軟硬結(jié)合的方法消除后果。⑶對串行口中斷,用戶應(yīng)在串行中斷服務(wù)程序中用軟件清除TI或RI。編輯ppt5.2.6中斷的應(yīng)用及編程六、中斷的應(yīng)用及編程⒈中斷初始化
⑴設(shè)置堆棧指針SP⑵定義中斷優(yōu)先級⑶定義外中斷觸發(fā)方式⑷開放中斷⑸安排好等待中斷或中斷發(fā)生前主程序應(yīng)完成的操作內(nèi)容。編輯ppt5.2.6中斷的應(yīng)用及編程⒉中斷服務(wù)主程序⑴在中斷服務(wù)入口地址設(shè)置一條跳轉(zhuǎn)指令,轉(zhuǎn)移到中斷服務(wù)程序的實(shí)際入口處。⑵根據(jù)需要保護(hù)現(xiàn)場。⑶中斷源請求中斷服務(wù)要求的操作。⑷恢復(fù)現(xiàn)場。與保護(hù)現(xiàn)場相對應(yīng),注意先進(jìn)后出、后進(jìn)先出操作原則。⑸中斷返回,最后一條指令必須是RETI。編輯ppt5.2.6中斷的應(yīng)用及編程例5-1
若要求外部中斷引腳為邊沿觸發(fā)方式,以及處于高中斷優(yōu)先級,編寫中斷系統(tǒng)初始化程序。解:程序的編制有兩種方法,一種是采用位操作指令進(jìn)行編制,另一種是字節(jié)型指令編制。程序分別如下。方法一: SETBEA SETB EX1 ;開INT1中斷 SETBPX1 ;令I(lǐng)NT1為高優(yōu)先級 SETB IT1 ;令I(lǐng)NT1為邊沿觸發(fā)方式方法二: MOV IE, #84H ;開INT1中斷 ORL IP, #04H ;令I(lǐng)NT1為高優(yōu)先級 ORLTCON,#04H ;令I(lǐng)NT1為邊沿觸發(fā)方式編輯ppt5.2.6中斷的應(yīng)用及編程例5-2:單片機(jī)通過P1口以中斷方式向外設(shè)輸出數(shù)據(jù),當(dāng)外設(shè)準(zhǔn)備好接收數(shù)據(jù)時(shí),就發(fā)出選通信號,經(jīng)觸發(fā)器和非門至INT0,如下圖所示。請編制相應(yīng)程序。P1口P3.0QDCPSD外設(shè)選通信號接地INT0數(shù)據(jù)至外設(shè)8031編輯ppt5.2.6中斷的應(yīng)用及編程解:當(dāng)外設(shè)準(zhǔn)備好接收一個(gè)數(shù)據(jù)后,發(fā)出選通信號,使觸發(fā)器輸出高電平后經(jīng)非門至INT0引腳,向CPU發(fā)出中斷請求,CPU響應(yīng)這個(gè)中斷請求后,在中斷處理程序中先撤除中斷請求信號,(通過P3.0=1,使INT0=1)再由P1口將單片機(jī)內(nèi)部的數(shù)據(jù)輸出到外設(shè)。ORG0000HSTART:LJMPMAINORG0003HLJMPIINT0ORG0030H;主程序MAIN:CLRIT0;低電平觸發(fā)SETBEASETBEX0;開中斷 SETBPX0 ;優(yōu)先級設(shè)置MOVDPTR,#1000H;外設(shè)首地址
...編輯ppt5.2.6中斷的應(yīng)用及編程
ORG0100HIINT0: PUSHPSW;中斷處理程序 PUSHACCCLRP3.0NOPNOPSETBP3.0;撤除INT0MOVA,P1;輸入數(shù)據(jù)MOVX@DPTR,A;保存數(shù)據(jù)INCDPTR...POPACC;恢復(fù)現(xiàn)場POPPSWRETI;返回主程序編輯ppt5.3MCS-51單片機(jī)定時(shí)器/計(jì)數(shù)器5.3MCS-51單片機(jī)定時(shí)器/計(jì)數(shù)器軟件定時(shí):循環(huán)程序,定時(shí)準(zhǔn)確,無需硬件電路,但增加CPU開銷硬件定時(shí):硬件電路實(shí)現(xiàn),不占用CPU時(shí)間,使用不夠方便可編程定時(shí)/計(jì)數(shù)器:對系統(tǒng)時(shí)鐘脈沖的計(jì)數(shù)定時(shí),計(jì)數(shù)值通過程序設(shè)定,定時(shí)準(zhǔn)確,使用靈活方便編輯ppt5.3MCS-51單片機(jī)定時(shí)器/計(jì)數(shù)器
定時(shí)器/計(jì)數(shù)器可以是獨(dú)立的集成芯片,也可以構(gòu)成于單片機(jī)內(nèi)部,但無論何種形式都具有以下共性: 1、定時(shí)、計(jì)數(shù)器的核心部件是一個(gè)加1計(jì)數(shù)器。兩種工作方式的區(qū)別在于計(jì)數(shù)脈沖來源,定時(shí)器/計(jì)數(shù)器可以工作于計(jì)數(shù)方式也可以工作于定時(shí)方式。書P81 2、定時(shí)器/計(jì)數(shù)器的計(jì)數(shù)值在范圍內(nèi)是可變的,這取決于計(jì)數(shù)器的位數(shù)。計(jì)數(shù)的最大值也就限定了定時(shí)的最大值。書P85 3、在到達(dá)設(shè)定的定時(shí)或計(jì)數(shù)值時(shí)發(fā)出溢出中斷申請,實(shí)現(xiàn)定時(shí)控制。PPT5.2節(jié)編輯ppt5.3MCS-51單片機(jī)定時(shí)器/計(jì)數(shù)器
在MCS-51單片機(jī)內(nèi)部有兩個(gè)16位定時(shí)器/計(jì)數(shù)器T0和T1,它們均可作為定時(shí)器或計(jì)數(shù)器使用,均具有4種不同的工作方式,用戶可通過對特殊功能寄存器的編程,方便地選擇適當(dāng)?shù)墓ぷ鞣绞郊霸O(shè)定T0或T1工作于定時(shí)器還是計(jì)數(shù)器。
(1):何時(shí)控制啟動計(jì)數(shù)器?問題:(2):如何控制是定時(shí)還是計(jì)數(shù)? (3):如何控制定時(shí)/計(jì)數(shù)的長短?編輯ppt5.3.1T0、T1的結(jié)構(gòu)一、T0、T1的結(jié)構(gòu)1.內(nèi)部結(jié)構(gòu)外部輸入脈沖圖5.8編輯ppt
1加法計(jì)數(shù)器的初值可以由程序設(shè)定,設(shè)置的初值不同,加法器達(dá)到溢出所需的計(jì)數(shù)值或定時(shí)時(shí)間就不同。
2對定時(shí)器/計(jì)數(shù)器工作模式、工作方式的設(shè)定及控制是通過方式選擇寄存器TMOD和控制寄存器TCON這兩個(gè)特殊功能寄存器來完成的。5.3.1T0、T1的結(jié)構(gòu)編輯ppt2.定時(shí)器/計(jì)數(shù)器方式選擇寄存器TMOD
定時(shí)器/計(jì)數(shù)器T0、T1都有4種工作方式,可通過程序?qū)MOD的編程來設(shè)置。其位定義如下:5.3.1T0、T1的結(jié)構(gòu)編輯pptC/
:定時(shí)或計(jì)數(shù)功能選擇位,“1”時(shí)為計(jì)數(shù)方式;“0”時(shí)為定時(shí)方式。M1、M0:定時(shí)器/計(jì)數(shù)器工作方式選擇位,5.3.1T0、T1的結(jié)構(gòu)編輯ppt5.3.1T0、T1的結(jié)構(gòu)GATE:門控位,用于控制定時(shí)器/計(jì)數(shù)器的啟動是否受外部引腳中斷請求信號的影響。當(dāng)GATE=0時(shí),TRx=1,啟動Tx計(jì)數(shù);TRx=0,停止Tx計(jì)數(shù)。當(dāng)GATE=1時(shí),僅當(dāng)TRx=1且=1時(shí),才允許Tx計(jì)數(shù),該位由軟件進(jìn)行設(shè)置。GATE=0TRx=1一般情況下,選用該方法
編輯ppt3.定時(shí)器/計(jì)數(shù)器控制寄存器TCONTF0(TF1):T0(T1)溢出中斷標(biāo)志位。當(dāng)T0/T1啟動計(jì)數(shù)后,從初值開始加1計(jì)數(shù),當(dāng)T0(T1)計(jì)數(shù)溢出時(shí),由硬件將該位置位,并在允許中斷的情況下,向CPU發(fā)出中斷請求信號,CPU響應(yīng)中斷轉(zhuǎn)向中斷服務(wù)程序時(shí),由硬件自動將該位清零,TF0(TF1)也可以由程序查詢或清零。5.3.1T0、T1的結(jié)構(gòu)編輯ppt5.3.1T0、T1的結(jié)構(gòu)TR0(TR1):T0(T1)運(yùn)行控制位。當(dāng)GATE=0時(shí),TRx=1,啟動Tx計(jì)數(shù);TRx=0,停止計(jì)數(shù)。當(dāng)GATE=1時(shí),僅當(dāng)TRx=1且=1時(shí),才允許Tx計(jì)數(shù),該位由軟件進(jìn)行設(shè)置。控制字中其余用于中斷控制。編輯ppt5.3.2T0、T1的4種工作方式
二、T0、T1的4種工作方式
T0和T1都具有4種工作方式,當(dāng)工作于方式0、1、2時(shí),T0和T1功能相同,但工作在3時(shí),其功能不同。下面分別介紹這4種工作方式。1.工作方式0(M1M0=00)定時(shí)/計(jì)數(shù)方式0是13位計(jì)數(shù)器,即THx高8位(作計(jì)數(shù)器)和TLx的低5位(32分頻的定標(biāo)器)構(gòu)成,TLx的高3位未用。(x=0或1)計(jì)數(shù)時(shí),TLx的低5位溢出后向THx進(jìn)位,THx溢出后將TFx置位,并向CPU申請中斷。編輯ppt圖5.9定時(shí)/計(jì)數(shù)方式0:13位計(jì)數(shù)器示意圖5.3.2T0、T1的4種工作方式編輯ppt2.工作方式1(M1M0=01)
由THx和TLx組成16位計(jì)數(shù)器。其組成結(jié)構(gòu)與定時(shí)/計(jì)數(shù)方式0完全相同,但計(jì)數(shù)范圍比定時(shí)/計(jì)數(shù)方式0擴(kuò)大了很多。 計(jì)數(shù)信號從TLx的低位輸入,計(jì)數(shù)每溢出一次,THx計(jì)數(shù)器加1。當(dāng)16位由全“1”變成全“0”時(shí),最高位產(chǎn)生溢出,置位TFx,向主機(jī)請求中斷。圖5.10定時(shí)/計(jì)數(shù)方式1:16位計(jì)數(shù)器示意圖5.3.2T0、T1的4種工作方式編輯ppt5.3.2T0、T1的4種工作方式模式0、1的特點(diǎn):13位和16位的計(jì)數(shù)器模式。啟動后,從某一個(gè)初值的基礎(chǔ)上進(jìn)行“加一”計(jì)數(shù)。當(dāng)計(jì)到“全1”時(shí)再來一個(gè)計(jì)數(shù)脈沖,計(jì)數(shù)器就會產(chǎn)生一個(gè)“溢出”即TFx=1,此時(shí)計(jì)數(shù)器本身為“全零”。如果需要重復(fù)性的完成某一值的定時(shí)或計(jì)數(shù),需要在每一次計(jì)數(shù)前不斷的重新預(yù)裝初值,稱之為“軟件重裝初值”。編輯ppt5.3.2T0、T1的4種工作方式3.工作方式2(M1M0=10)TLx自動設(shè)置初始值由TLx作為8位計(jì)數(shù)器,THx作為計(jì)數(shù)初值寄存器,設(shè)置初值時(shí)同時(shí)送THx和TLx。TLx進(jìn)行加1計(jì)數(shù),在計(jì)數(shù)溢出時(shí),不僅置溢出標(biāo)志TFx,還自動將THx中的內(nèi)容自動送入TLx,使TLx重新從初值開始計(jì)數(shù)。THx的內(nèi)容可由軟件置入,且在計(jì)數(shù)器工作期間其值不變。非常適合進(jìn)行重復(fù)性定時(shí)的場合,如產(chǎn)生連續(xù)方波信號等。編成中省去了軟件重裝初值的麻煩。方式2適用于產(chǎn)生固定時(shí)間間隔的控制脈沖,也可以做為串口波特率發(fā)生器。編輯ppt5.3.2T0、T1的4種工作方式圖5.11定時(shí)/計(jì)數(shù)方式2:8位自動再裝入計(jì)數(shù)器示意圖編輯ppt5.3.2T0、T1的4種工作方式4.工作方式3(M1M0=11)(只有T0有方式3)將定時(shí)器/計(jì)數(shù)器T0分成兩個(gè)獨(dú)立的8位計(jì)數(shù)器,用TL0組成完整的8位定時(shí)器/計(jì)數(shù)器(既可以定時(shí),又可以計(jì)數(shù)),用TH0組成只能定時(shí)的8位定時(shí)器。TL0占用原T0的各個(gè)控制位、引腳和中斷標(biāo)志;TH0分別借用了定時(shí)器T1的TR1、TF1和ET1為自己服務(wù),使TH0能象TL0那樣用TR1啟動定時(shí),并用TF1來作為TH0的溢出中斷的標(biāo)志。T1無方式3,若硬設(shè)為方式3,則T1立即停止計(jì)數(shù)。
T0為方式3時(shí),T1可為方式0~2,僅用T1的C/T位進(jìn)行控制,計(jì)數(shù)器溢出時(shí),只能將輸出送入串口或不用于中斷的場合。適用場合:T0較少選用方式3,只在T1用作波特率發(fā)生器時(shí),T0才選作方式3,T1常設(shè)為方式2的波特率發(fā)生器。編輯ppt5.3.2T0、T1的4種工作方式圖5.12定時(shí)/計(jì)數(shù)方式3:二個(gè)8位計(jì)數(shù)器示意圖編輯ppt5.3.2T0、T1的4種工作方式圖5.13計(jì)數(shù)格式編輯ppt5.3.3定時(shí)器/計(jì)數(shù)器應(yīng)用舉例三、定時(shí)器/計(jì)數(shù)器應(yīng)用舉例1.初始化步驟通常情況下設(shè)置順序大致如下:(1)工作方式控制字(TMOD)的設(shè)置;(2)計(jì)數(shù)初值的計(jì)算及裝入TLx、THx;(3)中斷允許位ETx、EA的設(shè)置,使主機(jī)開放中斷;(4)給中斷優(yōu)先級寄存器IP選送中斷優(yōu)先級字,以設(shè)定中斷優(yōu)先級;(5)啟/停位TRx的設(shè)置等。編輯ppt5.3.3定時(shí)器/計(jì)數(shù)器應(yīng)用舉例2.計(jì)數(shù)器初值計(jì)算方法
假設(shè)將計(jì)數(shù)器計(jì)滿為0所需要的計(jì)數(shù)值為N,應(yīng)裝入的計(jì)數(shù)初值為X,n為計(jì)數(shù)器的位數(shù),則:X=2n-N
其中n與計(jì)數(shù)器工作方式有關(guān)。在方式0時(shí)n=13,在方式1時(shí)n=16,在方式2和方式3時(shí)n=8。編輯ppt5.3.3定時(shí)器/計(jì)數(shù)器應(yīng)用舉例3.定時(shí)器初值計(jì)算方法假設(shè)定時(shí)時(shí)間為T,機(jī)器周期為Tp,即12/晶振頻率。X為定時(shí)器的定時(shí)初值,則:T=(2n-X)TpX=2n-T/Tp(n同上)再將計(jì)算出的初值轉(zhuǎn)換為二進(jìn)制數(shù)TB,然后再分別送入THi、TLi(對于T0,i=0;對于T1,i=1)編輯ppt5.3.3定時(shí)器/計(jì)數(shù)器應(yīng)用舉例例5-3:設(shè)定時(shí)時(shí)間T=5ms,機(jī)器周期Tp=2μs,則可求得計(jì)數(shù)次數(shù)(T/TP)為5ms/2μs=2500次。P85例5-2選用方式0:
n=13,應(yīng)設(shè)置計(jì)數(shù)初值X=213-(T/Tp)=8192-2500=5692,變成二進(jìn)制數(shù)為(1011000111100)B
MOVTHi,#0B1H;送高8位MOVTLi,#1CH;送低5位(高3位為0)編輯ppt5.3.3定時(shí)器/計(jì)數(shù)器應(yīng)用舉例選用方式1:
n=16,設(shè)置計(jì)數(shù)初值為:X=216-(T/Tp)=65536-2500=63036,變成二進(jìn)制數(shù)為(1111011000111100)B
MOVTHi,#F6H;送高8位MOVTLi,#3CH;送低8位編輯ppt5.3.3定時(shí)器/計(jì)數(shù)器應(yīng)用舉例在本例中,不能選方式2,因?yàn)?8=256<2500。假設(shè)需要計(jì)數(shù)100次,則可選方式2:256-100=156,變成二進(jìn)制數(shù)為(10011100)B,變成十六進(jìn)制數(shù)為9CH, MOVTHi,#9CH;送高8位 MOVTLi,#9CH;送低8位編輯ppt5.3.3定時(shí)器/計(jì)數(shù)器應(yīng)用舉例例5-4:方式0應(yīng)用:利用定時(shí)器/計(jì)數(shù)器T0在P1.0引腳輸出周期為2ms的方波,設(shè)時(shí)鐘頻率為6MHz,編寫相應(yīng)的程序。P86例5-4可采用定時(shí)中斷的方式,每1ms產(chǎn)生一次中斷,在中斷服務(wù)程序中將輸出信號取反即可。定時(shí)器T0的中斷入口地址為000BH。①初值計(jì)算。因T=(2n-X)/Tp,則計(jì)數(shù)初值為:X=2n-T/Tp=213-500=8192-500=7692=1111000001100B則TH0=F0H,TL0=0CH。編輯ppt5.3.3定時(shí)器/計(jì)數(shù)器應(yīng)用舉例②確定初始化控制字。主要對IP,IE,TCON,TMOD的相應(yīng)位進(jìn)行正確的設(shè)置,本例假設(shè)從系統(tǒng)復(fù)位開始。TMOD=00000000B=00H,TCON=0。③程序設(shè)計(jì):T0的中斷服務(wù)程序,除了產(chǎn)生要求的方波外,還要注意將時(shí)間常數(shù)送入定時(shí)器中,為下一次產(chǎn)生中斷做準(zhǔn)備。編輯ppt5.3.3定時(shí)器/計(jì)數(shù)器應(yīng)用舉例
ORG000BH ;T0中斷服務(wù)程序入口 LJMPZD ;轉(zhuǎn)至INT處 ORG2000H ;主程序 MOVTMOD,#00H ;置T0為定時(shí)方式0 MOVTH0,#0F0H ;設(shè)置計(jì)數(shù)初值 MOVTL0,#0CH SETBEA ;CPU開中斷 SETBET0 ;允許T0中斷 SETBTR0 ;啟動T0 HALT: SJMP$ ;暫停,等待中斷 ZD:CPLP1.0 ;輸出方波 MOVTH0,#0F0H ;重新裝入計(jì)數(shù)初值 MOVTL0,#0CH RETI ;中斷返回編輯ppt5.3.3定時(shí)器/計(jì)數(shù)器應(yīng)用舉例例5-5
方式2應(yīng)用:假設(shè),有一個(gè)周期為10ms的脈沖信號,加在引腳T0/P3.4上?,F(xiàn)要求該引腳每發(fā)生一次負(fù)跳變,P1.0端就輸出1個(gè)2ms脈寬的同步負(fù)脈沖,如圖所示。假設(shè)單片機(jī)晶振頻率為12MHz。編輯ppt5.3.3定時(shí)器/計(jì)數(shù)器應(yīng)用舉例解:可將T0設(shè)定為方式2計(jì)數(shù)方式,初值可設(shè)為FFH,即外部脈沖由P3.4口發(fā)生一次負(fù)跳變時(shí),計(jì)數(shù)器加1即產(chǎn)生溢出,并向CPU發(fā)中斷。程序在T0產(chǎn)生一次負(fù)跳變后,使P1.0產(chǎn)生2ms的同步負(fù)脈沖,可利用T1采用方式1產(chǎn)生2ms定時(shí)生成(初值計(jì)算)。程序如下(中斷方式):
ORG0000H AJMPMAIN ORG 000BH ;T0中斷入口地址 AJMP LOOP1 ORG 001BH ;T1中斷入口地址 AJMP ITIP ORG MAIN MAIN:MOVTMOD,#16H;T0初始化程序 MOVTL0,#0FFH;T0初值 MOVTH0,#0FFH SETBTR0;啟動T0T1T000010110編輯ppt5.3.3定時(shí)器/計(jì)數(shù)器應(yīng)用舉例
SETBET0 ;允許T0中斷 SETBEA;開中斷 MOVTL1,#30H ;T1置初值 MOVTH1,#0F8HSETB P1.0 ;P1.0初始為高電平 MOVIP,HERE: AJMPHERE ;等待TL0/T1中斷LOOP1: CPLP1.0 ;T0中斷服務(wù)程序 SETBTR1 ;啟動T1 SETBET1 ;允許T1中斷 RETIITIP: MOVTL1,#30H ;T1中斷服務(wù)程序 MOVTH1,#F8H CPLP1.0 ;P1.0取反CLR ET1 ;屏蔽T1中斷 RETI編輯ppt5.3.3定時(shí)器/計(jì)數(shù)器應(yīng)用舉例程序如下(查詢方式): 首先選T0為方式2,外部事件計(jì)數(shù)方式。當(dāng)P3.4(T0)引腳上的電平發(fā)生負(fù)跳變時(shí),T0計(jì)數(shù)器加1,溢出標(biāo)志TF0置1;然后改變T0為2ms定時(shí)功能,采用方式1,使P1.0輸出由1變?yōu)?。T0定時(shí)到產(chǎn)生溢出,使P1.0引腳恢復(fù)輸出高電平。T0先計(jì)數(shù),后定時(shí),分時(shí)操作。START:MOV
TMOD,#06H
;T0方式2,外部計(jì)數(shù)方式
MOV
TH0,#0FFH
;T0計(jì)數(shù)初值
MOV
TL0,#0FFH
SETB
TR0
;啟動T0計(jì)數(shù) MOVIE,#00H ;關(guān)中斷 SETB P1.0 ;P1.0初始為高電平LOOPl:JBC
TF0,PTF01
;查詢T0溢出標(biāo)志,TF0=1時(shí) 轉(zhuǎn)移,且TF0=0(查P3.4負(fù)跳變)
編輯ppt5.3.3定時(shí)器/計(jì)數(shù)器應(yīng)用舉例
SJMPLOOPl ;等待T0計(jì)數(shù)溢出中斷PTF01:CLRTR0
;停止計(jì)數(shù)
MOV
TMOD,#01H
;T0方式1,定時(shí)
MOV
TH0,#0F8H
;T0定時(shí)2ms初值
MOV
TL0,#30H
CLR
P1.0
;P1.0清0
SETB
TR0
;啟動定時(shí)2msLOOP2:JBC
TF0,PTF02
;查詢溢出標(biāo)志,定時(shí)到TF0=l轉(zhuǎn) 移,且TF0=0(第一個(gè)2ms到否?)
SJMP
LOOP2;等待T0定時(shí)溢出中斷PTF02:SETB
P1
;P1.0置1(到了第一個(gè)500μs)
CLR
TR0
;停止計(jì)數(shù)
SJMP
START編輯ppt5.3.3定時(shí)器/計(jì)數(shù)器應(yīng)用舉例例5-6
方式3應(yīng)用:設(shè)晶振頻率為6MHz,定時(shí)/計(jì)數(shù)器T0工作于方式3,TL0和TH0作為兩個(gè)獨(dú)立的8位定時(shí)器,通過TL0和TH0的中斷分別使P1.0和P1.1產(chǎn)生400μs和800μs的方波。解:當(dāng)采用方式3時(shí),對于TH0來說,需要借用定時(shí)器T1的控制信號。①計(jì)算計(jì)數(shù)初值:X0=28-200/2=156=9CHX1=28-400/2=56=38H②確定TMOD方式字:對定時(shí)器T0來說,M1M0=11、C/T=0、GATE=0,定時(shí)器T1不用,取為全0。則TMOD=00000011B=03H。編輯ppt5.3.3定時(shí)器/計(jì)數(shù)器應(yīng)用舉例③程序如下:ORGMAIN;主程序MAIN: MOVTMOD,#03H ;T0工作于方式3 MOVTL0,#9CH ;置計(jì)數(shù)初值 MOVTH0,#38H SETBTR0;啟動TL0 SETBET0;允許T0中斷(用于TL0) SETBTR1 ;啟動TH0 SETBET1 ;允許T1中斷(用于TH0) SETBEA;CPU開中斷 HALT:SJMPHALT ;暫停,等待中斷 ORG000BH ;TL0中斷服務(wù)程序 CPLP1.0 ;P1.0取反 MOVTL0,#9CH ;重新裝入計(jì)數(shù)初值 RETI ;中斷返回 ORG001BH ;TH0中斷服務(wù)程序 CPLP1.1;P1.1取反 MOVTH0,#38H ;重新裝入計(jì)數(shù)初值 RETI ;中斷返回編輯ppt5.3.3定時(shí)器/計(jì)數(shù)器應(yīng)用舉例注意:運(yùn)行中讀定時(shí)計(jì)數(shù)器 可隨時(shí)讀寫THx和TLx,比如實(shí)時(shí)顯示計(jì)數(shù)值等,但要注意讀取時(shí)由于分時(shí)讀THx和TLx所帶來的特殊性,例如先讀THx再讀TLx,由于讀取過程中Tx一直在計(jì)數(shù),可能會出現(xiàn)TLx向THx進(jìn)位的情況,讀的值就不正確。反之亦然,因此,先讀THx再讀TLx,然后再重讀THx,若兩次讀取的THx一致,則正確,反之要全部重讀。編輯ppt5.4MCS-51單片機(jī)串行接口
5.4MCS-51單片機(jī)串行接口
基礎(chǔ)知識所謂通信是指計(jì)算機(jī)與計(jì)算機(jī)或計(jì)算機(jī)與外設(shè)之間的數(shù)據(jù)傳輸,這里的“信”是指信息,即是由數(shù)字1和0構(gòu)成一個(gè)或一批數(shù)據(jù)。數(shù)據(jù)通信通常有兩種方式,即并行通信和串行通信。并行通信的特點(diǎn)是所有的數(shù)據(jù)位被同時(shí)發(fā)送或接收,數(shù)據(jù)傳送速度快,但并行通信需要多條(8、16條)數(shù)據(jù)線和控制線,傳送成本高,傳送距離短;串行通信的數(shù)據(jù)傳送是按位進(jìn)行傳送的,只需兩條線,一條用于發(fā)送數(shù)據(jù),另一條用于接收數(shù)據(jù),傳送成本很低,且通信距離遠(yuǎn),但比并行通信傳輸速度慢。編輯ppt5.4.0MCS-51單片機(jī)的串行口
按數(shù)據(jù)的通路和傳送方向不同,串行通信可分為單工、半雙工、全雙工3種方式。書P169
?
單工方式(simplex)
:數(shù)據(jù)僅向一個(gè)方向傳送,即一方始終為發(fā)送端,另一方始終為接收端,中需一根數(shù)據(jù)線即可完成數(shù)據(jù)傳送。
?
半雙工方式(halfduplex)
:數(shù)據(jù)可雙向傳送,但在任一時(shí)刻只能由其中的一方發(fā)送數(shù)據(jù),另一方接收數(shù)據(jù),即發(fā)送和接收數(shù)據(jù)不能同時(shí)進(jìn)行。半雙工方式可用一條線或兩條線實(shí)現(xiàn)。
?
全雙工方式(fullduplex)
:數(shù)據(jù)可以同時(shí)雙向傳送,即發(fā)送和接收數(shù)據(jù)同時(shí)進(jìn)行,必須用兩條線才能實(shí)現(xiàn)。
編輯ppt5.4.0MCS-51單片機(jī)的串行口發(fā)送方A接收方BTXDRXD發(fā)送方A接收方BTXDRXDTXDRXD發(fā)送方A接收方BTXDRXDTXDRXD編輯ppt5.4.0MCS-51單片機(jī)的串行口按傳送的數(shù)據(jù)格式不同,串行通信又可分成異步串行通信和同步串行通信。
異步通信傳送方式:在物理結(jié)構(gòu)上,異步通信的雙方只有數(shù)據(jù)線而沒有時(shí)鐘傳輸線。A、B雙方都以自己的時(shí)鐘源控制著發(fā)送的速率或?qū)邮者M(jìn)行采樣;由于通訊雙方系統(tǒng)時(shí)鐘往往不同,所以在異步通信中,要想保證通信的成功必須保證兩點(diǎn): ①通信雙方必須保持相同的傳送、接收速率(波特率); ②雙方必須遵守相同的數(shù)據(jù)格式(字符幀)。編輯ppt5.4.0MCS-51單片機(jī)的串行口將要傳送的數(shù)據(jù)由一個(gè)0點(diǎn)平的“起始位”引導(dǎo),中間為8位(或9位)的數(shù)據(jù)位,后面有一個(gè)高電平的“停止位”——數(shù)據(jù)幀格式。異步通信的字符幀格式由于添加了“起始位”和“停止位”,占用了傳輸時(shí)間,降低了傳輸效率,因此僅適用于遠(yuǎn)距離的數(shù)據(jù)通信。D0D1D2D3D4D5D6D7起始位停止位01MCS-51單片機(jī)的一個(gè)字符幀的格式編輯ppt5.4.0MCS-51單片機(jī)的串行口同步傳送模式:在物理結(jié)構(gòu)上,通信雙方除了通信的數(shù)據(jù)線外還增加了一個(gè)通信用的“時(shí)鐘傳輸線clock”。由主控方提供時(shí)鐘信號clock。由于有了時(shí)鐘信號來“同步”發(fā)送或接收操作,所以被傳送的數(shù)據(jù)不再使用“起始位”和“停止位”,因而提高了傳送速度。因此同步通信常被用于系統(tǒng)內(nèi)部各芯片之間的接口設(shè)計(jì)。由于同步通信多了一條“時(shí)鐘線”,因此不太適合遠(yuǎn)距離的通信。編輯ppt5.4.0MCS-51單片機(jī)的串行口同步發(fā)送、接收示意圖主控方被控方dataclock主控方被控方dataclock主控方發(fā)送數(shù)據(jù)主控方接收數(shù)據(jù)
編輯ppt5.4.0MCS-51單片機(jī)的串行口串行通信的傳輸速率:用于表征串行通信速率的參數(shù)稱為“波特率”;波特率的單位為:位/秒(bit/s);波特率取值范圍一般為:0~9600bit/s。影響波特率的主要因素取決于傳輸線的分布電容、通信電平標(biāo)準(zhǔn)和傳送距離;編輯ppt5.4.0MCS-51單片機(jī)的串行口串行通信的電平標(biāo)準(zhǔn):書P172為了增加串行通信的距離,可以采用RS-232、RS-485的通信標(biāo)準(zhǔn)。其中:TTL電平(0~5V):10英尺以內(nèi)。RS-232標(biāo)準(zhǔn)(+12V~-12V):50英尺。RS-485標(biāo)準(zhǔn)(差分輸入輸出):1000英尺以上。編輯ppt5.4.0MCS-51單片機(jī)的串行口MCS-51TXD(甲)RXDRXDMCS-51TXD(乙)TXDRXDRXDTXDRS-232或485RS-232或485TXDRXDRS-232PC機(jī)COM1,COM2單片機(jī)甲、乙之間近距離的直接通訊單片機(jī)甲乙兩地之間遠(yuǎn)距離通訊單片機(jī)與PC機(jī)之間的數(shù)據(jù)通訊編輯ppt5.4.0MCS-51單片機(jī)的串行口MCS-51系列單片機(jī)內(nèi)部有1個(gè)功能很強(qiáng)的全雙工串行口,可同時(shí)發(fā)送和接收數(shù)據(jù)。它具有4種工作方式,可應(yīng)用于所需的不同場合。串行通信所需的波特率可由片內(nèi)定時(shí)/計(jì)數(shù)器或系統(tǒng)時(shí)鐘產(chǎn)生并可通過軟件設(shè)置波特率值。接收、發(fā)送過程均可工作在查詢方式或中斷方式,使用十分靈活。MCS-51的串行口既可以做UART(通過異步接收發(fā)送器)使用,也可以作為同步移位寄存器使用,方便地構(gòu)成1個(gè)或多個(gè)并行輸入/輸出口,或作串并轉(zhuǎn)換,用來驅(qū)動鍵盤與顯示器。編輯ppt5.4.1MCS-51單片機(jī)的串行口一、串行口的基本構(gòu)成
MCS-51單片機(jī)串行口的結(jié)構(gòu)主要由數(shù)據(jù)發(fā)送/接收部分、波特率發(fā)生器和串行通信控制寄存器等組成。圖5.14給出了串行口內(nèi)部結(jié)構(gòu)框圖。編輯ppt5.4.1MCS-51單片機(jī)的串行口圖5.14MCS-51系列單片機(jī)串行口內(nèi)部結(jié)構(gòu)圖框圖檢測起始停止位MOVSBUF,AMOVA,SBUF編輯ppt5.4.1MCS-51單片機(jī)的串行口圖5.15串行口信號采樣圖P172圖10.4編輯ppt5.4.1MCS-51單片機(jī)的串行口
1數(shù)據(jù)發(fā)送和接收部分
如圖5.14所示,數(shù)據(jù)發(fā)送部分主要由發(fā)送數(shù)據(jù)緩沖寄存器“SBUF(發(fā)送)”、“零檢測器”和“發(fā)送控制器”等部分組成;數(shù)據(jù)接收部分由接收數(shù)據(jù)緩沖寄存器“SBUF(接收)”、“接收移位寄存器”、“接收控制器”及“位檢測器”等組成。在串行接收時(shí),串行數(shù)據(jù)經(jīng)過RXD(P3.0)引腳進(jìn)入,經(jīng)過接收移位寄存器將串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù)后,移入SBUF(接收),此時(shí),CPU可執(zhí)行MOVA,SBUF指令,產(chǎn)生“讀SBUF(接收)”脈沖,把“SBUF(接收)”中接收到的數(shù)據(jù)通過內(nèi)部總線并行傳送到累加器A中,完成數(shù)據(jù)在此部分的串入并出。數(shù)據(jù)接收部分采用雙緩沖結(jié)構(gòu),避免了接收過程中出現(xiàn)數(shù)據(jù)重疊錯(cuò)誤。編輯ppt5.4.1MCS-51單片機(jī)的串行口
在串行發(fā)送時(shí),串行數(shù)據(jù)通過TXD(P3.1)引腳送出,與接收不同,發(fā)送數(shù)據(jù)過程CPU是主動的,當(dāng)CPU執(zhí)行MOVSBUF,A指令時(shí),產(chǎn)生“寫SBUF(發(fā)送)”脈沖,累加器A中的字符數(shù)據(jù)寫入SBUF(發(fā)送)緩沖寄存器。在發(fā)送控制器的作用下,將數(shù)據(jù)串行發(fā)出。完成數(shù)據(jù)在此部分的并入串出。為提高數(shù)據(jù)發(fā)送速度,發(fā)送器采用單緩沖結(jié)構(gòu)。
在接收和發(fā)送部分包含有兩個(gè)SBUF,一個(gè)是“SBUF(發(fā)送)”,用于存放將要發(fā)送的字符數(shù)據(jù);另一個(gè)是“SBUF(接收)”用于存放接收到的字符數(shù)據(jù)。它們是在物理結(jié)構(gòu)上完全獨(dú)立的兩個(gè)8位緩沖寄存器,但共用一個(gè)端口地址SBUF(99H),這個(gè)重疊地址靠CPU執(zhí)行不同指令區(qū)分。同時(shí),串行口對外也有兩條獨(dú)立的收發(fā)信號線RXD和TXD,因此可以同時(shí)發(fā)送和接收數(shù)據(jù),實(shí)現(xiàn)全雙工傳送。編輯ppt5.4.1MCS-51單片機(jī)的串行口
波特率發(fā)生器主要由內(nèi)部定時(shí)器/計(jì)數(shù)器、系統(tǒng)時(shí)鐘信號及一些控制開關(guān)和分頻器組成。它提供串行口的發(fā)送時(shí)鐘TXC和接收時(shí)鐘RXC。但值得注意的是,波特率發(fā)生器產(chǎn)生的采樣脈沖須經(jīng)16倍頻,才是串行口的發(fā)送和接收移位時(shí)鐘。串行口的接收過程基于采樣脈沖(接收時(shí)鐘的16倍)對RXD線的監(jiān)視。當(dāng)“1到0跳變檢測器”連續(xù)8次采樣到RXD線上為低電平時(shí),則可確認(rèn)RXD線上出現(xiàn)了接收數(shù)據(jù)的起始位。隨后,接收控制器就從下一個(gè)數(shù)據(jù)位開始對第7、8、9三個(gè)脈沖即信號中央采樣RXD線(圖5.15),并遵守三中去二的原則來決定數(shù)據(jù)值。
編輯ppt5.4.1MCS-51單片機(jī)的串行口2.串行口通信控制寄存器 在MCS-51系列單片機(jī)的特殊功能寄存器中,有4個(gè)與串行通信有關(guān),分別為SCON,PCON,IE和IP,它們對應(yīng)的地址分別是98H,87H,A8H和B8H,其中SCON和PCON直接控制串行口的工作方式。串行控制寄存器SCON串行口控制寄存器SCON的格式如下:
D7D6D5D4D3D2D1D0
SM0SM1SM2RENTB8RB8T1RI SM0、SM1:用于選擇串行口4種工作方式,可由軟件置位或清零。其狀態(tài)組合與對應(yīng)的工作方式見表5.2。編輯ppt5.4.1MCS-51單片機(jī)的串行口SM0SM1工作方式功能波特率00方式0移位寄存器方式,用于并行I/O擴(kuò)展fosc/1201方式110位通用異步接收器/發(fā)送器定時(shí)器控制可變10方式211位通用異步接收器/發(fā)送器fosc/32或fosc/6411方式311位通用異步接收器/發(fā)送器定時(shí)器控制可變表5.2SM0、SM1編輯ppt5.4.1MCS-51單片機(jī)的串行口
SM2:多機(jī)通信控制位。在方式2和方式3中,如置SM2=1,則接收到的第9位數(shù)據(jù)即RB8=0時(shí),不啟動接收中斷標(biāo)志RI(即RI=0),并且將接收到的前8位數(shù)據(jù)丟棄;RB8=1時(shí),才將接收到的前8位數(shù)據(jù)送入SBUF,并置位RI,產(chǎn)生中斷請求。當(dāng)置SM2=0時(shí),則不論第9位數(shù)據(jù)為0或1,都將前8位數(shù)據(jù)裝入SBUF中,并產(chǎn)生中斷請求。因多機(jī)通信只能選擇工作于方式2和方式3,所以SM2主要用于這兩種工作方式。在方式0時(shí)該位不用,必須設(shè)置為0。 REN:允許串行接收控制位。若REN=0,則禁止接收;REN=1,則允許接收,該位由軟件置位或復(fù)位。 TB8:發(fā)送數(shù)據(jù)D8位。在方式2和方式3時(shí),TB8為所要發(fā)送的第9位數(shù)據(jù)(格式信息)。在多機(jī)通信中,以TB8位的狀態(tài)表示主機(jī)發(fā)送的是地址還是數(shù)據(jù):TB8=0為數(shù)據(jù),TB8=1為地址;也可用作數(shù)據(jù)的奇偶校驗(yàn)位。該位由軟件置位或復(fù)位。編輯ppt5.4.1MCS-51單片機(jī)的串行口
RB8:接收數(shù)據(jù)D8位。在方式2和方式3時(shí),接收到的第9位數(shù)據(jù)(格式信息),可作為奇偶校驗(yàn)位或地址幀或數(shù)據(jù)幀的標(biāo)志。方式1時(shí),若SM2=0,則RB8是接收到的停止位。在方式0時(shí),不使用RB8位。
TI:發(fā)送中斷標(biāo)志位。在方式0時(shí),當(dāng)發(fā)送數(shù)據(jù)第8位結(jié)束后,或在其他方式發(fā)送停止位后,由內(nèi)部硬件使TI置位,向CPU請求中斷。CPU在響應(yīng)中斷后,必須用軟件清零。此外,TI也可供查詢使用。
RI:接收中斷標(biāo)志位。在方式0時(shí),當(dāng)接收數(shù)據(jù)的第8位結(jié)束后,或在其他方式接收到停止位的中間由內(nèi)部硬件使RI置位,向CPU請求中斷。同樣,在CPU響應(yīng)中斷后,也必須用軟件清零。RI也可供查詢使用。編輯ppt5.4.1MCS-51單片機(jī)的串行口(2)電源控制寄存器PCONPCON的格式如下:D7D6D5D4D3D2D1D0SMOD---------CF1CF0PDIDL
PCON的最高位SMOD是串行口波特率系數(shù)控制位。 SMOD=1時(shí),波特率增大一倍。 當(dāng)系統(tǒng)復(fù)位時(shí),SMOD=0。 控制字中其余各位與串行口無關(guān)。編輯ppt5.4.1MCS-51單片機(jī)的串行口(3)中斷允許控制寄存器IE
IE曾在定時(shí)器/計(jì)數(shù)器一節(jié)有所提及,其中的ES位與串行通信有關(guān),現(xiàn)說明如下:ES=0,禁止串行中斷;ES=1,允許串行中斷。(4)中斷優(yōu)先級控制寄存器IPIE也在定時(shí)器/計(jì)數(shù)器一節(jié)有所提及,其中的PS位與串行通信有關(guān),現(xiàn)說明如下:PS=0,串行口中斷為低優(yōu)先級;PS=1,串行口中斷為高優(yōu)先級。編輯ppt5.4.2串行口的工作方式二、串行口的工作方式1.方式0
在工作方式0下,SBUF用作同步移位寄存器,其波特率是固定的,為fosc(振蕩頻率)的1/12。數(shù)據(jù)由芯片的RXD/P3.0引腳進(jìn)行發(fā)送和接收,移位同步脈沖由TXD/P3.1引腳輸出。發(fā)送/接收的是8位數(shù)據(jù)。低位在先,順序發(fā)送。幀格式如下:D0D1D2D3D4D5D6D7
在方式0中,由于SCON的SM2,RB8和TB8不用,均置成0。串行口方式0的結(jié)構(gòu)如圖5.16所示。編輯ppt圖5.16串行口方式0結(jié)構(gòu)示意圖5.4.2串行口的工作方式編輯ppt發(fā)送過程:當(dāng)CPU執(zhí)行一條寫SBUF的指令,如MOVSBUF,A,就啟動了發(fā)送過程。TXD引腳輸出同步移位脈沖,發(fā)送數(shù)據(jù)緩沖器中的數(shù)據(jù)逐位串行輸出,每一個(gè)機(jī)器周期從RXD上發(fā)送一位數(shù)據(jù),故波特率為fosc/12。8位數(shù)據(jù)(一幀)發(fā)送完畢后,發(fā)送控制器SEND恢復(fù)低電平狀態(tài),停止發(fā)送數(shù)據(jù),且發(fā)送控制器硬件置發(fā)送中斷標(biāo)志TI=1,向CPU申請中斷。CPU響應(yīng)中斷后,先用軟件將TI清零,并再次執(zhí)行寫SBUF指令。發(fā)送時(shí),SBUF(發(fā))相當(dāng)于一個(gè)并入串出的移位寄存器。
5.4.2串行口的工作方式編輯ppt接收過程:在RI=0,REN(SCON.4)置1的條件下啟動。此時(shí)RXD為串行數(shù)據(jù)接收端,TXD依然輸出同步移位脈沖。在串行口方式0工作時(shí),并非是一個(gè)同步通信方式。它主要用途是和外部同步移位寄存器(如CD4094或CD4014等)外接,達(dá)到擴(kuò)展一個(gè)并行口的目的。例如將串行口作為并行輸出口使用時(shí),可采用如下圖所示的方法。5.4.2串行口的工作方式編輯ppt2.方式1
在方式1時(shí),串行口被設(shè)置為波特率可變的8位異步通信接口。其波特率取決于定時(shí)器T1的溢出率和特殊功能寄存器PCON中SMOD的值,即方式1的波特率=(2SMOD/32)×定時(shí)器T1的溢出率。引腳TXD/P3.1發(fā)送數(shù)據(jù)、RXD/P3.0接收數(shù)據(jù),為全雙工接收/發(fā)送方式。其結(jié)構(gòu)如圖5.17。在方式1時(shí),發(fā)送/接收一幀信息共10位:1位起始位(0)、8位數(shù)據(jù)位(D0~D8)和一位停止位(1)。幀格式如下:停止起啟D0D1D2D3D4D5D6D75.4.2串行口的工作方式編輯ppt圖5.17串行口方式1、2、3結(jié)構(gòu)示意圖5.4.2串行口的工作方式編輯ppt當(dāng)CPU執(zhí)行一條寫SBUF指令便啟動了串行口發(fā)送,在指令執(zhí)行期間,CPU發(fā)出的“寫SBUF”信號將并行數(shù)據(jù)送入SBUF,同時(shí)通知發(fā)送控制器啟動發(fā)送。發(fā)送控制器在發(fā)送時(shí)鐘的作用下自動在發(fā)送字符前添加起始位,發(fā)送控制端的SEND、DATA相繼有效,通過輸出控制門從TXD上逐位輸出數(shù)據(jù)。“寫SBUF”信號同時(shí)將1裝入發(fā)送移位寄存器的第9位(D觸發(fā)器),即停止位1的自動插入,一幀信息發(fā)送完畢后,SEND、DATA失效,發(fā)送控制器硬件置發(fā)送中斷標(biāo)志TI=1,向CPU申請中斷。5.4.2串行口的工作方式編輯ppt
允許接收控制位REN=1和RI=0,就啟動了接收過程,跳變檢測器以所選波特率的16倍速率采樣RXD引腳上的電平。當(dāng)采樣到從1到0的負(fù)跳變時(shí),啟動接收控制器接收數(shù)據(jù)。由于發(fā)送、接受雙方各自使用自己的時(shí)鐘,兩者的頻率總有少許差異。為了避免這種情況所帶來的影響,控制器將1位的傳送時(shí)間分成16等份,位檢測器在7、8、9三個(gè)狀態(tài),也就是在信號中央采樣RXD三次。而且,三次采樣中至少兩次相同的值被確認(rèn)為數(shù)據(jù),這是為了減少干擾的影響。如果接收到的起始位的值不是0,則起始位無效,復(fù)位接收電路。如果起始位為0,則開始接收本幀其他各位數(shù)據(jù)。5.4.2串行口的工作方式編輯ppt
控制器發(fā)出內(nèi)部移位脈沖將RXD上的數(shù)據(jù)逐位移入移位寄存器,當(dāng)8位數(shù)據(jù)及停止位全部移入后,根據(jù)以下狀態(tài),進(jìn)行相應(yīng)操作。①如果RI=0、SM2=0,接收控制器發(fā)出“裝載SBUF”信號,將8位數(shù)據(jù)裝入接收數(shù)據(jù)緩沖器SBUF,停止位裝入RB8,并置RI=1,向CPU申請中斷。②如果RI=0、SM2=1,那么只有停止位為1才發(fā)生上述操作。③RI=0、SM2=1且停止位為0,所接收的數(shù)據(jù)不裝入SBUF,數(shù)據(jù)將會丟失。④如果RI=1,則所接收的數(shù)據(jù)在任何情況下都不裝入SBUF,即數(shù)據(jù)丟失。無論出現(xiàn)哪一種情況,跳變檢測器將繼續(xù)采樣RXD引腳的負(fù)跳變,以便接收下一幀信息。5.4.2串行口的工作方式編輯ppt3.方式2串行口工作于方式2時(shí),被定義為9位異步通信接口。發(fā)送數(shù)據(jù)由TXD(P3.1)引腳輸出,接收數(shù)據(jù)由RXD(P3.0)引腳引入,其結(jié)構(gòu)如圖5.17。其發(fā)送/接收一幀信息為11位,其中1位起始位(0)、8位數(shù)據(jù)位(先低位后高位)、1位可控位為1或0的第9位數(shù)據(jù)、1位停止位。幀格式如下:停止起啟D0D1D2D3D4D5D6D7D85.4.2串行口的工作方式編輯ppt
方式2的波特率=(2SMOD/64)×fosc,附加的第9位數(shù)據(jù)值取決于SCON中的TB8,它可由軟件置位或清0,在實(shí)際應(yīng)用中該位作為多機(jī)通信中地址/數(shù)據(jù)信息的標(biāo)志位,也可作為數(shù)據(jù)通信的奇偶校驗(yàn)位。下面是一個(gè)實(shí)際的以TB8作為奇偶校驗(yàn)位的發(fā)送中斷服務(wù)程序,R0中存放著發(fā)送數(shù)據(jù)區(qū)起始地址。
PIPL: PUSHPSW ;保護(hù)現(xiàn)場 PUSHA CLRTI ;清發(fā)送中斷標(biāo)志 MOVA,@R0;取數(shù)據(jù) MOVC,P;奇偶位送C MOVTB8,C;奇偶位送TB8 MOVSBUF,A;數(shù)據(jù)寫入發(fā)送緩沖器,啟動發(fā)送 INCR0;數(shù)據(jù)指針加1 POPA;恢復(fù)現(xiàn)場 POPPSW RETI;中斷返回5.4.2串行口的工作方式編輯ppt4.方式3
方式3為波特率可變的9位異步通信方式,除了波特率有所區(qū)別之外,其余方式都與方式2相同。方式3的波特率=(2SMOD/32)×(定時(shí)器T1的溢出率)。方式2與方式3都是9位異步通信接口,發(fā)送或接收一幀11位的信息。方式2與方式3的不同之處僅在于波特率,方式2的波特率與振蕩器頻率有關(guān)為fosc/32(SMOD=1時(shí))或fosc/64(SMOD=0時(shí)),而方式3的波特率由定時(shí)器/計(jì)數(shù)器T1及SMOD決定。在方式2、方式3時(shí),發(fā)送、接收數(shù)據(jù)的過程與方式1基本相同,所不同的僅在于對第9位數(shù)據(jù)的處理上。發(fā)送時(shí),第9位數(shù)據(jù)由SCON中的TB8位提供。接收數(shù)據(jù)時(shí),當(dāng)?shù)?位數(shù)據(jù)移入移位寄存器后,將8位數(shù)據(jù)裝入SBUF,第9位數(shù)據(jù)裝入SCON中的RB8。串行口工作方式的比較如表5.3所示。5.4.2串行口的工作方式編輯ppt5.4.3波特率設(shè)置三、波特率設(shè)置串行通信的4種工作方式對應(yīng)著3種波特率。(1)對于方式0,波特率是固定的,為單片機(jī)時(shí)鐘的十二分之一,即fosc/12。(2)對于方式2,波特率有兩種可供選擇,即fosc/32和fosc/64。對應(yīng)于以下公式:波特率=fosc×2SMOD/64用戶對PCON中的SMOD位的設(shè)置來選擇確定波特率值。(3)對于方式1和方式3,波特率都由定時(shí)器T1的溢出率來決定,對應(yīng)于以下公式:波特率=(2SMOD/32)×(定時(shí)器T1的溢出率)而定時(shí)器T1的溢出率則和所采用的定時(shí)器工作方式有關(guān),并可用以下公式表示:定時(shí)器T1的溢出率=fosc/12×(2n-X)其中X為定時(shí)器T1的計(jì)數(shù)初值,n為定時(shí)器T1的位數(shù),對于定時(shí)器方式0,取n=13;對于定時(shí)器方式1,取n=16;對于定時(shí)器方式2、3,取n=8。編輯ppt5.
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年系列自動遙測氣象站合作協(xié)議書
- 輸液安全及靜脈護(hù)理
- 幼兒園孝心教育課件
- 單位2025年終總結(jié)
- 二手房購房合同參考
- 船舶航行中的安全風(fēng)險(xiǎn)評估
- 自強(qiáng)不息思政教育
- 硫代硫酸鹽相關(guān)行業(yè)投資方案范本
- 冷光源:EL冷光片相關(guān)項(xiàng)目投資計(jì)劃書范本
- 空氣清新器相關(guān)行業(yè)投資規(guī)劃報(bào)告
- 2025年食品供應(yīng)商合同范本
- 《網(wǎng)絡(luò)信息安全教學(xué)》課件
- 公路養(yǎng)護(hù)服務(wù)方案(技術(shù)方案)
- 徐州2025年江蘇徐州市口腔醫(yī)院招聘非在編醫(yī)務(wù)人員53人筆試歷年參考題庫附帶答案詳解-1
- 2025年01月2025中國作家協(xié)會所屬單位公開招聘11人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 用色彩情感引發(fā)共鳴社交媒體運(yùn)營秘訣
- (高清版)JTGT 3650-01-2022 公路橋梁施工監(jiān)控技術(shù)規(guī)程
- DZ∕T 0213-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 石灰?guī)r、水泥配料類(正式版)
- MOOC 跨文化交際通識通論-揚(yáng)州大學(xué) 中國大學(xué)慕課答案
- GB/T 28799.2-2020冷熱水用耐熱聚乙烯(PE-RT)管道系統(tǒng)第2部分:管材
- 2023-瑞幸咖啡vi手冊
評論
0/150
提交評論