版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章
中斷控制、定時(shí)/計(jì)數(shù)器與串行口
4.1CPU與外設(shè)通信方式概述4.2增強(qiáng)型MCS-51中斷控制系統(tǒng)4.3增強(qiáng)型MCS-51定時(shí)/計(jì)數(shù)器4.4串行通信系統(tǒng)4.5增強(qiáng)型MCS-51芯片識(shí)別與仿真2/4/2023單片機(jī)原理與應(yīng)用4.1CPU與外設(shè)通信方式概述 外圍設(shè)備與CPU之間常用的通信方式有:
查詢方式 中斷傳輸方式 直接存儲(chǔ)器存?。ê?jiǎn)稱DMA)由于在單片機(jī)控制系統(tǒng)中,外設(shè)與CPU之間需要傳送的數(shù)據(jù)量較少,對(duì)傳輸率要求不高,一般不用DMA方式,這里也就不介紹。2/4/2023單片機(jī)原理與應(yīng)用4.1.1查詢方式
查詢方式包括查詢輸出方式和查詢輸入方式。所謂查詢輸入方式,是指CPU讀外設(shè)數(shù)據(jù)前,先查詢外設(shè)是否處于準(zhǔn)備就緒狀態(tài)(即外設(shè)是否已將數(shù)據(jù)輸出到CPU的數(shù)據(jù)總線上);查詢輸出方式是指CPU向外設(shè)輸出數(shù)據(jù)前,先查詢外設(shè)是否處于空閑狀態(tài)(即外設(shè)是否可以接收CPU輸出的數(shù)據(jù))。下面以CPU向外設(shè)輸出數(shù)據(jù)為例,簡(jiǎn)要介紹查詢傳輸方式的工作過程:當(dāng)CPU需要向外設(shè)輸出數(shù)據(jù)時(shí),先將控制命令(如外設(shè)的啟動(dòng)命令)寫入外設(shè)的控制端口,然后不斷讀外設(shè)的狀態(tài)口,當(dāng)發(fā)現(xiàn)外設(shè)處于空閑狀態(tài)后,就將數(shù)據(jù)寫入外設(shè)的數(shù)據(jù)口,完成數(shù)據(jù)的輸出過程。2/4/2023單片機(jī)原理與應(yīng)用下面以CPU向外設(shè)輸出數(shù)據(jù)為例,簡(jiǎn)要介紹查詢傳輸方式的工作過程:當(dāng)CPU需要向外設(shè)輸出數(shù)據(jù)時(shí),先將控制命令(如外設(shè)的啟動(dòng)命令)寫入外設(shè)的控制端口,然后不斷讀外設(shè)的狀態(tài)口,當(dāng)發(fā)現(xiàn)外設(shè)處于空閑狀態(tài)后,就將數(shù)據(jù)寫入外設(shè)的數(shù)據(jù)口,完成數(shù)據(jù)的輸出過程。查詢方式優(yōu)缺點(diǎn):硬件開銷少、傳輸程序簡(jiǎn)單,但缺點(diǎn)是CPU占用率高,因?yàn)樵谕庠O(shè)未準(zhǔn)備就緒或處于非空閑狀態(tài)前,CPU一直處于查詢狀態(tài),不能執(zhí)行其他操作,任何時(shí)候也只能與一個(gè)外設(shè)進(jìn)行數(shù)據(jù)交換。2/4/2023單片機(jī)原理與應(yīng)用4.1.2中斷通信方式
采用中斷傳輸方式就可以克服查詢傳輸方式存在的缺陷:當(dāng)CPU需要向外設(shè)輸出數(shù)據(jù)時(shí),將啟動(dòng)命令寫入外設(shè)控制口后,就繼續(xù)執(zhí)行隨后的指令序列,而不是被動(dòng)等待;當(dāng)外設(shè)處于空閑狀態(tài),可以接收數(shù)據(jù)時(shí),由外設(shè)向CPU發(fā)出允許數(shù)據(jù)傳送的請(qǐng)求信號(hào)——即中斷請(qǐng)求信號(hào),如果滿足中斷響應(yīng)條件,CPU將暫停執(zhí)行隨后的指令序列,轉(zhuǎn)去執(zhí)行預(yù)先安排好的數(shù)據(jù)傳送程序——稱為中斷服務(wù)程序,CPU響應(yīng)外設(shè)中斷請(qǐng)求的過程簡(jiǎn)稱為中斷響應(yīng);待完成了數(shù)據(jù)傳送后,再返回?cái)帱c(diǎn)處繼續(xù)執(zhí)行被中斷了的程序——這一過程稱為中斷返回??梢?,在這種方式中,CPU發(fā)出控制命令后,將繼續(xù)執(zhí)行控制命令后的指令序列,而不是通過檢測(cè)外設(shè)的狀態(tài)來確定外設(shè)是否處于空閑狀態(tài),這不僅提高了CPU的利用率,而且能同時(shí)與多個(gè)外設(shè)進(jìn)行數(shù)據(jù)交換——只要合理安排相應(yīng)中斷的優(yōu)先級(jí)以及同優(yōu)先級(jí)中斷的查詢順序即可。因此,中斷傳輸方式是CPU與外設(shè)之間最常見的一種數(shù)據(jù)傳輸方式。2/4/2023單片機(jī)原理與應(yīng)用1.中斷源
在計(jì)算機(jī)控制系統(tǒng)中,把引起中斷的事件稱為中斷源。在單片機(jī)控制系統(tǒng)中,常見的中斷源有:l外部中斷,如CPU某些特定引腳電平變化引起的中斷。l各類定時(shí)/計(jì)數(shù)器溢出中斷(即定時(shí)時(shí)間到或計(jì)數(shù)器滿中斷)。l
串行發(fā)送結(jié)束中斷。l
串行接收有效中斷。l電源掉電中斷。
2/4/2023單片機(jī)原理與應(yīng)用2.中斷優(yōu)先級(jí)
當(dāng)多個(gè)外設(shè)以中斷方式與CPU進(jìn)行數(shù)據(jù)交換時(shí),可能遇到兩個(gè)或兩個(gè)以上外設(shè)中斷請(qǐng)求同時(shí)有效的情形。在這種情況下,CPU先響應(yīng)哪一外設(shè)的中斷請(qǐng)求?這就涉及到中斷優(yōu)先級(jí)問題。一般說來,為了能夠處理多個(gè)中斷請(qǐng)求,中斷控制系統(tǒng)均提供中斷優(yōu)先級(jí)控制。有了中斷優(yōu)先級(jí)控制后,就可以解決多個(gè)中斷請(qǐng)求同時(shí)有效時(shí),先響應(yīng)哪一請(qǐng)求中斷問題,以及高優(yōu)先級(jí)中斷請(qǐng)求可中斷低優(yōu)先級(jí)中斷處理進(jìn)程,實(shí)現(xiàn)中斷嵌套。2/4/2023單片機(jī)原理與應(yīng)用3.中斷開關(guān)有時(shí)為避免某一處理過程被中斷,中斷控制器給每一個(gè)中斷源都設(shè)置了一個(gè)中斷請(qǐng)求屏蔽位,用于屏蔽(即禁止)相應(yīng)中斷源的中斷請(qǐng)求,當(dāng)某一中斷源的中斷請(qǐng)求處于禁止?fàn)顟B(tài)時(shí),即使該中斷請(qǐng)求有效,CPU也不響應(yīng),相當(dāng)于中斷源的中斷開關(guān)。此外,還設(shè)一個(gè)總的中斷請(qǐng)求屏蔽位,當(dāng)該位處于禁止?fàn)顟B(tài)時(shí),CPU忽略所有中斷源的中斷請(qǐng)求,相當(dāng)于中斷源總開關(guān)。2/4/2023單片機(jī)原理與應(yīng)用4.中斷處理過程
中斷處理過程涉及中斷查詢和響應(yīng)兩個(gè)方面,即當(dāng)某一事件發(fā)生時(shí),對(duì)應(yīng)的中斷標(biāo)志,即中斷請(qǐng)求何時(shí)有效?CPU什么時(shí)候查詢中斷標(biāo)志?什么時(shí)候?在什么情況下會(huì)響應(yīng)中斷請(qǐng)求?下面結(jié)合增強(qiáng)型MCS-51中斷控制系統(tǒng)逐一介紹。2/4/2023單片機(jī)原理與應(yīng)用4.2增強(qiáng)型MCS-51中斷控制系統(tǒng)
增強(qiáng)型MCS-51系列內(nèi)嵌的中斷控制器可以管理具有4個(gè)中斷優(yōu)先級(jí)的6個(gè)中斷源(增強(qiáng)型MCS-51CPU中斷源的個(gè)數(shù)與標(biāo)準(zhǔn)MCS-52子系列相同),其結(jié)構(gòu)如圖4-1所示。在增強(qiáng)型MCS-51系列中,6個(gè)中斷源對(duì)應(yīng)8個(gè)中斷請(qǐng)求標(biāo)志(串行發(fā)送結(jié)束中斷標(biāo)志TI和串行接收有效中斷標(biāo)志RI相“或”后作為一個(gè)中斷源——串行口中斷,共用一個(gè)中斷開關(guān);定時(shí)器T2溢出中斷TF2和外部觸發(fā)中斷EXF2相“或”后作為一個(gè)中斷源——定時(shí)器T2中斷,也共用一個(gè)中斷開關(guān))。2/4/2023單片機(jī)原理與應(yīng)用圖4-1增強(qiáng)型MCS-51中斷系統(tǒng)結(jié)構(gòu)
2/4/2023單片機(jī)原理與應(yīng)用4.2.1中斷源及標(biāo)志增強(qiáng)型MCS-51CPU在每個(gè)機(jī)器周期的S5P2時(shí)刻順序采樣各中斷源,當(dāng)發(fā)現(xiàn)某一中斷有效(出現(xiàn))時(shí),對(duì)應(yīng)中斷標(biāo)志置1,表明相應(yīng)事件發(fā)生了。圖4-2與中斷功能有關(guān)的TCON寄存器位2/4/2023單片機(jī)原理與應(yīng)用4.2.2中斷控制1.中斷允許控制寄存器IE
當(dāng)某一中斷(事件)出現(xiàn)時(shí),相應(yīng)的中斷請(qǐng)求標(biāo)志位置1(即中斷有效),但該中斷請(qǐng)求能否被CPU查詢,由中斷控制寄存器IE相應(yīng)位決定(MCS-51CPU在每個(gè)機(jī)器周期的S6狀態(tài)查詢處于允許狀態(tài)的中斷請(qǐng)求標(biāo)志),中斷控制寄存器IE各位含義如圖4-3所示。2/4/2023單片機(jī)原理與應(yīng)用圖4-3中斷控制寄存器IE各位含義2/4/2023單片機(jī)原理與應(yīng)用2.中斷優(yōu)先級(jí)控制寄存器IP
標(biāo)準(zhǔn)MCS-51內(nèi)核只有兩個(gè)中斷優(yōu)先級(jí),各中斷源優(yōu)先級(jí)由IP寄存器控制(0為低優(yōu)先級(jí);1為高優(yōu)先級(jí)),中斷優(yōu)先級(jí)控制寄存器IP各位含義如圖4-4(a)所示。增強(qiáng)型MCS-51內(nèi)核具有四個(gè)中斷優(yōu)先級(jí),除了標(biāo)準(zhǔn)MCS-51CPU的中斷優(yōu)先級(jí)控制寄存器IP外,還增加了一個(gè)中斷優(yōu)先級(jí)控制寄存器IPH(字節(jié)地址為0B7H,但I(xiàn)PH沒有按位尋址功能),IPH寄存器各位含義如圖4-4(b)所示,即中斷源的優(yōu)先級(jí)由IPH、IP對(duì)應(yīng)位編碼決定,具體情況如下:
IPH.X位 IP.X位 優(yōu)先級(jí) 0 0 0級(jí)(優(yōu)先級(jí)最低) 0 1 1級(jí) 1 0 2級(jí) 1 1 3級(jí)(優(yōu)先級(jí)最高)2/4/2023單片機(jī)原理與應(yīng)用中斷優(yōu)先級(jí)控制寄存器IP各位含義斷優(yōu)先級(jí)控制寄存器高位IPH各位含義圖4-4中斷優(yōu)先級(jí)控制寄存器
2/4/2023單片機(jī)原理與應(yīng)用4.2.3中斷響應(yīng)過程及中斷服務(wù)程序入口地址
對(duì)于外中斷來說,MCS-51CPU在每個(gè)機(jī)器周期的S5P2相鎖存引腳的電平狀態(tài),設(shè)置中斷請(qǐng)求標(biāo)志(若中斷有效,相應(yīng)中斷標(biāo)志位置1;中斷無效,標(biāo)志位為0),如圖4-5中的M1周期,并在下一機(jī)器周期(如圖4-5中的M2周期)的S6狀態(tài)按優(yōu)先級(jí)順序查詢所有沒有被禁止的中斷請(qǐng)求標(biāo)志,如果滿足下列中斷響應(yīng)條件,則在下一機(jī)器周期(如圖4-5中的M3周期)的S1狀態(tài),響應(yīng)優(yōu)先級(jí)最高的中斷請(qǐng)求,執(zhí)行相應(yīng)的中斷服務(wù)程序,否則繼續(xù)執(zhí)行當(dāng)前程序。圖4-5中斷響應(yīng)時(shí)序2/4/2023單片機(jī)原理與應(yīng)用MCS-51中斷響應(yīng)條件為:(1)
當(dāng)前不處于同級(jí)或更高級(jí)中斷響應(yīng)中。這是為了防止同級(jí)或低級(jí)中斷請(qǐng)求中斷同級(jí)或更高級(jí)中斷。(2)
當(dāng)前機(jī)器周期必須是當(dāng)前指令的最后一個(gè)機(jī)器周期,否則等待。執(zhí)行某些指令需要兩個(gè)或兩個(gè)以上機(jī)器周期,如果當(dāng)前機(jī)器周期不是指令的最后一個(gè)機(jī)器周期,則不響應(yīng)中斷請(qǐng)求,即不允許中斷一條指令的執(zhí)行過程,這是為了保證指令執(zhí)行過程的完整性。(3)如果當(dāng)前指令是中斷返回指令RETI,或讀寫中斷控制寄存器IE、優(yōu)先級(jí)寄存器IP或IPH,則必須再執(zhí)行一條指令后才能響應(yīng)中斷請(qǐng)求,即中斷控制器各狀態(tài)位尚未穩(wěn)定前,不響應(yīng)中斷,以免出現(xiàn)不確定后果。1.中斷響應(yīng)條件2/4/2023單片機(jī)原理與應(yīng)用如果滿足中斷響應(yīng)條件,將進(jìn)入中斷響應(yīng)過程:(1)
CPU先將對(duì)應(yīng)中斷的優(yōu)先級(jí)觸發(fā)器置1(每一中斷源對(duì)應(yīng)一個(gè)中斷優(yōu)先級(jí)觸發(fā)器,不過圖4-1中沒畫出該觸發(fā)器),阻止CPU再響應(yīng)同級(jí)或更低級(jí)中斷請(qǐng)求。(2)
將程序計(jì)數(shù)器PC當(dāng)前值壓入堆棧,以保證執(zhí)行完中斷服務(wù)程序后正確返回;將中斷源入口地址裝入PC,以便執(zhí)行相應(yīng)的中斷服務(wù)程序。這一過程由硬件完成,相當(dāng)于執(zhí)行了一條長(zhǎng)調(diào)用指令“LCALLXXXX”,中斷服務(wù)程序入口地址如下:中斷源 入口地址(即LCALL指令的XXXX地址)外中斷 0003H定時(shí)/計(jì)數(shù)器T0溢出中斷 000BH外中斷 0013H定時(shí)/計(jì)數(shù)器T1溢出中斷 001BH串行口中斷 0023H定時(shí)/計(jì)數(shù)器T2溢出中斷 002BH
2.
中斷響應(yīng)過程及中斷服務(wù)程序入口地址2/4/2023單片機(jī)原理與應(yīng)用由于各中斷服務(wù)程序入口地址僅相隔8個(gè)字節(jié),難以容納中斷服務(wù)程序,為此可在中斷程序入口處放置一條長(zhǎng)跳轉(zhuǎn)指令,這樣實(shí)際的中斷服務(wù)程序就可以放在存儲(chǔ)器區(qū)內(nèi)的任意位置(一般放在主程序后),如下所示:ORG0003H LJMPINT0 ;在外中斷入口處放一條長(zhǎng)跳轉(zhuǎn)指令
ORG0100HMAIN: ;主程序……INT0: ;外中斷的中斷服務(wù)程序。
2/4/2023單片機(jī)原理與應(yīng)用(3)清除中斷請(qǐng)求標(biāo)志(4)返回。中斷服務(wù)程序最后一條指令是中斷返回指令“RETI”,執(zhí)行了中斷返回指令RETI后,先將對(duì)應(yīng)中斷的優(yōu)先級(jí)觸發(fā)器清0(以便返回后CPU能夠響應(yīng)同級(jí)或更低級(jí)的中斷請(qǐng)求),并將堆棧內(nèi)的兩個(gè)字節(jié)彈到程序計(jì)數(shù)器PC,以便從斷點(diǎn)處繼續(xù)執(zhí)行被中斷程序的后續(xù)指令。2/4/2023單片機(jī)原理與應(yīng)用4.2.4中斷初始化及中斷服務(wù)程序結(jié)構(gòu)中斷初始化是指通過設(shè)置TCON、IE及IP、IPH寄存器內(nèi)容,確定外中斷觸發(fā)方式(低電平觸發(fā)還是下降沿觸發(fā))、開中斷、設(shè)置中斷優(yōu)先級(jí)等,例如可通過如下指令將定義為下降沿觸發(fā),優(yōu)先級(jí)為3(最高),并允許中斷:
SETBIT0 ;外中斷采用下降沿觸發(fā)。 ORLIPH,#01H ;由于IPH寄存器沒有位尋址功能,只能通過或指令,將IPH的PX0H位置1。 SETBPX0 ;IP寄存器具有位尋址功能,可通過SETB指令將指定位置1。 SETBEX0 ;允許中斷。 SETBEA ;開中斷。2/4/2023單片機(jī)原理與應(yīng)用中斷服務(wù)程序結(jié)構(gòu)與子程序類似,大致包含以下幾部分:;必要時(shí)保護(hù)現(xiàn)場(chǎng)PUSHPSWPUSHAcc…SETBRS0 ;切換工作寄存器區(qū),根據(jù)需要可使用0-3區(qū)中的任一區(qū)。CLRRS1 ;由于中斷出現(xiàn)的不確定性,因此只要中斷服務(wù)程序中使用
;了寄存器組R0~R7,就需要切換工作區(qū)。
…… ;中斷服務(wù)程序體(略)。
CLR中斷請(qǐng)求標(biāo)志 ;對(duì)于不能自動(dòng)清除中斷請(qǐng)求標(biāo)志的中斷響應(yīng)過程,需要通過;“CLR中斷請(qǐng)求標(biāo)志位”指令清除中斷請(qǐng)求標(biāo)志,防止同一請(qǐng);求被多次響應(yīng)。POPAccPOPPSW ;恢復(fù)現(xiàn)場(chǎng)。RETI ;中斷返回指令。
2/4/2023單片機(jī)原理與應(yīng)用
中斷源及中斷標(biāo)志。即什么事件發(fā)生時(shí),對(duì)應(yīng)中斷標(biāo)志置1。如何控制該中斷。即中斷允許由中斷控制寄存器IE哪一位控制;優(yōu)先級(jí)由IPH、IP寄存器哪一位控制,以及同優(yōu)先級(jí)硬件查詢順序。中斷入口地址。即中斷服務(wù)程序放在何處。CPU響應(yīng)該中斷請(qǐng)求后,能否自動(dòng)清除對(duì)應(yīng)的中斷標(biāo)志。在單片機(jī)中,還要了解該中斷源能否喚醒處于掉電狀態(tài)下的CPU??梢妼?duì)于一個(gè)中斷來說,我們需要了解下列問題:2/4/2023單片機(jī)原理與應(yīng)用4.3增強(qiáng)型MCS-51定時(shí)/計(jì)數(shù)器
在單片機(jī)控制系統(tǒng)中,常需要對(duì)外部脈沖進(jìn)行計(jì)數(shù)或每隔特定時(shí)間執(zhí)行某一操作,因此定時(shí)/計(jì)數(shù)器是單片機(jī)控制系統(tǒng)中重要的外設(shè)部件之一,幾乎所有單片機(jī)芯片均內(nèi)置一個(gè)到數(shù)個(gè)定時(shí)/計(jì)數(shù)器。增強(qiáng)型MCS-51系列單片機(jī)芯片內(nèi)置了三個(gè)16位的定時(shí)/計(jì)數(shù)器,分別稱為T0、T1和T2。2/4/2023單片機(jī)原理與應(yīng)用4.3.1定時(shí)/計(jì)數(shù)功能概述定時(shí)/計(jì)數(shù)器的核心部件是一個(gè)加法(或減法)計(jì)數(shù)器,可工作在定時(shí)方式或計(jì)數(shù)方式,因此稱為定時(shí)/計(jì)數(shù)器。不過這兩種工作方式并沒有本質(zhì)的區(qū)別,只是計(jì)數(shù)脈沖來源不同而已:如果計(jì)數(shù)脈沖是頻率相對(duì)穩(wěn)定的系統(tǒng)時(shí)鐘信號(hào)(一般是系統(tǒng)時(shí)鐘的分頻信號(hào))時(shí),則稱為定時(shí)方式;反之,當(dāng)計(jì)數(shù)脈沖取自CPUI/O引腳的外部信號(hào)時(shí),稱為計(jì)數(shù)方式。2/4/2023單片機(jī)原理與應(yīng)用
單片機(jī)內(nèi)定時(shí)/計(jì)數(shù)器屬于可編程部件,除了加法計(jì)數(shù)器(部分單片機(jī)芯片采用減法計(jì)數(shù)器)外,尚有工作方式控制寄存器,一般具有如下特點(diǎn):(1)
工作方式寄存器。定時(shí)/計(jì)數(shù)器有多種定時(shí)或計(jì)數(shù)方式,使用前必須初始化工作方式寄存器,設(shè)置定時(shí)/計(jì)數(shù)器的工作方式(定時(shí)還是計(jì)數(shù);硬件啟動(dòng)還是軟件啟動(dòng);計(jì)數(shù)長(zhǎng)度——即作16位計(jì)數(shù)器,還是8位計(jì)數(shù)器使用;溢出后重裝初值,還是從0開始計(jì)數(shù)等)。(2)
可以從0開始計(jì)數(shù),也可以從特定值開始計(jì)數(shù),因此定時(shí)/計(jì)數(shù)器是一個(gè)可讀寫的寄存器,使用前一般需要設(shè)置定時(shí)/計(jì)數(shù)器的初值。(3)
每來一個(gè)脈沖,計(jì)數(shù)器加1(或減1)。當(dāng)計(jì)數(shù)器溢出時(shí),定時(shí)/計(jì)數(shù)器中斷標(biāo)志有效(定時(shí)時(shí)間到),向CPU發(fā)出中斷請(qǐng)求,如果中斷處于開放狀態(tài),則CPU將響應(yīng)定時(shí)/計(jì)數(shù)器的中斷請(qǐng)求。2/4/2023單片機(jī)原理與應(yīng)用4.3.2定時(shí)/計(jì)數(shù)器T0、T1結(jié)構(gòu)及控制
增強(qiáng)型MCS-51芯片中的定時(shí)/計(jì)數(shù)器T0、T1的結(jié)構(gòu)及功能與標(biāo)準(zhǔn)MCS-51芯片16位定時(shí)/計(jì)數(shù)器T0(高8位是TH0,低8位是TL0)、T1(高8位是TH1,低8位是TL1)完全相同。T0、T1采用加法計(jì)數(shù)方式,即每輸入一個(gè)計(jì)數(shù)脈沖,計(jì)數(shù)器加1;在定時(shí)方式下,計(jì)數(shù)脈沖是系統(tǒng)時(shí)鐘信號(hào)的12分頻。由于MCS-51單片機(jī)一個(gè)機(jī)器周期包含12個(gè)時(shí)鐘周期,因此在定時(shí)方式下,定時(shí)/計(jì)數(shù)器實(shí)際上就是機(jī)器周期的計(jì)數(shù)器(對(duì)于“6時(shí)鐘/機(jī)器周期”芯片來說,在定時(shí)方式下,計(jì)數(shù)脈沖是系統(tǒng)時(shí)鐘信號(hào)的6分頻,還是機(jī)器周期計(jì)數(shù)器)。在計(jì)數(shù)方式下,定時(shí)/計(jì)數(shù)器T0的計(jì)數(shù)脈沖來自P3.4引腳,定時(shí)/計(jì)數(shù)器T1的計(jì)數(shù)脈沖來自P3.5引腳。MCS-51CPU在每個(gè)機(jī)器周期的S5P2相檢測(cè)P3.4、P3.5引腳的電平狀態(tài),如果前一個(gè)機(jī)器周期采樣值為高電平,而后一個(gè)機(jī)器周期采樣值為低電平,則計(jì)數(shù)器加1,在下一機(jī)器周期的S3P1相后,更新定時(shí)/計(jì)數(shù)器TH、TL的值。2/4/2023單片機(jī)原理與應(yīng)用在MCS-51中,與定時(shí)/計(jì)數(shù)器T0、T1工作方式有關(guān)的寄存器為TMOD和TCON。其中TMOD控制定時(shí)/計(jì)數(shù)器T0、T1的工作方式,而TCON控制定時(shí)/計(jì)數(shù)器的啟動(dòng)方式、禁止/允許定時(shí)中斷。(1)
(1)工作方式寄存器TMOD定時(shí)/計(jì)數(shù)器工作方式控制字寄存器TMOD各位含義如圖4-6所示。圖4-6TMOD寄存器各位含義
1.定時(shí)/計(jì)數(shù)器的控制2/4/2023單片機(jī)原理與應(yīng)用l
M1、M0用于選擇定時(shí)/計(jì)數(shù)器的工作方式,具體情況如表4-1所示。 表4-1定時(shí)/計(jì)數(shù)器工作方式M1M0工作方式說明00方式0(不推薦)13位定時(shí)/計(jì)數(shù)器,主要是為了與Intel公司早期的MCS-48系列兼容,由TL0的低5位和TH0(8位)構(gòu)成,由于裝入初值容易出錯(cuò),不推薦使用方式0。01方式1(常用)16位定時(shí)/計(jì)數(shù)器。10方式2(常用)自動(dòng)重裝初值的8位定時(shí)/計(jì)數(shù)器11方式3定時(shí)/計(jì)數(shù)器T0可以工作在這一方式,相當(dāng)于兩個(gè)獨(dú)立的8位定時(shí)/計(jì)數(shù)器。但T0工作于方式3時(shí),占用了定時(shí)/計(jì)數(shù)器T1的部分資源,限制了T1的使用范圍(在這種情況下,T1可作為串行口發(fā)送、接收波特率發(fā)生器)。2/4/2023單片機(jī)原理與應(yīng)用l
——定時(shí)/計(jì)數(shù)方式選擇。當(dāng)位為0時(shí),計(jì)數(shù)脈沖來自CPU內(nèi),計(jì)數(shù)脈沖頻率是系統(tǒng)時(shí)鐘信號(hào)的12分頻(對(duì)于“6時(shí)鐘/機(jī)器周期”芯片來說,計(jì)數(shù)脈沖是系統(tǒng)時(shí)鐘信號(hào)的6分頻),即處于定時(shí)方式;當(dāng)位為1時(shí),計(jì)數(shù)脈沖來自P3.4引腳,即處于計(jì)數(shù)方式。lGATE——定時(shí)/計(jì)數(shù)器啟動(dòng)方式控制位。2/4/2023單片機(jī)原理與應(yīng)用定時(shí)/計(jì)數(shù)器啟動(dòng)控制位,以及定時(shí)/計(jì)數(shù)器溢出中斷標(biāo)志存放在特殊功能寄存器TCON的高4位,各位含義如圖4-7所示。圖4-7TCON寄存器中與定時(shí)/計(jì)數(shù)器控制有關(guān)的位
(1)
(2)控制字寄存器TCON
2/4/2023單片機(jī)原理與應(yīng)用2.工作方式
定時(shí)/計(jì)數(shù)器T0有四種工作方式(即方式0、方式1、方式2和方式3),主要用于定時(shí)和計(jì)數(shù);定時(shí)/計(jì)數(shù)器T1有三種工作方式(即方式0、方式1和方式2),除了定時(shí)、計(jì)數(shù)外,T1還可作為串行異步通信口的波特率發(fā)生器。值得注意的是初始化時(shí)如果錯(cuò)將定時(shí)/計(jì)數(shù)器T1置為方式3,則T1將停止工作。2/4/2023單片機(jī)原理與應(yīng)用當(dāng)M1M0初始化為01時(shí),定時(shí)/計(jì)數(shù)器工作于方式1,即計(jì)數(shù)長(zhǎng)度為16位。定時(shí)/計(jì)數(shù)器T0方式1結(jié)構(gòu)如圖4-8所示,計(jì)數(shù)器長(zhǎng)度為16位,分別由TL0和TH0組成。圖4-8定時(shí)/計(jì)數(shù)器T0(T1)方式1結(jié)構(gòu)
(1)方式1(16位定時(shí)/計(jì)數(shù)器)2/4/2023單片機(jī)原理與應(yīng)用 (“12時(shí)鐘/機(jī)器周期”模式) (4-1)
(“6時(shí)鐘/機(jī)器周期”模式) (4-2)在定時(shí)時(shí)間T確定情況下,定時(shí)器初值M可表示為:M=(“12時(shí)鐘/機(jī)器周期”模式) (4-3)M=(“6時(shí)鐘/機(jī)器周期”模式) (4-4)在上式中,如果單位取MHz,則定時(shí)時(shí)間T單位是us。如果定時(shí)器初值為M,則方式1的定時(shí)時(shí)間t為:2/4/2023單片機(jī)原理與應(yīng)用當(dāng)M1M0初始化為10時(shí),定時(shí)/計(jì)數(shù)器工作于方式2,是一種自動(dòng)重裝初值的8位定時(shí)/計(jì)數(shù)器。定時(shí)/計(jì)數(shù)器T0方式2結(jié)構(gòu)如圖4-9所示,除了計(jì)數(shù)長(zhǎng)度(8位)、自動(dòng)重裝初值功能外,其他情況與方式1相同。圖4-9定時(shí)/計(jì)數(shù)器T0(T1)方式2結(jié)構(gòu)
((2)方式22/4/2023單片機(jī)原理與應(yīng)用由于方式2的計(jì)數(shù)長(zhǎng)度為8位,因此定時(shí)時(shí)間T與初值M之間關(guān)系為:M=(“12時(shí)鐘/機(jī)器周期”模式) (4-5)M=(“6時(shí)鐘/機(jī)器周期”模式) (4-6)2/4/2023單片機(jī)原理與應(yīng)用定時(shí)/計(jì)數(shù)器T0工作于方式3的結(jié)構(gòu)如圖4-10所示??梢?,方式3將定時(shí)/計(jì)數(shù)器T0分成兩個(gè)獨(dú)立的8位定時(shí)/計(jì)數(shù)器(但只有TL0具有定時(shí)和計(jì)數(shù)功能,而TH0計(jì)數(shù)脈沖來自CPU內(nèi)分頻器,不可選擇,只能作為8位定時(shí)器使用)。圖4-10定時(shí)/計(jì)數(shù)器T0方式3結(jié)構(gòu)
(3)方式32/4/2023單片機(jī)原理與應(yīng)用4.3.3定時(shí)/計(jì)數(shù)器T2結(jié)構(gòu)及控制
增強(qiáng)型MCS-51定時(shí)/計(jì)數(shù)器T2的功能比標(biāo)準(zhǔn)MCS-52系列CPU內(nèi)定時(shí)/計(jì)數(shù)器T2更強(qiáng),除了具有下降沿觸發(fā)自動(dòng)重裝、捕捉、串行口波特率發(fā)生器三種工作方式外,還增加了可編程時(shí)鐘輸出、外電平控制向上或向下計(jì)數(shù)自動(dòng)重裝兩種工作模式,即增強(qiáng)型MCS-51芯片內(nèi)的T2具有5種工作方式。2/4/2023單片機(jī)原理與應(yīng)用在增強(qiáng)型MCS-51中,與T2定時(shí)/計(jì)數(shù)器有關(guān)的寄存器有:T2CON(定時(shí)器T2控制寄存器)、T2MOD(增強(qiáng)型MCS-51新增的定時(shí)器T2工作模式寄存器)、TH2、TL2、RCAP2H、RCAP2L(各寄存器字節(jié)地址可參閱第2章“特殊功能寄存器列表”)。其中TH2、TL2分別是定時(shí)/計(jì)數(shù)器T2的高8位和低8位,TH2和TL2構(gòu)成了16位計(jì)數(shù)器;而RCAP2H和RCAP2L構(gòu)成了一個(gè)16位寄存器,在自動(dòng)重裝初值方式下,RCAP2H、RCAP2L分別存放TH2和TL2的重裝初值;在捕捉方式下,當(dāng)P1.1引腳出現(xiàn)負(fù)跳變()時(shí),T2計(jì)數(shù)器高8位TH2、低8位TL2分別被捕捉到CAP2H、RCAP2L寄存器中。2/4/2023單片機(jī)原理與應(yīng)用1.定時(shí)/計(jì)數(shù)器T2的控制
在標(biāo)準(zhǔn)MCS-52系列中,定時(shí)/計(jì)數(shù)器T2的工作方式、用途由T2CON寄存器內(nèi)容決定,各位含義如圖4-12所示:圖4-12T2CON寄存器各位含義
2/4/2023單片機(jī)原理與應(yīng)用在增強(qiáng)型MCS-51中,T2工作方式還與T2MOD寄存器有關(guān),T2MOD各位含義如圖4-13所示。
圖4-13T2MOD寄存器各位含義
2/4/2023單片機(jī)原理與應(yīng)用RCLK+TCLKTR2T2OEDCEN工作方式及狀態(tài)00100下降沿觸發(fā)重裝方式00101外部電平控制重裝方式0110X16位捕捉方式1X1XX串行口方式1、方式3發(fā)送或接收波特率發(fā)生器0X11X時(shí)鐘輸出方式XX0XX停止計(jì)數(shù)由T2CON、T2MOD寄存器定義的定時(shí)/計(jì)數(shù)器T2工作方式如表4-2所示。表4-2定時(shí)/計(jì)數(shù)器T2工作方式2/4/2023單片機(jī)原理與應(yīng)用2.T2的工作方式
(1)下降沿觸發(fā)自動(dòng)重裝初值16位定時(shí)或計(jì)數(shù)器
當(dāng)TCLK、RCLK、、T20E、DCEN均為0時(shí),定時(shí)/計(jì)數(shù)器T2是一個(gè)下降沿觸發(fā)自動(dòng)重裝初值的16位定時(shí)或計(jì)數(shù)器,內(nèi)部結(jié)構(gòu)如圖4-14所示。
2/4/2023單片機(jī)原理與應(yīng)用圖4-14下降沿觸發(fā)自動(dòng)重裝初值16位定時(shí)/計(jì)數(shù)器T2結(jié)構(gòu)2/4/2023單片機(jī)原理與應(yīng)用(2)外部電平控制重裝方式
當(dāng)TCLK、RCLK、、T20E、EXEN2為0,而DCEN為1時(shí),定時(shí)/計(jì)數(shù)器T2是一個(gè)外電平控制自動(dòng)重裝初值的16位定時(shí)或計(jì)數(shù)器,計(jì)數(shù)方向由T2EX(P1.1)引腳電平控制,當(dāng)T2EX(P1.1)引腳為高電平時(shí),T2向上計(jì)數(shù)(即加1計(jì)數(shù)),溢出時(shí)分別將RCAP2L、RCAP2H重裝TL2和TH2,循環(huán)計(jì)數(shù);而當(dāng)T2EX(P1.1)引腳為低電平時(shí),T2向下計(jì)數(shù)(即減1計(jì)數(shù)),溢出時(shí)將0FFFFH裝入TH2,TL2(即重裝初值固定為0FFFFH)。T2工作于外電平控制自動(dòng)重裝方式下的內(nèi)部結(jié)構(gòu)如圖4-15所示。2/4/2023單片機(jī)原理與應(yīng)用圖4-15外電平控制重裝方式下的T2結(jié)構(gòu)
2/4/2023單片機(jī)原理與應(yīng)用(3)捕捉方式當(dāng)TCLK、RCLK位為0,位為1時(shí),定時(shí)/計(jì)數(shù)器T2工作于捕捉方式,內(nèi)部結(jié)構(gòu)如圖4-16所示。
圖4-16定時(shí)/計(jì)數(shù)器T2的捕捉方式2/4/2023單片機(jī)原理與應(yīng)用(4)可編程時(shí)鐘輸出方式當(dāng)T2MOD寄存器T2OE位為1,且T2CON寄存器位為0時(shí),T2工作于可編程時(shí)鐘輸出方式,T2溢出信號(hào)自動(dòng)觸發(fā)T2(P1.0)引腳狀態(tài)翻轉(zhuǎn),從P1.0引腳輸出頻率可調(diào)、精度很高的方波信號(hào);同時(shí)使RCAP2L、RCAP2H寄存器內(nèi)容裝入TL2和TH2寄存器中,重新計(jì)數(shù),以便獲得準(zhǔn)確的溢出信號(hào)。T2工作于時(shí)鐘輸出方式的結(jié)構(gòu)如圖4-17所示。2/4/2023單片機(jī)原理與應(yīng)用圖4-17時(shí)鐘輸出方式下的定時(shí)器T2結(jié)構(gòu)2/4/2023單片機(jī)原理與應(yīng)用(5)串行口波特率發(fā)生器當(dāng)TCLK或RCLK位為1時(shí),定時(shí)器T2作為串行口方式1、方式3發(fā)送或接收波特率發(fā)生器(在這種情況下,位沒有意義,可以是0或1),內(nèi)部結(jié)構(gòu)如圖4-18所示。圖4-18T2作為串行口波特率發(fā)生器的結(jié)構(gòu)
2/4/2023單片機(jī)原理與應(yīng)用4.3.4定時(shí)/計(jì)數(shù)器初始化及應(yīng)用(1)確定定時(shí)/計(jì)數(shù)器工作方式,計(jì)算定時(shí)/計(jì)數(shù)器初值M。(2)
初值M送定時(shí)/計(jì)數(shù)器高、低位(即TH和TL)。(3)
初始化TMOD寄存器。(4)如果允許定時(shí)器溢出中斷,則還需初始化定時(shí)/計(jì)數(shù)器中斷優(yōu)先級(jí)(即需要設(shè)置IPH及IP)、禁止/允許定時(shí)/計(jì)數(shù)器中斷(即需要設(shè)置IE),并啟動(dòng)??扇缦马樞虺跏蓟〞r(shí)/計(jì)數(shù)器:2/4/2023單片機(jī)原理與應(yīng)用4.4串行通信系統(tǒng)
4.4.1串行通信概念4.4.2增強(qiáng)型MCS-51串行通信口控制及初始化4.4.3串行口工作方式及應(yīng)用4.4.4幀錯(cuò)誤檢測(cè)及應(yīng)用4.4.5多機(jī)通信及地址自動(dòng)識(shí)別技術(shù)4.4.6RS-232C串行接口標(biāo)準(zhǔn)及應(yīng)用
2/4/2023單片機(jī)原理與應(yīng)用4.4.1串行通信概念
CPU與外設(shè)之間信息交換過程稱為通信,根據(jù)CPU與外設(shè)之間連線結(jié)構(gòu)、數(shù)據(jù)發(fā)送方式的不同,可將通訊分為并行通信和串行通信兩種基本方式。在并行通信方式中,數(shù)據(jù)各位同時(shí)傳送,如圖4-19(a)所示。(a)并行通信2/4/2023單片機(jī)原理與應(yīng)用而在串行通信方式中,數(shù)據(jù)按位逐一傳送,如圖4-19(b)所示。(b)串行通信2/4/2023單片機(jī)原理與應(yīng)用1.串行通信的種類
根據(jù)數(shù)據(jù)傳輸方式的不同,可將串行通信分為同步通信和異步通信兩種。同步通信是一種數(shù)據(jù)連續(xù)傳輸?shù)拇型ㄐ欧绞?。通信時(shí),發(fā)送方把需要發(fā)送的多個(gè)字節(jié)數(shù)據(jù)和校驗(yàn)信息連接起來,組成數(shù)據(jù)塊。發(fā)送時(shí),發(fā)送方只需在數(shù)據(jù)塊前插入1~2個(gè)特殊的同步字符,然后按特定速率逐位輸出(發(fā)送)數(shù)據(jù)塊內(nèi)的各位數(shù)據(jù)。接收方在接收到特定的同步字符后,也按相同速率接收數(shù)據(jù)塊內(nèi)的各位數(shù)據(jù)。典型的同步通信數(shù)據(jù)幀格式如下:2/4/2023單片機(jī)原理與應(yīng)用異步通信的特點(diǎn)是每次只傳送一個(gè)字,每個(gè)字由起始位(規(guī)定為0電平)、數(shù)據(jù)位、奇偶校驗(yàn)位、停止位(規(guī)定為1電平)組成,典型的異步通信數(shù)據(jù)幀格式如下所示:2/4/2023單片機(jī)原理與應(yīng)用2.波特率
在串行通信系統(tǒng)中常用波特率來衡量通信的快慢,含義是每秒中傳送的二進(jìn)制數(shù)碼的位數(shù),單位是位/秒(b/s或Kb/s),簡(jiǎn)稱“波特”。例如,兩個(gè)異步串行通信設(shè)備之間每秒鐘傳送的信息量是240字節(jié),如果一幀數(shù)據(jù)包含10位(1個(gè)起始位、8個(gè)數(shù)據(jù)位和1個(gè)停止位),則發(fā)送、接收波特率為:240B/s×10位=2400b/s=2400波特一般異步通信波特率為110~9600,而同步通信波特率在56Kb以上。2/4/2023單片機(jī)原理與應(yīng)用3.串行通信數(shù)據(jù)傳輸方向
根據(jù)串行通信數(shù)據(jù)傳輸方向,可將串行通信系統(tǒng)分為:?jiǎn)喂し绞?、半雙工方式和全雙工方式,如圖4-20所示。圖4-20數(shù)據(jù)傳輸方式2/4/2023單片機(jī)原理與應(yīng)用4.串行通訊接口種類
根據(jù)串行通訊格式及約定(如同步方式、通訊速率、信號(hào)電平等)不同,形成了許多串行通訊接口標(biāo)準(zhǔn),如常見的RS-232、RS-422、RS-485、IEEE1394、I2C、SPI(同步通信)、USB(通用串行總線接口)、CAN總線接口等。下面結(jié)合增強(qiáng)型MCS-51介紹UART接口及使用規(guī)則。2/4/2023單片機(jī)原理與應(yīng)用4.4.2增強(qiáng)型MCS-51串行通信口控制及初始化
8XC5X、8XC5XX2系列單片機(jī)芯片內(nèi)置的增強(qiáng)型全雙工串行接口部件UART除了具備標(biāo)準(zhǔn)MCS-51串行接口部件UART功能外,還具有幀錯(cuò)誤偵測(cè)和自動(dòng)地址識(shí)別功能。
MCS-51內(nèi)置了一個(gè)可編程的、全雙工通用異步串行通信接口部件UART,內(nèi)部結(jié)構(gòu)如圖4-21所示。主要由兩個(gè)物理上完全獨(dú)立的串行數(shù)據(jù)接收緩沖器和串行數(shù)據(jù)發(fā)送緩沖器、接收控制器(包括輸入移位寄存器)、發(fā)送控制器(包括發(fā)送門)、接收信號(hào)線RXD(P3.0)引腳和發(fā)送信號(hào)線TXD(P3.1)引腳組成。2/4/2023單片機(jī)原理與應(yīng)用圖4-21MCS-51串行口結(jié)構(gòu)2/4/2023單片機(jī)原理與應(yīng)用1.串行口控制寄存器SCON
串行口控制寄存器SCON各位含義如圖4-22所示。圖4-22SCON各位含義2/4/2023單片機(jī)原理與應(yīng)用SM0SM1工作方式說明波特率00方式0(擴(kuò)展I/O口方式)移位輸入/輸出(用于擴(kuò)展I/O引腳,不能用于串行通訊)輸入/輸出移位脈沖為(對(duì)“12時(shí)鐘/機(jī)器周期”,n=12;對(duì)于“6時(shí)鐘/機(jī)器周期”,n=6)01方式1(常用)波特率可變的8位異步串行通信方式或10方式2(不常用)波特率固定的9位異步串行通信方式(對(duì)“12時(shí)鐘/機(jī)器周期”,n=4;對(duì)于“6時(shí)鐘/機(jī)器周期”,n=2)11方式3(常用)波特率可變的9位異步串行通信方式或表4-4串行口工作方式2/4/2023單片機(jī)原理與應(yīng)用REN是串行接收控制位,當(dāng)REN為1時(shí),允許串行口接收數(shù)據(jù);反之,當(dāng)REN為0時(shí),禁止串行口接收數(shù)據(jù)。因此,可通過軟件使REN置1或清0,允許或禁止串行口接收數(shù)據(jù)。TB8是發(fā)送數(shù)據(jù)的第9位。在方式2、方式3中,需要發(fā)送9位數(shù)據(jù),待發(fā)送的低8位數(shù)據(jù)(b7~b0)存放在發(fā)送數(shù)據(jù)緩沖器SBUF中,而第9位(即b8)存放在SCON寄存器的TB8位。在“點(diǎn)對(duì)點(diǎn)”通訊系統(tǒng)中,TB8可以是實(shí)際意義上的數(shù)據(jù),也可以作為發(fā)送數(shù)據(jù)的奇偶標(biāo)志位。而在多機(jī)通信中,TB8位是“地址/數(shù)據(jù)”幀標(biāo)志。RB8是接收數(shù)據(jù)的第9位。在方式2、方式3中,需要接收9位數(shù)據(jù),其中低8位數(shù)據(jù)(b7~b0)存放在接收數(shù)據(jù)緩沖器SBUF中,第9位(即b8)數(shù)據(jù)存放在SCON寄存器的RB8中。同樣,RB8可以是實(shí)際意義上的數(shù)據(jù),也可以是發(fā)送數(shù)據(jù)的奇偶標(biāo)志位。2/4/2023單片機(jī)原理與應(yīng)用TI是發(fā)送結(jié)束中斷標(biāo)志。初始化串行口后,在TI位為0情況下,將發(fā)送數(shù)據(jù)寫入“發(fā)送緩沖器”,將立即啟動(dòng)串行發(fā)送過程:自動(dòng)在數(shù)據(jù)位前插入起始位,在數(shù)據(jù)位后插入停止位,組成發(fā)送數(shù)據(jù)幀;并按設(shè)定波特率依次將起始位、數(shù)據(jù)位(從b0開始)、停止位輸出到發(fā)送引腳TXD(P3.1)上,當(dāng)發(fā)送完最后一個(gè)數(shù)據(jù)位(在8位方式中,最后一位數(shù)據(jù)是SBUF中的b7位;在9位方式中,最后一位數(shù)據(jù)是SCON寄存器的TB8位)時(shí)(即開始發(fā)送停止位)TI自動(dòng)置1,表明當(dāng)前數(shù)據(jù)幀已發(fā)送完畢。RI是接收有效中斷標(biāo)志。當(dāng)接收了一幀數(shù)據(jù)后,RI自動(dòng)置1,指示CPU可以讀取存放在接收緩沖器SBUF中的數(shù)據(jù)。SM2是多機(jī)通信控制位。在方式0中,SM2位必須為0;在方式2、3中,當(dāng)SM2位為1時(shí),具有選擇接收功能,當(dāng)且僅當(dāng)?shù)?位數(shù)據(jù)(RB8)為1時(shí),接收中斷RI有效,這樣通過SM2位,即可實(shí)現(xiàn)多機(jī)通信;而在方式1中,當(dāng)SM2位為1時(shí),必須接收到有效的停止位。2/4/2023單片機(jī)原理與應(yīng)用2.波特率倍增選擇
在增強(qiáng)型MCS-51系列芯片中,串行口波特率與工作方式有關(guān),如表4-4所示。對(duì)于方式0來說,串行輸出/輸入移位脈沖頻率固定為系統(tǒng)時(shí)鐘信號(hào)頻率的n分頻(對(duì)于“12時(shí)鐘/機(jī)器周期”來說,n=12;對(duì)于“6時(shí)鐘/機(jī)器周期”來說,n=6),不可調(diào)。在方式1、3中,可以選擇定時(shí)器T1溢出率的16或32分頻作為串行口發(fā)送、接收波特率外,也選擇定時(shí)器T2溢出率的的16分頻作為串行口發(fā)送或接收波特率,如圖4-18所示。即當(dāng)使用T1溢出率作串行口方式1、3發(fā)送或接收波特率發(fā)生器輸入信號(hào)時(shí),如果SMOD位為1,則波特率是SMOD為0時(shí)的兩倍(正因如此,PCON寄存器中的SMOD位被稱為波特率倍增位)。而在方式2中,波特率與時(shí)鐘信號(hào)頻率fOSC和電源控制寄存器PCON的SMOD位有關(guān),同樣不可調(diào)。對(duì)于“12時(shí)鐘/機(jī)器周期”來說,波特率為系統(tǒng)時(shí)鐘信號(hào)頻率fOSC的1/64或1/32;對(duì)于“6時(shí)鐘/機(jī)器周期”來說,波特率為系統(tǒng)時(shí)鐘信號(hào)頻率fOSC的1/32或1/16。2/4/2023單片機(jī)原理與應(yīng)用3.波特率選擇
方式1、方式3波特率與定時(shí)器T1溢出率、SMOD1位關(guān)系如下:波特率= =而T1溢出率倒數(shù)就等于定時(shí)時(shí)間t,因此定時(shí)T1重裝初值C與波特率之間關(guān)系為:C= (T1定時(shí)器工作在12分頻狀態(tài)) (4-8)C= (T1定時(shí)器工作在6分頻狀態(tài)) (4-9)為了保證不同串行通信設(shè)備之間數(shù)據(jù)可靠傳輸,波特率一般要選擇標(biāo)準(zhǔn)值,如1200、2400、4800等,如表4-5所示。2/4/2023單片機(jī)原理與應(yīng)用4.4.3串行口工作方式及應(yīng)用1.方式0
當(dāng)串行口工作于方式0時(shí),串行口本身相當(dāng)于“并入串出”(發(fā)送狀態(tài))或“串入并出”(接收狀態(tài))的移位寄存器。串行移位脈沖CLOCK從TXD(P3.1)引腳輸出,頻率是系統(tǒng)時(shí)鐘頻率fOSC的12分頻(對(duì)于8XC5XX2芯片來說,在“6時(shí)鐘/機(jī)器周期”模式下,移位脈沖頻率是時(shí)鐘頻率fOSC的6分頻);而8位串行數(shù)據(jù)b0~b7依次從RDX(P3.0)引腳輸出或輸入。
2/4/2023單片機(jī)原理與應(yīng)用串行口方式0操作時(shí)序如圖4-X所示,對(duì)于串行輸出來說,采用“低電平送數(shù)據(jù),上升沿鎖存”方式,即在移位脈沖上升沿串行輸出數(shù)據(jù)穩(wěn)定出現(xiàn)在RXD引腳,外部“串入并出”芯片可利用TXD引腳移位脈沖的上升沿鎖存數(shù)據(jù);對(duì)于串行輸入來說,MCS-51MPU串行口在移位脈沖的上升沿讀RDX引腳的數(shù)據(jù),即外部“并入串出”芯片必須在移位脈沖的上升沿將數(shù)據(jù)送到RXD引腳。2/4/2023單片機(jī)原理與應(yīng)用當(dāng)使用74LS164芯片擴(kuò)展輸出口時(shí),MCS-51芯片RXD引腳接74LS164芯片的串行數(shù)據(jù)輸入端,TXD引腳接74LS164芯片的移位脈沖輸入端CLK,如圖4-24(a)所示。(a)通過74LS164串入并出芯片擴(kuò)展輸出口2/4/2023單片機(jī)原理與應(yīng)用(b)通過74HC595串入并出芯片擴(kuò)展輸出口
當(dāng)使用74HC595芯片擴(kuò)展輸出口時(shí),MCS-51的RXD引腳接74HC595芯片的串行數(shù)據(jù)輸入端SDI,TXD引腳接74HC595芯片的串行移位脈沖輸入端SRCLK,并行數(shù)據(jù)輸出鎖存脈沖RCLK可由CPU另一I/O引腳,如P1.7提供,串行移位寄存器清除端可接高電平,如圖4-23(b)所示(值得注意的是74HC595串行移位脈沖SRCLK、并行數(shù)據(jù)輸出鎖存脈沖RCLK對(duì)邊緣有嚴(yán)格要求,當(dāng)CPUI/O驅(qū)動(dòng)能力不足時(shí),可在CPUI/O引腳與74HC595芯片間加驅(qū)動(dòng)器,如CD40106芯片等)。
2/4/2023單片機(jī)原理與應(yīng)用在“并行輸入串行輸出”芯片,如74LS165、74HC597配合下,即可通過串行口方式0擴(kuò)展MCS-51的輸入引腳,其中MCS-51的RXD引腳接74LS165芯片的串行數(shù)據(jù)輸出端,TXD引腳接74LS165芯片的移位脈沖CLK,如圖4-25所示。2/4/2023單片機(jī)原理與應(yīng)用2.方式1
當(dāng)SM0、SM1為01時(shí),串行口工作在方式1,是8位的異步串行通信口,其中TXD是發(fā)送端,RXD是接收端。發(fā)送或接收一幀信息包括1位起始位(固定為0)、8位串行數(shù)據(jù)(低位在前,高位在后)和一位停止位(固定為1)共10位,一幀數(shù)據(jù)格式如下所示,波特率與定時(shí)器T1(或T2)溢出率、SMOD1位有關(guān)(可變)。2/4/2023單片機(jī)原理與應(yīng)用方式1的發(fā)送過程如下:在TI為0的情況下(表示串行口發(fā)送控制電路處于空閑狀態(tài)),任何寫串行數(shù)據(jù)輸出緩沖器SBUF指令(如MOVSBUF,A)均會(huì)觸發(fā)串行發(fā)送過程:MCS-51串行口自動(dòng)在8個(gè)串行數(shù)據(jù)位的前、后分別插入一個(gè)起始位(0)和一個(gè)停止位(1),構(gòu)成10位信息幀,然后按設(shè)定的波特率依次輸出起始位(0)、8個(gè)數(shù)據(jù)位(順序?yàn)閎0~b7)和停止位(1)。當(dāng)8位數(shù)據(jù)(即b7位)發(fā)送結(jié)束后(即開始發(fā)送停止位)時(shí),串行口自動(dòng)將發(fā)送結(jié)束標(biāo)志TI置1,表示發(fā)送緩沖區(qū)內(nèi)容已發(fā)送完畢。這樣執(zhí)行了寫SBUF寄存器操作后,可通過查詢TI標(biāo)志來確定發(fā)送過程是否已完成。當(dāng)然,在中斷處于開放狀態(tài)下,TI有效時(shí),將產(chǎn)生串行中斷請(qǐng)求。2/4/2023單片機(jī)原理與應(yīng)用方式1的接收過程如下:在接收中斷標(biāo)志RI為0(即串行數(shù)據(jù)輸入緩沖器SBUF處于空閑狀態(tài))情況下,當(dāng)REN位為1時(shí),串行口即處于接收狀態(tài)。在接收狀態(tài)下,存在兩個(gè)定時(shí)信號(hào):一個(gè)是移位脈沖信號(hào)(即發(fā)送波特率);另一個(gè)是RXD引腳電平狀態(tài)檢測(cè)信號(hào)(也稱為數(shù)據(jù)檢測(cè)脈沖),它的頻率是移位脈沖的16倍。進(jìn)入接收狀態(tài)后,串行口便按數(shù)據(jù)檢測(cè)脈沖速率不斷檢測(cè)RXD引腳的電平狀態(tài),當(dāng)發(fā)現(xiàn)RXD引腳由高電平變?yōu)榈碗娖胶蟆砻靼l(fā)送端開始發(fā)送起始位(0),啟動(dòng)接收過程,并復(fù)位接收波特率發(fā)生器,使數(shù)據(jù)檢測(cè)脈沖與接收移位脈沖保持同步,然后按設(shè)定波特率順序接收數(shù)據(jù)位和停止位。當(dāng)接收完一幀信息(即接收到停止位)后,如果RI位為0,便將“接收移位寄存器”中的內(nèi)容裝入串行數(shù)據(jù)輸入緩沖寄存器SBUF中,停止位裝入SCON寄存器的RB8位中,并將串行接收中斷標(biāo)志RI置1。2/4/2023單片機(jī)原理與應(yīng)用3.方式2和方式3
當(dāng)SM0、SM1為10時(shí),串行口工作于方式2;而當(dāng)SM0、SM1為11時(shí),串行口工作于方式3。方式2和方式3都是9位異步串行通信口,惟一區(qū)別是方式2的波特率固定為時(shí)鐘頻率的32或64分頻,不可調(diào),因此不常用(原因是與其他串行通信設(shè)備連接困難)。而方式3的波特率與T1(或T2)定時(shí)器的溢出率、電源控制寄存器PCON的SMOD1位有關(guān),可調(diào)。選擇不同的初值或晶振頻率,即可獲得常用的波特率,因此方式3較常用。下面以方式3為例,介紹串行口9位異步通信過程。其實(shí)方式3與方式1之間的區(qū)別不大,惟一的不同是:方式3是9位的異步串行通信方式,一幀信息為11位,由一位起始位(0)、9位串行數(shù)據(jù)、一位停止位(1)組成,信息幀結(jié)構(gòu)如下所示:2/4/2023單片機(jī)原理與應(yīng)用4.4.4幀錯(cuò)誤檢測(cè)及應(yīng)用在方式2、3中,收到第9位(即RB8)數(shù)據(jù)后,只要滿足“SM2=0”或“SM2=1,RB8=1”接收條件,RI即有效,沒有檢測(cè)停止位,因此可能出現(xiàn)停止位丟失現(xiàn)象。為此,增強(qiáng)型UART口通過檢測(cè)“停止位”的有無來判別方式2、3下串行接收是否正常,這就是所謂的“幀錯(cuò)誤檢測(cè)”功能。在增強(qiáng)型UART口中,SCON寄存器的b7位具有SM0/FE(FramError)雙重功能(由PCON寄存器的b6,即SMOD0位控制:當(dāng)SMOD0位為0時(shí),SCON寄存器的b7位的含義是SM0;而當(dāng)SMOD0位為1時(shí),SCON寄存器的b7位的含義是FE)。當(dāng)接收不到有效停止位時(shí),SCON寄存器的b7位(即FE)置1。當(dāng)FE為1時(shí),表示接收到的數(shù)據(jù)不可靠。2/4/2023單片機(jī)原理與應(yīng)用4.4.5多機(jī)通信及地址自動(dòng)識(shí)別技術(shù)
1.標(biāo)準(zhǔn)MCS-51多機(jī)通信過程
在某些應(yīng)用系統(tǒng)中,常需要多個(gè)單片機(jī)芯片協(xié)同工作,這就涉及到多機(jī)通信問題。MCS-51串行口方式2和方式3具有主從通信功能。在由MCS-51組成的主從式多機(jī)通信系統(tǒng)中,只有一臺(tái)主機(jī),從機(jī)最多為256臺(tái);主機(jī)可以與任一從機(jī)通信,但從機(jī)之間不能直接通信,只能通過主機(jī)進(jìn)行。由MCS-51構(gòu)成的多機(jī)通信系統(tǒng)如圖4-26所示。2/4/2023單片機(jī)原理與應(yīng)用2.增強(qiáng)型MCS-51新增的地址自動(dòng)識(shí)別
利用自動(dòng)地址識(shí)別功能可使主機(jī)通過發(fā)送特定地址與一個(gè)或多個(gè)從機(jī)進(jìn)行通訊,如通過廣播地址和所有從機(jī)通訊。啟動(dòng)地址自動(dòng)識(shí)別功能時(shí),從機(jī)的SM2位必須為1,且還需要用到兩個(gè)特殊功能寄存器SADDR(從機(jī)地址寄存器)和SADEN(從機(jī)地址屏蔽寄存器),每個(gè)從機(jī)有惟一的地址屏蔽寄存器SADEN,用來確認(rèn)SADDR中的那些位是有用的那些位是無用的。自動(dòng)地址識(shí)別結(jié)構(gòu)如圖4-27所示。2/4/2023單片機(jī)原理與應(yīng)用從圖4-27中看出,采用地址自動(dòng)識(shí)別功能后,有效接收條件是:當(dāng)SM2位為1時(shí),主機(jī)發(fā)出的地址(其特征是第9位數(shù)據(jù)為1)與從地址屏蔽碼SADEN按位“與”后等于從機(jī)地址寄存器SADDR。這樣主機(jī)就可以通過發(fā)出特定地址與單一從機(jī)或一組從機(jī)通信、通過發(fā)出廣播地址與所有從機(jī)通信。2/4/2023單片機(jī)原理與應(yīng)用3.總線沖突
在圖4-26所示的多機(jī)通信系統(tǒng)中,可能會(huì)遇到兩個(gè)或兩個(gè)以上從機(jī)同時(shí)申請(qǐng)與主機(jī)通信(或某一從機(jī)正在與主機(jī)通信時(shí),另一從需要與主機(jī)通信),這就涉及到總線沖突問題。為此,可選擇如下方式之一解決:(1)
主機(jī)定時(shí)查詢方式。在這一方式中,從機(jī)不主動(dòng)發(fā)送數(shù)據(jù),由主機(jī)定時(shí)查詢各從機(jī)狀態(tài)。優(yōu)點(diǎn)是不占用硬件資源,但從機(jī)數(shù)據(jù)有效后,需要等待主機(jī)查詢,不能立即上傳。(2)使用I/O引腳作為總線使用標(biāo)志??臻e時(shí)該引腳處于輸入狀態(tài),當(dāng)從機(jī)需要與主機(jī)通信時(shí),先讀該引腳狀態(tài),當(dāng)引腳為高電平時(shí),表明其他從機(jī)沒有使用串行總線,將該引腳置為低電平后,向主機(jī)發(fā)送數(shù)據(jù),通訊結(jié)束后恢復(fù)總線使用標(biāo)志I/O引腳的輸入狀態(tài)。2/4/2023單片機(jī)原理與應(yīng)用4.4.6RS-232C串行接口標(biāo)準(zhǔn)及應(yīng)用RS-232C標(biāo)準(zhǔn)規(guī)定了在串行通信中數(shù)據(jù)終端設(shè)備(簡(jiǎn)稱DTE,如個(gè)人計(jì)算機(jī))和數(shù)據(jù)通信設(shè)備(簡(jiǎn)稱DCE,如調(diào)制解調(diào)器)間物理連接線路的機(jī)械、電氣特性,以及通信格式和約定,是異步串行通信中應(yīng)用最廣的總線標(biāo)準(zhǔn)。2/4/2023單片機(jī)原理與應(yīng)用1.RS-232C的引腳功能
完整的RS-232C接口由主信道、輔信道共22根連線組成,不過該標(biāo)準(zhǔn)對(duì)引腳的機(jī)械特性并未做出嚴(yán)格規(guī)定,一般采用標(biāo)準(zhǔn)的25芯D型插座(通過25芯D型插頭連接),各引腳信號(hào)含義如圖4-28(a)所示。盡管輔信道也可用于串行通信,但速率低,很少用。此外,當(dāng)兩個(gè)設(shè)備以異步方式通信時(shí),也無須使用主信道中所有的聯(lián)絡(luò)信號(hào),因此RS-232C接口也可以用9芯D型插座(如微機(jī)系統(tǒng)中的串行口),各引腳信號(hào)含義如圖4-28(b)所示。2/4/2023單片機(jī)原理與應(yīng)用25芯D型插座RS-232C接口信號(hào)名稱及主要信號(hào)流向9芯D型插座上的RS-232C接口信號(hào)名稱及流向2/4/2023單片機(jī)原理與應(yīng)用2.RS-232C串行接口標(biāo)準(zhǔn)中主信道重要信號(hào)含義
RS-232C串行接口標(biāo)準(zhǔn)主信道重要信號(hào)含義:TXD:串行數(shù)據(jù)發(fā)送引腳,輸出。RXD:串行數(shù)據(jù)接收引腳,輸入。DSR:數(shù)據(jù)設(shè)備(DCE)準(zhǔn)備就緒信號(hào),輸入,主要用于接收聯(lián)絡(luò)。當(dāng)DSR信號(hào)有效時(shí),表明本地的數(shù)據(jù)設(shè)備(DCE)處于就緒狀態(tài)。DTR:數(shù)據(jù)終端(DTE)就緒信號(hào),輸出。用于DTE向DCE發(fā)送聯(lián)絡(luò),當(dāng)DTR有效時(shí),表示DTE可以接收來自DCE的數(shù)據(jù)。RTS:發(fā)送請(qǐng)求,輸出。當(dāng)DTE需要向DCE發(fā)送數(shù)據(jù)時(shí),向接收方(DCE)輸出RTS信號(hào)。CTS:發(fā)送允許或清除發(fā)送,輸入。作為“清除發(fā)送”信號(hào)使用時(shí),由DCE輸出,當(dāng)CTS有效時(shí),DTE將終止發(fā)送(如DCE忙或有重要數(shù)據(jù)要回送DTE);而作為“允許發(fā)送”信號(hào)使用時(shí),情況剛好相反:當(dāng)接收方接收到RTS信號(hào)后進(jìn)入接收狀態(tài),就緒后向請(qǐng)求發(fā)送方回送CTS信號(hào),發(fā)送方檢測(cè)到CTS有效后,啟動(dòng)發(fā)送過程。2/4/2023單片機(jī)原理與應(yīng)用3.電平轉(zhuǎn)換
為保證數(shù)據(jù)可靠傳送,RS-232C標(biāo)準(zhǔn)規(guī)定發(fā)送數(shù)據(jù)線TXD和接收數(shù)據(jù)線RXD均采用EIA電平,即傳送數(shù)字“1”時(shí),傳輸線上的電平在-3V~-15V之間;傳送數(shù)字“0”時(shí),傳輸線上的電平在+3V~+15V之間。但單片機(jī)串行口采用正邏輯的TTL電平,這樣就存在TTL電平與EIA電平之間的轉(zhuǎn)換問題,例如當(dāng)單片機(jī)與PC機(jī)進(jìn)行串行通信時(shí),PC機(jī)COM1或COM2口發(fā)送引腳TXD信號(hào)是EIA電平,不能直接與單片機(jī)串行口接收端RXD引腳相連;同樣單片機(jī)串行口發(fā)送端TXD引腳輸出信號(hào)采用正邏輯的TTL電平,也不能直接與PC機(jī)串行口COM1或COM2的RXD端相連。2/4/2023單片機(jī)原理與應(yīng)用RS-232C與TTL之間電平轉(zhuǎn)換芯片主要有傳輸線發(fā)送器MC1488(把TTL電平轉(zhuǎn)成EIA電平)、傳輸線接收器MC1489(把EIA電平轉(zhuǎn)成TTL電平)、MAX232以及Sipex202/232系列RS232電平轉(zhuǎn)換專用芯片。2/4/2023單片機(jī)原理與應(yīng)用4.RS-232C的連接
其實(shí)RS-232C接口聯(lián)絡(luò)信號(hào)沒有嚴(yán)格
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 宣傳物料印刷合同范本3篇
- 《數(shù)據(jù)安全法》考試參考題庫(kù)100題(含答案)
- 2025年梧州職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 全球‘最優(yōu)旅行小鎮(zhèn)’課件展示:探索與發(fā)現(xiàn)鄉(xiāng)村之美
- 2025科學(xué)儀器行業(yè)未來發(fā)展趨勢(shì)與機(jī)會(huì)
- 中班區(qū)角創(chuàng)意活動(dòng)方案五篇
- 養(yǎng)老行業(yè)的未來:2025年發(fā)展趨勢(shì)與市場(chǎng)展望
- 借款簡(jiǎn)單的合同范本
- 旅游規(guī)劃服務(wù)合同
- 反擔(dān)保合同以及借款擔(dān)保合同范文
- 2024年全國(guó)現(xiàn)場(chǎng)流行病學(xué)調(diào)查職業(yè)技能競(jìng)賽考試題庫(kù)-上部分(600題)
- 安徽省蚌埠市2025屆高三上學(xué)期第一次教學(xué)質(zhì)量檢查考試(1月)數(shù)學(xué)試題(蚌埠一模)(含答案)
- 2025年春節(jié)安全專題培訓(xùn)(附2024年10起重特大事故案例)
- 2025年江蘇太倉(cāng)水務(wù)集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 遼寧省沈陽(yáng)名校2025屆高三第一次模擬考試英語(yǔ)試卷含解析
- 《中小學(xué)校園食品安全和膳食經(jīng)費(fèi)管理工作指引》專題知識(shí)培訓(xùn)
- 2024年新疆區(qū)公務(wù)員錄用考試《行測(cè)》真題及答案解析
- 第三章-自然語(yǔ)言的處理(共152張課件)
- 行政事業(yè)單位國(guó)有資產(chǎn)管理辦法
- 六年級(jí)口算訓(xùn)練每日100道
- 高一生物生物必修一全冊(cè)考試題帶答題紙答案
評(píng)論
0/150
提交評(píng)論