版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 第4章 中斷控制、定時/計數(shù)器與串行口 4.1 CPU與外設(shè)通信方式概述4.2 增強型MCS-51中斷控制系統(tǒng)4.3 增強型MCS-51定時/計數(shù)器4.4 串行通信系統(tǒng)4.5 增強型MCS-51芯片識別與仿真第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 4.1 CPU與外設(shè)通信方式概述與外設(shè)通信方式概述 外圍設(shè)備與CPU之間常用的通信方式有:查詢方式中斷傳輸方式直接存儲器存取(簡稱DMA)由于在單片機控制系統(tǒng)中,外設(shè)與CPU之間需要傳送的數(shù)據(jù)量較少,對傳輸率要求不高,一般不用DMA方式,這里也就不
2、介紹。第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 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ù)為例,簡要介紹查詢傳輸方式的工作過程:當(dāng)CPU需要向外設(shè)輸出數(shù)據(jù)時,先將控制命令(如外設(shè)的啟動命令)寫入外設(shè)的控制端口,然后不斷讀外設(shè)的狀態(tài)口,當(dāng)發(fā)現(xiàn)外設(shè)處于空閑狀態(tài)后,就將數(shù)據(jù)寫入外設(shè)的數(shù)據(jù)口,完
3、成數(shù)據(jù)的輸出過程。第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 下面以CPU向外設(shè)輸出數(shù)據(jù)為例,簡要介紹查詢傳輸方式的工作過程: 當(dāng)CPU需要向外設(shè)輸出數(shù)據(jù)時,先將控制命令(如外設(shè)的啟動命令)寫入外設(shè)的控制端口,然后不斷讀外設(shè)的狀態(tài)口,當(dāng)發(fā)現(xiàn)外設(shè)處于空閑狀態(tài)后,就將數(shù)據(jù)寫入外設(shè)的數(shù)據(jù)口,完成數(shù)據(jù)的輸出過程。 查詢方式優(yōu)缺點: 硬件開銷少、傳輸程序簡單,但缺點是CPU占用率高,因為在外設(shè)未準(zhǔn)備就緒或處于非空閑狀態(tài)前,CPU一直處于查詢狀態(tài),不能執(zhí)行其他操作,任何時候也只能與一個外設(shè)進(jìn)行數(shù)據(jù)交換。 4.1.2 中斷通信方式 采用中斷傳輸方式就可以克服查詢傳輸方式存在的缺陷
4、:當(dāng)CPU需要向外設(shè)輸出數(shù)據(jù)時,將啟動命令寫入外設(shè)控制口后,就繼續(xù)執(zhí)行隨后的指令序列,而不是被動等待;當(dāng)外設(shè)處于空閑狀態(tài),可以接收數(shù)據(jù)時,由外設(shè)向CPU發(fā)出允許數(shù)據(jù)傳送的請求信號即中斷請求信號,如果滿足中斷響應(yīng)條件,CPU將暫停執(zhí)行隨后的指令序列,轉(zhuǎn)去執(zhí)行預(yù)先安排好的數(shù)據(jù)傳送程序稱為中斷服務(wù)程序,CPU響應(yīng)外設(shè)中斷請求的過程簡稱為中斷響應(yīng);待完成了數(shù)據(jù)傳送后,再返回斷點處繼續(xù)執(zhí)行被中斷了的程序這一過程稱為中斷返回??梢?,在這種方式中,CPU發(fā)出控制命令后,將繼續(xù)執(zhí)行控制命令后的指令序列,而不是通過檢測外設(shè)的狀態(tài)來確定外設(shè)是否處于空閑狀態(tài),這不僅提高了CPU的利用率,而且能同時與多個外設(shè)進(jìn)行數(shù)據(jù)
5、交換只要合理安排相應(yīng)中斷的優(yōu)先級以及同優(yōu)先級中斷的查詢順序即可。因此,中斷傳輸方式是CPU與外設(shè)之間最常見的一種數(shù)據(jù)傳輸方式。 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 1. 中斷源中斷源 在計算機控制系統(tǒng)中,把引起中斷的事件稱為中斷源。在單片機控制系統(tǒng)中,常見的中斷源有:l外部中斷,如CPU某些特定引腳電平變化引起的中斷。l各類定時/計數(shù)器溢出中斷(即定時時間到或計數(shù)器滿中斷)。l 串行發(fā)送結(jié)束中斷。l 串行接收有效中斷。l電源掉電中斷。 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 2.中斷優(yōu)先級中斷優(yōu)先級 當(dāng)多個外設(shè)以中斷方式與CP
6、U進(jìn)行數(shù)據(jù)交換時,可能遇到兩個或兩個以上外設(shè)中斷請求同時有效的情形。在這種情況下,CPU先響應(yīng)哪一外設(shè)的中斷請求?這就涉及到中斷優(yōu)先級問題。一般說來,為了能夠處理多個中斷請求,中斷控制系統(tǒng)均提供中斷優(yōu)先級控制。有了中斷優(yōu)先級控制后,就可以解決多個中斷請求同時有效時,先響應(yīng)哪一請求中斷問題,以及高優(yōu)先級中斷請求可中斷低優(yōu)先級中斷處理進(jìn)程,實現(xiàn)中斷嵌套。 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 3. 中斷開關(guān)中斷開關(guān) 有時為避免某一處理過程被中斷,中斷控制器給每一個中斷源都設(shè)置了一個中斷請求屏蔽位,用于屏蔽(即禁止)相應(yīng)中斷源的中斷請求,當(dāng)某一中斷源的中斷請求處于禁
7、止?fàn)顟B(tài)時,即使該中斷請求有效,CPU也不響應(yīng),相當(dāng)于中斷源的中斷開關(guān)。此外,還設(shè)一個總的中斷請求屏蔽位,當(dāng)該位處于禁止?fàn)顟B(tài)時,CPU忽略所有中斷源的中斷請求,相當(dāng)于中斷源總開關(guān)。 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 4. 中斷處理過程中斷處理過程 中斷處理過程涉及中斷查詢和響應(yīng)兩個方面,即當(dāng)某一事件發(fā)生時,對應(yīng)的中斷標(biāo)志,即中斷請求何時有效?CPU什么時候查詢中斷標(biāo)志?什么時候?在什么情況下會響應(yīng)中斷請求?下面結(jié)合增強型MCS-51中斷控制系統(tǒng)逐一介紹。 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 4.2 增強型MCS-51中斷控
8、制系統(tǒng) 增強型MCS-51系列內(nèi)嵌的中斷控制器可以管理具有4個中斷優(yōu)先級的6個中斷源(增強型MCS-51 CPU中斷源的個數(shù)與標(biāo)準(zhǔn)MCS-52子系列相同),其結(jié)構(gòu)如圖4-1所示。在增強型MCS-51系列中,6個中斷源對應(yīng)8個中斷請求標(biāo)志(串行發(fā)送結(jié)束中斷標(biāo)志TI和串行接收有效中斷標(biāo)志RI相“或”后作為一個中斷源串行口中斷,共用一個中斷開關(guān);定時器T2溢出中斷TF2和外部觸發(fā)中斷EXF2相“或”后作為一個中斷源定時器T2中斷,也共用一個中斷開關(guān))。 圖4-1 增強型MCS-51中斷系統(tǒng)結(jié)構(gòu) 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 4.2.1 中斷源及標(biāo)志 增強型M
9、CS-51 CPU在每個機器周期的S5P2時刻順序采樣各中斷源,當(dāng)發(fā)現(xiàn)某一中斷有效(出現(xiàn))時,對應(yīng)中斷標(biāo)志置1,表明相應(yīng)事件發(fā)生了。 圖4-2 與中斷功能有關(guān)的TCON寄存器位 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 4.2.2 中斷控制 1. 中斷允許控制寄存器中斷允許控制寄存器IE 當(dāng)某一中斷(事件)出現(xiàn)時,相應(yīng)的中斷請求標(biāo)志位置1(即中斷有效),但該中斷請求能否被CPU查詢,由中斷控制寄存器IE相應(yīng)位決定(MCS-51 CPU在每個機器周期的S6狀態(tài)查詢處于允許狀態(tài)的中斷請求標(biāo)志),中斷控制寄存器IE各位含義如圖4-3所示。 第第4章章 中斷控制、定時中斷
10、控制、定時/計數(shù)器與串行口計數(shù)器與串行口 圖4-3 中斷控制寄存器IE各位含義 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 2. 中斷優(yōu)先級控制寄存器中斷優(yōu)先級控制寄存器IP 標(biāo)準(zhǔn)MCS-51內(nèi)核只有兩個中斷優(yōu)先級,各中斷源優(yōu)先級由IP寄存器控制(0為低優(yōu)先級;1為高優(yōu)先級),中斷優(yōu)先級控制寄存器IP各位含義如圖4-4(a)所示。 增強型MCS-51內(nèi)核具有四個中斷優(yōu)先級,除了標(biāo)準(zhǔn)MCS-51 CPU的中斷優(yōu)先級控制寄存器IP外,還增加了一個中斷優(yōu)先級控制寄存器IPH(字節(jié)地址為0B7H,但I(xiàn)PH沒有按位尋址功能),IPH寄存器各位含義如圖4-4(b)所示,即中斷源
11、的優(yōu)先級由IPH、IP對應(yīng)位編碼決定,具體情況如下:IPH.X位IP.X位優(yōu)先級00 0級(優(yōu)先級最低)01 1級10 2級11 3級(優(yōu)先級最高) 中斷優(yōu)先級控制寄存器IP各位含義 斷優(yōu)先級控制寄存器高位IPH各位含義 圖4-4 中斷優(yōu)先級控制寄存器 4.2.3 中斷響應(yīng)過程及中斷服務(wù)程序入口地址 對于外中斷來說,MCS-51 CPU在每個機器周期的S5P2相鎖存引腳的電平狀態(tài),設(shè)置中斷請求標(biāo)志(若中斷有效,相應(yīng)中斷標(biāo)志位置1;中斷無效,標(biāo)志位為0),如圖4-5中的M1周期,并在下一機器周期(如圖4-5中的M2周期)的S6狀態(tài)按優(yōu)先級順序查詢所有沒有被禁止的中斷請求標(biāo)志,如果滿足下列中斷響應(yīng)
12、條件,則在下一機器周期(如圖4-5中的M3周期)的S1狀態(tài),響應(yīng)優(yōu)先級最高的中斷請求,執(zhí)行相應(yīng)的中斷服務(wù)程序,否則繼續(xù)執(zhí)行當(dāng)前程序。 圖4-5 中斷響應(yīng)時序 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 MCS-51中斷響應(yīng)條件為:(1) 當(dāng)前不處于同級或更高級中斷響應(yīng)中。這是為了防止同級或低級中斷請求中斷同級或更高級中斷。(2) 當(dāng)前機器周期必須是當(dāng)前指令的最后一個機器周期,否則等待。執(zhí)行某些指令需要兩個或兩個以上機器周期,如果當(dāng)前機器周期不是指令的最后一個機器周期,則不響應(yīng)中斷請求,即不允許中斷一條指令的執(zhí)行過程,這是為了保證指令執(zhí)行過程的完整性。(3) 如果當(dāng)前
13、指令是中斷返回指令RETI,或讀寫中斷控制寄存器IE、優(yōu)先級寄存器IP或IPH,則必須再執(zhí)行一條指令后才能響應(yīng)中斷請求,即中斷控制器各狀態(tài)位尚未穩(wěn)定前,不響應(yīng)中斷,以免出現(xiàn)不確定后果。 1. 中斷響應(yīng)條件中斷響應(yīng)條件如果滿足中斷響應(yīng)條件,將進(jìn)入中斷響應(yīng)過程:(1) CPU先將對應(yīng)中斷的優(yōu)先級觸發(fā)器置1(每一中斷源對應(yīng)一個中斷優(yōu)先級觸發(fā)器,不過圖4-1中沒畫出該觸發(fā)器),阻止CPU再響應(yīng)同級或更低級中斷請求。(2) 將程序計數(shù)器PC當(dāng)前值壓入堆棧,以保證執(zhí)行完中斷服務(wù)程序后正確返回;將中斷源入口地址裝入PC,以便執(zhí)行相應(yīng)的中斷服務(wù)程序。這一過程由硬件完成,相當(dāng)于執(zhí)行了一條長調(diào)用指令“LCALL
14、XXXX”,中斷服務(wù)程序入口地址如下:中斷源 入口地址(即LCALL指令的XXXX地址)外中斷0003H定時/計數(shù)器T0溢出中斷000BH外中斷0013H定時/計數(shù)器T1溢出中斷001BH串行口中斷0023H定時/計數(shù)器T2溢出中斷002BH 0INTINT12. 中斷響應(yīng)過程及中斷服務(wù)程序入口地址中斷響應(yīng)過程及中斷服務(wù)程序入口地址第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 由于各中斷服務(wù)程序入口地址僅相隔8個字節(jié),難以容納中斷服務(wù)程序,為此可在中斷程序入口處放置一條長跳轉(zhuǎn)指令,這樣實際的中斷服務(wù)程序就可以放在存儲器區(qū)內(nèi)的任意位置(一般放在主程序后),如下所示:OR
15、G 0003HLJMP INT0;在外中斷 入口處放一條長跳轉(zhuǎn)指令 ORG 0100HMAIN:;主程序INT0:;外中斷 的中斷服務(wù)程序。 0INT0INT第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 (3) 清除中斷請求標(biāo)志 (4) 返回。中斷服務(wù)程序最后一條指令是中斷返回指令“RETI”,執(zhí)行了中斷返回指令RETI后,先將對應(yīng)中斷的優(yōu)先級觸發(fā)器清0(以便返回后CPU能夠響應(yīng)同級或更低級的中斷請求),并將堆棧內(nèi)的兩個字節(jié)彈到程序計數(shù)器PC,以便從斷點處繼續(xù)執(zhí)行被中斷程序的后續(xù)指令。 4.2.4 中斷初始化及中斷服務(wù)程序結(jié)構(gòu) 中斷初始化是指通過設(shè)置TCON、IE及I
16、P、IPH寄存器內(nèi)容,確定外中斷觸發(fā)方式(低電平觸發(fā)還是下降沿觸發(fā))、開中斷、設(shè)置中斷優(yōu)先級等,例如可通過如下指令將 定義為下降沿觸發(fā),優(yōu)先級為3(最高),并允許 中斷:SETB IT0;外中斷 采用下降沿觸發(fā)。ORL IPH, #01H;由于IPH寄存器沒有位尋址功能,只能通過或指令,將IPH的PX0H位置1。SETB PX0;IP寄存器具有位尋址功能,可通過SETB指令將指定位置1。SETB EX0;允許 中斷。SETB EA;開中斷。 0INT0INT0INT0INT中斷服務(wù)程序結(jié)構(gòu)與子程序類似,大致包含以下幾部分:;必要時保護(hù)現(xiàn)場PUSH PSWPUSH AccSETB RS0;切換工
17、作寄存器區(qū),根據(jù)需要可使用0-3區(qū)中的任一區(qū)。CLR RS1;由于中斷出現(xiàn)的不確定性,因此只要中斷服務(wù)程序中使用;了寄存器組R0R7,就需要切換工作區(qū)。 ;中斷服務(wù)程序體(略)。 CLR 中斷請求標(biāo)志 ;對于不能自動清除中斷請求標(biāo)志的中斷響應(yīng)過程,需要通過;“CLR 中斷請求標(biāo)志位”指令清除中斷請求標(biāo)志,防止同一請;求被多次響應(yīng)。POP AccPOP PSW;恢復(fù)現(xiàn)場。RETI;中斷返回指令。 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 中斷源及中斷標(biāo)志。即什么事件發(fā)生時,對應(yīng)中斷標(biāo)志置1。 如何控制該中斷。即中斷允許由中斷控制寄存器IE哪一位控制;優(yōu)先級由IPH、
18、IP寄存器哪一位控制,以及同優(yōu)先級硬件查詢順序。 中斷入口地址。即中斷服務(wù)程序放在何處。 CPU響應(yīng)該中斷請求后,能否自動清除對應(yīng)的中斷標(biāo)志。 在單片機中,還要了解該中斷源能否喚醒處于掉電狀態(tài)下的CPU??梢妼τ谝粋€中斷來說,我們需要了解下列問題:第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 4.3 增強型MCS-51定時/計數(shù)器 在單片機控制系統(tǒng)中,常需要對外部脈沖進(jìn)行計數(shù)或每隔特定時間執(zhí)行某一操作,因此定時/計數(shù)器是單片機控制系統(tǒng)中重要的外設(shè)部件之一,幾乎所有單片機芯片均內(nèi)置一個到數(shù)個定時/計數(shù)器。增強型MCS-51系列單片機芯片內(nèi)置了三個16位的定時/計數(shù)器,分
19、別稱為T0、T1和T2。第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 4.3.1 定時/計數(shù)功能概述 定時/計數(shù)器的核心部件是一個加法(或減法)計數(shù)器,可工作在定時方式或計數(shù)方式,因此稱為定時/計數(shù)器。不過這兩種工作方式并沒有本質(zhì)的區(qū)別,只是計數(shù)脈沖來源不同而已:如果計數(shù)脈沖是頻率相對穩(wěn)定的系統(tǒng)時鐘信號(一般是系統(tǒng)時鐘的分頻信號)時,則稱為定時方式;反之,當(dāng)計數(shù)脈沖取自CPU I/O引腳的外部信號時,稱為計數(shù)方式。 單片機內(nèi)定時/計數(shù)器屬于可編程部件,除了加法計數(shù)器(部分單片機芯片采用減法計數(shù)器)外,尚有工作方式控制寄存器,一般具有如下特點:(1) 工作方式寄存器。定
20、時/計數(shù)器有多種定時或計數(shù)方式,使用前必須初始化工作方式寄存器,設(shè)置定時/計數(shù)器的工作方式(定時還是計數(shù);硬件啟動還是軟件啟動;計數(shù)長度即作16位計數(shù)器,還是8位計數(shù)器使用;溢出后重裝初值,還是從0開始計數(shù)等)。(2) 可以從0開始計數(shù),也可以從特定值開始計數(shù),因此定時/計數(shù)器是一個可讀寫的寄存器,使用前一般需要設(shè)置定時/計數(shù)器的初值。(3) 每來一個脈沖,計數(shù)器加1(或減1)。當(dāng)計數(shù)器溢出時,定時/計數(shù)器中斷標(biāo)志有效(定時時間到),向CPU發(fā)出中斷請求,如果中斷處于開放狀態(tài),則CPU將響應(yīng)定時/計數(shù)器的中斷請求。第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 4.3.
21、2定時/計數(shù)器T0、T1結(jié)構(gòu)及控制 增強型MCS-51芯片中的定時/計數(shù)器T0、T1的結(jié)構(gòu)及功能與標(biāo)準(zhǔn)MCS-51芯片16位定時/計數(shù)器T0(高8位是TH0,低8位是TL0)、T1(高8位是TH1,低8位是TL1)完全相同。T0、T1采用加法計數(shù)方式,即每輸入一個計數(shù)脈沖,計數(shù)器加1;在定時方式下,計數(shù)脈沖是系統(tǒng)時鐘信號的12分頻。由于MCS-51單片機一個機器周期包含12個時鐘周期,因此在定時方式下,定時/計數(shù)器實際上就是機器周期的計數(shù)器(對于“6時鐘/機器周期”芯片來說,在定時方式下,計數(shù)脈沖是系統(tǒng)時鐘信號的6分頻,還是機器周期計數(shù)器)。在計數(shù)方式下,定時/計數(shù)器T0的計數(shù)脈沖來自P3.4
22、引腳,定時/計數(shù)器T1的計數(shù)脈沖來自P3.5引腳。MCS-51 CPU在每個機器周期的S5P2相檢測P3.4、P3.5引腳的電平狀態(tài),如果前一個機器周期采樣值為高電平,而后一個機器周期采樣值為低電平,則計數(shù)器加1,在下一機器周期的S3P1相后,更新定時/計數(shù)器TH、TL的值。 在MCS-51中,與定時/計數(shù)器T0、T1工作方式有關(guān)的寄存器為TMOD和TCON。其中TMOD控制定時/計數(shù)器T0、T1的工作方式,而TCON控制定時/計數(shù)器的啟動方式、禁止/允許定時中斷。 (1) (1) 工作方式寄存器TMOD 定時/計數(shù)器工作方式控制字寄存器TMOD各位含義如圖4-6所示。 圖4-6 TMOD寄存
23、器各位含義 1. 定時定時/計數(shù)器的控制計數(shù)器的控制l M1、M0用于選擇定時/計數(shù)器的工作方式,具體情況如表4-1所示。表4-1 定時/計數(shù)器工作方式M1 M0工作方式說明00方式0(不推薦)13位定時/計數(shù)器,主要是為了與Intel公司早期的MCS-48系列兼容,由TL0的低5位和TH0(8位)構(gòu)成,由于裝入初值容易出錯,不推薦使用方式0。01方式1(常用)16位定時/計數(shù)器。10方式2(常用)自動重裝初值的8位定時/計數(shù)器11方式3定時/計數(shù)器T0可以工作在這一方式,相當(dāng)于兩個獨立的8位定時/計數(shù)器。但T0工作于方式3時,占用了定時/計數(shù)器T1的部分資源,限制了T1的使用范圍(在這種情況
24、下,T1可作為串行口發(fā)送、接收波特率發(fā)生器)。第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 l 定時/計數(shù)方式選擇。當(dāng) 位為0時,計數(shù)脈沖來自CPU內(nèi),計數(shù)脈沖頻率是系統(tǒng)時鐘信號的12分頻(對于“6時鐘/機器周期”芯片來說,計數(shù)脈沖是系統(tǒng)時鐘信號的6分頻),即處于定時方式;當(dāng) 位為1時,計數(shù)脈沖來自P3.4引腳,即處于計數(shù)方式。l GATE定時/計數(shù)器啟動方式控制位。 TC /TC /T/C第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 定時/計數(shù)器啟動控制位,以及定時/計數(shù)器溢出中斷標(biāo)志存放在特殊功能寄存器TCON的高4位,各位含義如圖4-7
25、所示。 圖4-7 TCON寄存器中與定時/計數(shù)器控制有關(guān)的位 (1) (2) 控制字寄存器TCON 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 2. 工作方式工作方式 定時/計數(shù)器T0有四種工作方式(即方式0、方式1、方式2和方式3),主要用于定時和計數(shù);定時/計數(shù)器T1有三種工作方式(即方式0、方式1和方式2),除了定時、計數(shù)外,T1還可作為串行異步通信口的波特率發(fā)生器。值得注意的是初始化時如果錯將定時/計數(shù)器T1置為方式3,則T1將停止工作。 當(dāng)M1M0初始化為01時,定時/計數(shù)器工作于方式1,即計數(shù)長度為16位。 定時/計數(shù)器T0方式1結(jié)構(gòu)如圖4-8所示,計數(shù)
26、器長度為16位,分別由TL0和TH0組成。圖4-8 定時/計數(shù)器T0(T1)方式1結(jié)構(gòu) (1) 方式1(16位定時/計數(shù)器) (“12時鐘/機器周期”模式)(4-1) (“6時鐘/機器周期”模式) (4-2) OSCfMt12216OSCfMt6216在定時時間T確定情況下,定時器初值M可表示為:M= (“12時鐘/機器周期”模式) (4-3)M= (“6時鐘/機器周期”模式) (4-4)在上式中,如果 單位取MHz,則定時時間T單位是us。 TfOSC12216TfOSC6216OSCf如果定時器初值為M,則方式1的定時時間t為: 當(dāng)M1M0初始化為10時,定時/計數(shù)器工作于方式2,是一種自
27、動重裝初值的8位定時/計數(shù)器。 定時/計數(shù)器T0方式2結(jié)構(gòu)如圖4-9所示,除了計數(shù)長度(8位)、自動重裝初值功能外,其他情況與方式1相同。 圖4-9 定時/計數(shù)器T0(T1)方式2結(jié)構(gòu) ( (2) 方式2第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 由于方式2的計數(shù)長度為8位,因此定時時間T與初值M之間關(guān)系為:M= (“12時鐘/機器周期”模式)(4-5)M= (“6時鐘/機器周期”模式) (4-6)TfOSC1228TfOSC628 定時/計數(shù)器T0工作于方式3的結(jié)構(gòu)如圖4-10所示。可見,方式3將定時/計數(shù)器T0分成兩個獨立的8位定時/計數(shù)器(但只有TL0具有定時
28、和計數(shù)功能,而TH0計數(shù)脈沖來自CPU內(nèi)分頻器,不可選擇,只能作為8位定時器使用)。 圖4-10 定時/計數(shù)器T0方式3結(jié)構(gòu) (3) 方式3第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 4.3.3 定時/計數(shù)器T2結(jié)構(gòu)及控制 增強型MCS-51定時/計數(shù)器T2的功能比標(biāo)準(zhǔn)MCS-52系列CPU內(nèi)定時/計數(shù)器T2更強,除了具有下降沿觸發(fā)自動重裝、捕捉、串行口波特率發(fā)生器三種工作方式外,還增加了可編程時鐘輸出、外電平控制向上或向下計數(shù)自動重裝兩種工作模式,即增強型MCS-51芯片內(nèi)的T2具有5種工作方式。 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串
29、行口 在增強型MCS-51中,與T2定時/計數(shù)器有關(guān)的寄存器有:T2CON(定時器T2控制寄存器)、T2MOD(增強型MCS-51新增的定時器T2工作模式寄存器)、TH2、TL2、RCAP2H、RCAP2L(各寄存器字節(jié)地址可參閱第2章“特殊功能寄存器列表”)。其中TH2、TL2分別是定時/計數(shù)器T2的高8位和低8位,TH2和TL2構(gòu)成了16位計數(shù)器;而RCAP2H和RCAP2L構(gòu)成了一個16位寄存器,在自動重裝初值方式下,RCAP2H、RCAP2L分別存放TH2和TL2的重裝初值;在捕捉方式下, 當(dāng)P1.1引腳出現(xiàn)負(fù)跳變( )時,T2計數(shù)器高8位TH2、低8位TL2分別被捕捉到CAP2H、R
30、CAP2L寄存器中。 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 1. 定時定時/計數(shù)器計數(shù)器T2的控制的控制 在標(biāo)準(zhǔn)MCS-52系列中,定時/計數(shù)器T2的工作方式、用途由T2CON寄存器內(nèi)容決定,各位含義如圖4-12所示: 圖4-12 T2CON寄存器各位含義 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 在增強型MCS-51中,T2工作方式還與T2MOD寄存器有關(guān),T2MOD各位含義如圖4-13所示。 圖4-13 T2MOD寄存器各位含義 2/ RLCPRCLK+TCLKTR2T2OEDCEN工作方式及狀態(tài)00100下降沿觸發(fā)重裝方式0
31、0101外部電平控制重裝方式0110X16位捕捉方式1X1XX 串行口方式1、方式3發(fā)送或接收波特率發(fā)生器0X11X時鐘輸出方式XX0XX停止計數(shù) 由T2CON、T2MOD寄存器定義的定時/計數(shù)器T2工作方式如表4-2所示 。表4-2 定時/計數(shù)器T2工作方式第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 2. T2的工作方式的工作方式 (1) 下降沿觸發(fā)自動重裝初值16位定時或計數(shù)器 當(dāng)TCLK、RCLK、 、T20E、DCEN均為0時,定時/計數(shù)器T2是一個下降沿觸發(fā)自動重裝初值的16位定時或計數(shù)器,內(nèi)部結(jié)構(gòu)如圖4-14所示。 2/ RLCP圖4-14 下降沿觸發(fā)自
32、動重裝初值16位定時/計數(shù)器T2結(jié)構(gòu) 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 (2) 外部電平控制重裝方式 當(dāng)TCLK、RCLK、 、T20E、EXEN2為0,而DCEN為1時,定時/計數(shù)器T2是一個外電平控制自動重裝初值的16位定時或計數(shù)器,計數(shù)方向由T2EX(P1.1)引腳電平控制,當(dāng)T2EX(P1.1)引腳為高電平時,T2向上計數(shù)(即加1計數(shù)),溢出時分別將RCAP2L、RCAP2H重裝TL2和TH2,循環(huán)計數(shù);而當(dāng)T2EX(P1.1)引腳為低電平時,T2向下計數(shù)(即減1計數(shù)),溢出時將0FFFFH裝入TH2,TL2(即重裝初值固定為0FFFFH)。T2工
33、作于外電平控制自動重裝方式下的內(nèi)部結(jié)構(gòu)如圖4-15所示。 2/ RLCP圖4-15 外電平控制重裝方式下的T2結(jié)構(gòu) (3) 捕捉方式 當(dāng)TCLK、RCLK位為0, 位為1時,定時/計數(shù)器T2工作于捕捉方式,內(nèi)部結(jié)構(gòu)如圖4-16所示。 2/ RLCP圖4-16 定時/計數(shù)器T2的捕捉方式 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 (4) 可編程時鐘輸出方式 當(dāng)T2MOD寄存器T2OE位為1,且T2CON寄存器 位為0時,T2工作于可編程時鐘輸出方式,T2溢出信號自動觸發(fā)T2(P1.0)引腳狀態(tài)翻轉(zhuǎn),從P1.0引腳輸出頻率可調(diào)、精度很高的方波信號;同時使RCAP2L、
34、RCAP2H寄存器內(nèi)容裝入TL2和TH2寄存器中,重新計數(shù),以便獲得準(zhǔn)確的溢出信號。T2工作于時鐘輸出方式的結(jié)構(gòu)如圖4-17所示。 2/TC圖4-17 時鐘輸出方式下的定時器T2結(jié)構(gòu) (5) 串行口波特率發(fā)生器 當(dāng)TCLK或RCLK位為1時,定時器T2作為串行口方式1、方式3發(fā)送或接收波特率發(fā)生器(在這種情況下, 位沒有意義,可以是0或1),內(nèi)部結(jié)構(gòu)如圖4-18所示。 2/ RLCP圖4-18 T2作為串行口波特率發(fā)生器的結(jié)構(gòu) 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 4.3.4 定時/計數(shù)器初始化及應(yīng)用 (1) 確定定時/計數(shù)器工作方式,計算定時/計數(shù)器初值M。
35、 (2) 初值M送定時/計數(shù)器高、低位(即TH和TL)。 (3) 初始化TMOD寄存器。 (4) 如果允許定時器溢出中斷,則還需初始化定時/計數(shù)器中斷優(yōu)先級(即需要設(shè)置IPH及IP)、禁止/允許定時/計數(shù)器中斷(即需要設(shè)置IE),并啟動。 可如下順序初始化定時/計數(shù)器:第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 4.4 串行通信系統(tǒng) 4.4.1 串行通信概念 4.4.2 增強型MCS-51串行通信口控制及初始化 4.4.3 串行口工作方式及應(yīng)用 4.4.4幀錯誤檢測及應(yīng)用 4.4.5多機通信及地址自動識別技術(shù) 4.4.6 RS-232C串行接口標(biāo)準(zhǔn)及應(yīng)用 第第4章章
36、 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 4.4.1 串行通信概念 CPU與外設(shè)之間信息交換過程稱為通信,根據(jù)CPU與外設(shè)之間連線結(jié)構(gòu)、數(shù)據(jù)發(fā)送方式的不同,可將通訊分為并行通信和串行通信兩種基本方式。 在并行通信方式中,數(shù)據(jù)各位同時傳送,如圖4-19(a)所示。 (a)并行通信 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 而在串行通信方式中,數(shù)據(jù)按位逐一傳送,如圖4-19(b)所示。 (b) 串行通信 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 1. 串行通信的種類串行通信的種類 根據(jù)數(shù)據(jù)傳輸方式的不同,可將串行通信分
37、為同步通信和異步通信兩種。 同步通信是一種數(shù)據(jù)連續(xù)傳輸?shù)拇型ㄐ欧绞?。通信時,發(fā)送方把需要發(fā)送的多個字節(jié)數(shù)據(jù)和校驗信息連接起來,組成數(shù)據(jù)塊。發(fā)送時,發(fā)送方只需在數(shù)據(jù)塊前插入12個特殊的同步字符,然后按特定速率逐位輸出(發(fā)送)數(shù)據(jù)塊內(nèi)的各位數(shù)據(jù)。接收方在接收到特定的同步字符后,也按相同速率接收數(shù)據(jù)塊內(nèi)的各位數(shù)據(jù)。 典型的同步通信數(shù)據(jù)幀格式如下: 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 異步通信的特點是每次只傳送一個字,每個字由起始位(規(guī)定為0電平)、數(shù)據(jù)位、奇偶校驗位、停止位(規(guī)定為1電平)組成,典型的異步通信數(shù)據(jù)幀格式如下所示: 第第4章章 中斷控制、定時中斷控
38、制、定時/計數(shù)器與串行口計數(shù)器與串行口 2. 波特率波特率 在串行通信系統(tǒng)中常用波特率來衡量通信的快慢,含義是每秒中傳送的二進(jìn)制數(shù)碼的位數(shù),單位是位/秒(b/s或Kb/s),簡稱“波特”。例如,兩個異步串行通信設(shè)備之間每秒鐘傳送的信息量是240字節(jié),如果一幀數(shù)據(jù)包含10位(1個起始位、8個數(shù)據(jù)位和1個停止位),則發(fā)送、接收波特率為:240B/s10位=2400 b/s=2400波特一般異步通信波特率為1109600,而同步通信波特率在56Kb以上。 3. 串行通信數(shù)據(jù)傳輸方向串行通信數(shù)據(jù)傳輸方向 根據(jù)串行通信數(shù)據(jù)傳輸方向,可將串行通信系統(tǒng)分為:單工方式、半雙工方式和全雙工方式,如圖4-20所示
39、。 圖4-20 數(shù)據(jù)傳輸方式 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 4. 串行通訊接口種類串行通訊接口種類 根據(jù)串行通訊格式及約定(如同步方式、通訊速率、信號電平等)不同,形成了許多串行通訊接口標(biāo)準(zhǔn),如常見的RS-232、RS-422、RS-485、IEEE1394、I2C、SPI(同步通信)、USB(通用串行總線接口)、CAN總線接口等。下面結(jié)合增強型MCS-51介紹UART接口及使用規(guī)則。第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 4.4.2 增強型MCS-51串行通信口控制及初始化 8XC5X、8XC5XX2系列單片機芯片內(nèi)置
40、的增強型全雙工串行接口部件UART除了具備標(biāo)準(zhǔn)MCS-51串行接口部件UART功能外,還具有幀錯誤偵測和自動地址識別功能。 MCS-51內(nèi)置了一個可編程的、全雙工通用異步串行通信接口部件UART,內(nèi)部結(jié)構(gòu)如圖4-21所示。主要由兩個物理上完全獨立的串行數(shù)據(jù)接收緩沖器和串行數(shù)據(jù)發(fā)送緩沖器、接收控制器(包括輸入移位寄存器)、發(fā)送控制器(包括發(fā)送門)、接收信號線RXD(P3.0)引腳和發(fā)送信號線TXD(P3.1)引腳組成。 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 圖4-21 MCS-51串行口結(jié)構(gòu) 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口
41、 1. 串行口控制寄存器串行口控制寄存器SCON 串行口控制寄存器SCON各位含義如圖4-22所示。 圖4-22 SCON各位含義 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 SM0 SM1工作方式說明波特率0 0方式0(擴展I/O口方式)移位輸入/輸出(用于擴展I/O引腳,不能用于串行通訊)輸入/輸出移位脈沖為(對“12時鐘/機器周期”,n=12;對于“6時鐘/機器周期”,n=6)0 1方式1(常用)波特率可變的8位異步串行通信方式或1 0方式2(不常用)波特率固定的9位異步串行通信方式(對“12時鐘/機器周期”,n=4;對于“6時鐘/機器周期”,n=2)1 1方
42、式3(常用)波特率可變的9位異步串行通信方式或162T 溢出率SMOD2321T溢出率nfOSCSMOD2321T溢出率nfOSC162T 溢出率表4-4 串行口工作方式 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 REN是串行接收控制位,當(dāng)REN為1時,允許串行口接收數(shù)據(jù);反之,當(dāng)REN為0時,禁止串行口接收數(shù)據(jù)。因此,可通過軟件使REN置1或清0,允許或禁止串行口接收數(shù)據(jù)。 TB8是發(fā)送數(shù)據(jù)的第9位。在方式2、方式3中,需要發(fā)送9位數(shù)據(jù),待發(fā)送的低8位數(shù)據(jù)(b7b0)存放在發(fā)送數(shù)據(jù)緩沖器SBUF中,而第9位(即b8)存放在SCON寄存器的TB8位。在“點對點”通
43、訊系統(tǒng)中,TB8可以是實際意義上的數(shù)據(jù),也可以作為發(fā)送數(shù)據(jù)的奇偶標(biāo)志位。而在多機通信中,TB8位是“地址/數(shù)據(jù)”幀標(biāo)志。 RB8是接收數(shù)據(jù)的第9位。在方式2、方式3中,需要接收9位數(shù)據(jù),其中低8位數(shù)據(jù)(b7b0)存放在接收數(shù)據(jù)緩沖器SBUF中,第9位(即b8)數(shù)據(jù)存放在SCON寄存器的RB8中。同樣,RB8可以是實際意義上的數(shù)據(jù),也可以是發(fā)送數(shù)據(jù)的奇偶標(biāo)志位。 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 TI是發(fā)送結(jié)束中斷標(biāo)志。初始化串行口后,在TI位為0情況下,將發(fā)送數(shù)據(jù)寫入“發(fā)送緩沖器”,將立即啟動串行發(fā)送過程:自動在數(shù)據(jù)位前插入起始位,在數(shù)據(jù)位后插入停止位,組
44、成發(fā)送數(shù)據(jù)幀;并按設(shè)定波特率依次將起始位、數(shù)據(jù)位(從b0開始)、停止位輸出到發(fā)送引腳TXD(P3.1)上,當(dāng)發(fā)送完最后一個數(shù)據(jù)位(在8位方式中,最后一位數(shù)據(jù)是SBUF中的b7位;在9位方式中,最后一位數(shù)據(jù)是SCON寄存器的TB8位)時(即開始發(fā)送停止位)TI自動置1,表明當(dāng)前數(shù)據(jù)幀已發(fā)送完畢。 RI是接收有效中斷標(biāo)志。當(dāng)接收了一幀數(shù)據(jù)后,RI自動置1,指示CPU可以讀取存放在接收緩沖器SBUF中的數(shù)據(jù)。 SM2是多機通信控制位。在方式0中,SM2位必須為0;在方式2、3中,當(dāng)SM2位為1時,具有選擇接收功能,當(dāng)且僅當(dāng)?shù)?位數(shù)據(jù)(RB8)為1時,接收中斷RI有效,這樣通過SM2位,即可實現(xiàn)多機通
45、信;而在方式1中,當(dāng)SM2位為1時,必須接收到有效的停止位。 2. 波特率倍增選擇波特率倍增選擇 在增強型MCS-51系列芯片中,串行口波特率與工作方式有關(guān),如表4-4所示。對于方式0來說,串行輸出/輸入移位脈沖頻率固定為系統(tǒng)時鐘信號頻率的n分頻(對于“12時鐘/機器周期”來說,n=12;對于“6時鐘/機器周期”來說,n=6),不可調(diào)。在方式1、3中,可以選擇定時器T1溢出率的16或32分頻作為串行口發(fā)送、接收波特率外,也選擇定時器T2溢出率的的16分頻作為串行口發(fā)送或接收波特率,如圖4-18所示。即當(dāng)使用T1溢出率作串行口方式1、3發(fā)送或接收波特率發(fā)生器輸入信號時,如果SMOD位為1,則波特
46、率是SMOD為0時的兩倍(正因如此,PCON寄存器中的SMOD位被稱為波特率倍增位)。而在方式2中,波特率與時鐘信號頻率fOSC和電源控制寄存器PCON的SMOD位有關(guān),同樣不可調(diào)。對于“12時鐘/機器周期”來說,波特率為系統(tǒng)時鐘信號頻率fOSC的1/64或1/32;對于“6時鐘/機器周期”來說,波特率為系統(tǒng)時鐘信號頻率fOSC的1/32或1/16。 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 3. 波特率選擇波特率選擇 方式1、方式3波特率與定時器T1溢出率、SMOD1位關(guān)系如下:波特率 = = 12321SMODT 溢出率SMOD13221溢出率T而T1溢出率倒
47、數(shù)就等于定時時間t,因此定時T1重裝初值C與波特率之間關(guān)系為:C=(T1定時器工作在12分頻狀態(tài))(4-8)C=(T1定時器工作在6分頻狀態(tài))(4-9)為了保證不同串行通信設(shè)備之間數(shù)據(jù)可靠傳輸,波特率一般要選擇標(biāo)準(zhǔn)值,如1200、2400、4800等,如表4-5所示。 OSCf波特率3842218SMODOSCf波特率1922218SMOD第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 4.4.3 串行口工作方式及應(yīng)用 1. 方式方式0 當(dāng)串行口工作于方式0時,串行口本身相當(dāng)于“并入串出”(發(fā)送狀態(tài))或“串入并出”(接收狀態(tài))的移位寄存器。串行移位脈沖CLOCK從TXD
48、 (P3.1)引腳輸出,頻率是系統(tǒng)時鐘頻率fOSC的12 分頻(對于8XC5XX2芯片來說,在“6時鐘/機器周期”模式下,移位脈沖頻率是時鐘頻率fOSC的6分頻);而8位串行數(shù)據(jù)b0b7依次從RDX (P3.0)引腳輸出或輸入。 串行口方式0操作時序如圖4-X所示,對于串行輸出來說,采用“低電平送數(shù)據(jù),上升沿鎖存”方式,即在移位脈沖上升沿串行輸出數(shù)據(jù)穩(wěn)定出現(xiàn)在RXD引腳,外部“串入并出”芯片可利用TXD引腳移位脈沖的上升沿鎖存數(shù)據(jù);對于串行輸入來說,MCS-51MPU串行口在移位脈沖的上升沿讀RDX引腳的數(shù)據(jù),即外部“并入串出”芯片必須在移位脈沖的上升沿將數(shù)據(jù)送到RXD引腳。 第第4章章 中斷
49、控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 當(dāng)使用74LS164芯片擴展輸出口時,MCS-51 芯片RXD引腳接74LS164芯片的串行數(shù)據(jù)輸入端,TXD引腳接74LS164芯片的移位脈沖輸入端CLK,如圖4-24(a)所示。 (a) 通過74LS164串入并出芯片擴展輸出口 QB1QC2QD3QE4QF5QG6QH7QA15SDO9SC L R10SR C L K11R C L K12OE13SDI14U274HC 595R XDT XDP1.7QB1QC2QD3QE4QF5QG6QH7QA15SDO9SC L R10SR C L K11R C L K12OE13SDI14U37
50、4HC 595串 行 數(shù) 據(jù) 輸 出移 位 脈 沖8XC 5XU1VC C(b) 通過74HC595串入并出芯片擴展輸出口 當(dāng)使用74HC595芯片擴展輸出口時,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對邊緣有嚴(yán)格要求,當(dāng)CPU I/O驅(qū)動能力不足時,可在CPU I/O引腳與74HC595芯片間加驅(qū)動器
51、,如CD40106芯片等)。 SCLR第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 在“并行輸入串行輸出”芯片,如74LS165、74HC597配合下,即可通過串行口方式0擴展MCS-51的輸入引腳,其中MCS-51的RXD引腳接74LS165芯片的串行數(shù)據(jù)輸出端,TXD引腳接74LS165芯片的移位脈沖CLK,如圖4-25所示。 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 2. 方式方式1 當(dāng)SM0、SM1為01時,串行口工作在方式1,是8位的異步串行通信口,其中TXD是發(fā)送端,RXD是接收端。發(fā)送或接收一幀信息包括1位起始位(固定為0)
52、、8位串行數(shù)據(jù)(低位在前,高位在后)和一位停止位(固定為1)共10位,一幀數(shù)據(jù)格式如下所示,波特率與定時器T1(或T2)溢出率、SMOD1位有關(guān)(可變)。第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 方式1的發(fā)送過程如下: 在TI為0的情況下(表示串行口發(fā)送控制電路處于空閑狀態(tài)),任何寫串行數(shù)據(jù)輸出緩沖器SBUF指令(如MOV SBUF, A)均會觸發(fā)串行發(fā)送過程:MCS-51 串行口自動在8個串行數(shù)據(jù)位的前、后分別插入一個起始位(0)和一個停止位(1),構(gòu)成10位信息幀,然后按設(shè)定的波特率依次輸出起始位(0)、8個數(shù)據(jù)位(順序為b0b7)和停止位(1)。當(dāng)8位數(shù)據(jù)(
53、即b7位)發(fā)送結(jié)束后(即開始發(fā)送停止位)時,串行口自動將發(fā)送結(jié)束標(biāo)志TI置1,表示發(fā)送緩沖區(qū)內(nèi)容已發(fā)送完畢。這樣執(zhí)行了寫SBUF寄存器操作后,可通過查詢TI標(biāo)志來確定發(fā)送過程是否已完成。當(dāng)然,在中斷處于開放狀態(tài)下,TI有效時,將產(chǎn)生串行中斷請求。 方式1的接收過程如下: 在接收中斷標(biāo)志RI為0(即串行數(shù)據(jù)輸入緩沖器SBUF處于空閑狀態(tài))情況下,當(dāng)REN位為1時,串行口即處于接收狀態(tài)。在接收狀態(tài)下,存在兩個定時信號:一個是移位脈沖信號(即發(fā)送波特率);另一個是RXD引腳電平狀態(tài)檢測信號(也稱為數(shù)據(jù)檢測脈沖),它的頻率是移位脈沖的16倍。 進(jìn)入接收狀態(tài)后,串行口便按數(shù)據(jù)檢測脈沖速率不斷檢測RXD引
54、腳的電平狀態(tài),當(dāng)發(fā)現(xiàn)RXD引腳由高電平變?yōu)榈碗娖胶蟊砻靼l(fā)送端開始發(fā)送起始位(0),啟動接收過程,并復(fù)位接收波特率發(fā)生器,使數(shù)據(jù)檢測脈沖與接收移位脈沖保持同步,然后按設(shè)定波特率順序接收數(shù)據(jù)位和停止位。 當(dāng)接收完一幀信息(即接收到停止位)后,如果RI位為0,便將“接收移位寄存器”中的內(nèi)容裝入串行數(shù)據(jù)輸入緩沖寄存器SBUF中,停止位裝入SCON寄存器的RB8位中,并將串行接收中斷標(biāo)志RI置1。第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 3. 方式方式2和方式和方式3 當(dāng)SM0、SM1為10時,串行口工作于方式2;而當(dāng)SM0、SM1為11時,串行口工作于方式3。方式2和方式
55、3都是9位異步串行通信口,惟一區(qū)別是方式2的波特率固定為時鐘頻率的32或64分頻,不可調(diào),因此不常用(原因是與其他串行通信設(shè)備連接困難)。而方式3的波特率與T1(或T2)定時器的溢出率、電源控制寄存器PCON的SMOD1位有關(guān),可調(diào)。選擇不同的初值或晶振頻率,即可獲得常用的波特率,因此方式3較常用。下面以方式3為例,介紹串行口9位異步通信過程。 其實方式3與方式1之間的區(qū)別不大,惟一的不同是:方式3是9位的異步串行通信方式,一幀信息為11位,由一位起始位(0)、9位串行數(shù)據(jù)、一位停止位(1)組成,信息幀結(jié)構(gòu)如下所示:第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 4.4
56、.4幀錯誤檢測及應(yīng)用 在方式2、3中,收到第9位(即RB8)數(shù)據(jù)后,只要滿足“SM2=0”或“SM2=1,RB8=1”接收條件,RI即有效,沒有檢測停止位,因此可能出現(xiàn)停止位丟失現(xiàn)象。為此,增強型UART口通過檢測“停止位”的有無來判別方式2、3下串行接收是否正常,這就是所謂的“幀錯誤檢測”功能。在增強型UART口中,SCON寄存器的b7位具有SM0/FE(Fram Error)雙重功能(由PCON寄存器的b6,即SMOD0位控制:當(dāng)SMOD0位為0時,SCON寄存器的b7位的含義是SM0;而當(dāng)SMOD0位為1時,SCON寄存器的b7位的含義是FE)。當(dāng)接收不到有效停止位時,SCON寄存器的b
57、7位(即FE)置1。當(dāng)FE為1時,表示接收到的數(shù)據(jù)不可靠。 4.4.5多機通信及地址自動識別技術(shù) 1. 標(biāo)準(zhǔn)標(biāo)準(zhǔn)MCS-51多機通信過程多機通信過程 在某些應(yīng)用系統(tǒng)中,常需要多個單片機芯片協(xié)同工作,這就涉及到多機通信問題。MCS-51串行口方式2和方式3具有主從通信功能。在由MCS-51組成的主從式多機通信系統(tǒng)中,只有一臺主機,從機最多為256臺;主機可以與任一從機通信,但從機之間不能直接通信,只能通過主機進(jìn)行。由MCS-51構(gòu)成的多機通信系統(tǒng)如圖4-26所示。 2. 增強型增強型MCS-51新增的地址自動識別新增的地址自動識別 利用自動地址識別功能可使主機通過發(fā)送特定地址與一個或多個從機進(jìn)行
58、通訊,如通過廣播地址和所有從機通訊。啟動地址自動識別功能時,從機的SM2位必須為1,且還需要用到兩個特殊功能寄存器SADDR(從機地址寄存器)和SADEN(從機地址屏蔽寄存器),每個從機有惟一的地址屏蔽寄存器SADEN,用來確認(rèn)SADDR 中的那些位是有用的那些位是無用的。自動地址識別結(jié)構(gòu)如圖4-27所示。 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 從圖4-27中看出,采用地址自動識別功能后,有效接收條件是:當(dāng)SM2位為1時,主機發(fā)出的地址(其特征是第9位數(shù)據(jù)為1)與從地址屏蔽碼SADEN按位“與”后等于從機地址寄存器SADDR。這樣主機就可以通過發(fā)出特定地址與單
59、一從機或一組從機通信、通過發(fā)出廣播地址與所有從機通信。 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 3. 總線沖突總線沖突 在圖4-26所示的多機通信系統(tǒng)中,可能會遇到兩個或兩個以上從機同時申請與主機通信(或某一從機正在與主機通信時,另一從需要與主機通信),這就涉及到總線沖突問題。為此,可選擇如下方式之一解決:(1) 主機定時查詢方式。在這一方式中,從機不主動發(fā)送數(shù)據(jù),由主機定時查詢各從機狀態(tài)。優(yōu)點是不占用硬件資源,但從機數(shù)據(jù)有效后,需要等待主機查詢,不能立即上傳。(2) 使用I/O引腳作為總線使用標(biāo)志??臻e時該引腳處于輸入狀態(tài),當(dāng)從機需要與主機通信時,先讀該引腳狀
60、態(tài),當(dāng)引腳為高電平時,表明其他從機沒有使用串行總線,將該引腳置為低電平后,向主機發(fā)送數(shù)據(jù),通訊結(jié)束后恢復(fù)總線使用標(biāo)志I/O引腳的輸入狀態(tài)。 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 4.4.6 RS-232C串行接口標(biāo)準(zhǔn)及應(yīng)用 RS-232C標(biāo)準(zhǔn)規(guī)定了在串行通信中數(shù)據(jù)終端設(shè)備(簡稱DTE,如個人計算機)和數(shù)據(jù)通信設(shè)備(簡稱DCE,如調(diào)制解調(diào)器)間物理連接線路的機械、電氣特性,以及通信格式和約定,是異步串行通信中應(yīng)用最廣的總線標(biāo)準(zhǔn)。 第第4章章 中斷控制、定時中斷控制、定時/計數(shù)器與串行口計數(shù)器與串行口 1. RS-232C的引腳功能的引腳功能 完整的RS-232C
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年高端服裝品牌授權(quán)銷售合同屬性
- 2024年離婚財務(wù)安排標(biāo)準(zhǔn)合同樣本版B版
- 2024年資質(zhì)共用合作框架合同版B版
- 2025版軟件許可合同詳細(xì)規(guī)定3篇
- 2024年度人防設(shè)備更新改造項目合同范本2篇
- 2025年度安全責(zé)任事故調(diào)查與分析合同3篇
- 二零二五年廠房租賃及配套設(shè)施轉(zhuǎn)讓合同樣本6篇
- 2024年融資租賃反擔(dān)保服務(wù)合同(新能源領(lǐng)域)3篇
- 2024年苗木種植與銷售合同范本3篇
- 2024年羊毛購銷質(zhì)量檢驗檢疫合同
- DL∕T 2558-2022 循環(huán)流化床鍋爐基本名詞術(shù)語
- 教師進(jìn)企業(yè)實踐日志
- 抵押物變更協(xié)議范本版
- 煤矸石充填塌陷區(qū)復(fù)墾技術(shù)規(guī)程
- TSG-T7001-2023電梯監(jiān)督檢驗和定期檢驗規(guī)則宣貫解讀
- 河南省平頂山市魯山縣2023-2024學(xué)年二年級上學(xué)期期末語文試卷
- 中原文化(歷史篇)智慧樹知到期末考試答案2024年
- 金蝶軟件旗艦版月底結(jié)賬作業(yè)流程操作
- (正式版)JBT 14762-2024 電動摩托車和電動輕便摩托車用閥控式鉛酸蓄電池
- 勞動教育智慧樹知到期末考試答案2024年
- 大疆慧飛無人機考試題庫附有答案
評論
0/150
提交評論