版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
串行口接收中斷標(biāo)志第一頁,共一百五十一頁,2022年,8月28日5.1I/O概述5.1.1I/O接口電路的作用一個計算機系統(tǒng)的組成,除了CPU、存儲器外,還必須有外部設(shè)備。計算機通過輸入/輸出設(shè)備和外界進行通信。計算機所用的數(shù)據(jù)以及現(xiàn)場采集的各種信息都要通過輸入設(shè)備送到計算機;而計算的結(jié)果和計算機產(chǎn)生的各種控制信號又需通過輸出設(shè)備輸出到外部設(shè)備。第二頁,共一百五十一頁,2022年,8月28日計算機的I/O操作,即CPU和外部設(shè)備之間的數(shù)據(jù)傳送卻十分復(fù)雜。主要表現(xiàn)在以下幾個方面:(1)外部設(shè)備的工作速度與計算機相比要低得多。(2)外部設(shè)備的種類繁多,有機械式、機電式及電子式等等。(3)外部設(shè)備的數(shù)據(jù)信號是多種多樣的,既有電壓信號,也有電流信號;既有數(shù)字量,還有模擬量。(4)外部設(shè)備的數(shù)據(jù)傳送有近距離的,也有遠(yuǎn)距離的;有的使用并行數(shù)據(jù)傳送,而有的則使用串行傳送數(shù)據(jù)。第三頁,共一百五十一頁,2022年,8月28日具體說來,接口電路主要有以下幾項功能:(1)速度協(xié)調(diào)。(2)數(shù)據(jù)鎖存。(3)三態(tài)緩沖。(4)數(shù)據(jù)轉(zhuǎn)換。第四頁,共一百五十一頁,2022年,8月28日5.1.2接口與端口
“接口”一詞是從英文interface翻譯過來的,具有界面、相互聯(lián)系等含義。接口這個術(shù)語在計算機領(lǐng)域中應(yīng)用十分廣泛,本章所講述的接口則特指計算機與外設(shè)之間在數(shù)據(jù)傳送方面的聯(lián)系,其功能主要是通過電路實現(xiàn)的,因此稱之為接口電路,簡稱接口。第五頁,共一百五十一頁,2022年,8月28日5.1.3I/O的編址方式在計算機中,凡需進行讀寫操作的設(shè)備都存在著編址問題。具體說來在計算機中有兩種需要編址的器件:一種是存儲器,另一種就是接口電路。存儲器是對存儲單元進行編址,而接口電路則是對其中的端口進行編址。對端口編址是為I/O操作而進行的,因此也稱為I/O編址。常用的I/O編址有兩種方式:獨立編址方式和統(tǒng)一編址方式。1.獨立編址方式2.統(tǒng)一編址方式第六頁,共一百五十一頁,2022年,8月28日
5.2輸入/輸出傳送方式
5.2.1無條件傳送方式第七頁,共一百五十一頁,2022年,8月28日(1)外設(shè)的工作速度非常快,足以和CPU同步工作。(2)具有常駐的或變化緩慢的數(shù)據(jù)信號的外設(shè)。第八頁,共一百五十一頁,2022年,8月28日5.2.2查詢傳送方式查詢傳送又稱為條件傳送,即數(shù)據(jù)的傳送是有條件的。在輸入/輸出之前,先要檢測外設(shè)的狀態(tài),以了解外設(shè)是否已為數(shù)據(jù)輸入輸出作好了準(zhǔn)備,只有在確認(rèn)外設(shè)已“準(zhǔn)備好”的情況下,CPU才能執(zhí)行數(shù)據(jù)輸入/輸出操作。通常把通過程序?qū)ν庠O(shè)狀態(tài)的檢測稱之為“查詢”第九頁,共一百五十一頁,2022年,8月28日圖5―1查詢方式流程圖第十頁,共一百五十一頁,2022年,8月28日5.2.3中斷傳送方式由于查詢傳送方式為CPU主動要求傳送數(shù)據(jù),而它又不能控制外設(shè)的工作速度,因此只能用等待的方式來解決配合的問題。中斷方式則是在外設(shè)為數(shù)據(jù)傳送作好準(zhǔn)備之后,就向CPU發(fā)出中斷請求信號(相當(dāng)于通知CPU),CPU接收到中斷請求信號之后立即作出響應(yīng),暫停正在執(zhí)行的原程序(主程序),而轉(zhuǎn)去為外設(shè)的數(shù)據(jù)輸入輸出服務(wù),待服務(wù)完之后,程序返回,CPU再繼續(xù)執(zhí)行被中斷的原程序。第十一頁,共一百五十一頁,2022年,8月28日由于CPU的工作速度很快,傳送1次數(shù)據(jù)(包括轉(zhuǎn)入中斷和退出中斷)所需的時間很短。對外設(shè)來講,似乎是對CPU發(fā)出數(shù)據(jù)傳送請求的瞬間,CPU就實現(xiàn)了;對主程序來講,雖然中斷了1個瞬間,但由于時間很短,也不會有什么影響。第十二頁,共一百五十一頁,2022年,8月28日5.3MCS-51單片機的中斷系統(tǒng)5.3.1中斷的概念計算機暫時中止正在執(zhí)行的主程序,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序,并在中斷服務(wù)程序執(zhí)行完了之后能自動回到原主程序處繼續(xù)執(zhí)行,這個過程叫做“中斷”。中斷需要解決兩個主要問題:一是如何從主程序轉(zhuǎn)到中斷服務(wù)程序;二是如何從中斷服務(wù)程序返回主程序。第十三頁,共一百五十一頁,2022年,8月28日大體說來,采用中斷系統(tǒng)改善了計算機的性能,主要表現(xiàn)在以下幾個方面:(1)有效地解決了快速CPU與慢速外設(shè)之間的矛盾,可使CPU與外設(shè)并行工作,大大提高了工作效率。(2)可以及時處理控制系統(tǒng)中許多隨機產(chǎn)生的參數(shù)與信息,即計算機具有實時處理的能力,從而提高了控制系統(tǒng)的性能。(3)使系統(tǒng)具備了處理故障的能力,提高了系統(tǒng)自身的可靠性。第十四頁,共一百五十一頁,2022年,8月28日5.3.2中斷源所謂中斷源就是引起中斷的事件,亦即是什么部件要求中斷。對于各種計算機來說,其中斷源的允許數(shù)目是不一樣的,例如Z80允許128個中斷源(不包括非屏蔽中斷),而8086/8088則允許256個中斷源。MCS-51單片機相對來說較為簡單,只提供了5個中斷源:2個外部中斷請求和個片內(nèi)定時器/計數(shù)器T0和T1的溢出中斷請求TF0和TF1及串行口中斷請求TI或RI(合為一個中斷源)。第十五頁,共一百五十一頁,2022年,8月28日MCS-51單片機5個中斷源的中斷請求信號分別鎖存在特殊功能寄存器TCON和SCON中:
(1)TCON為定時/計數(shù)器控制寄存器,字節(jié)地址為88H,其中鎖存的中斷源請求標(biāo)志如表5―1所示。表5―1TCON鎖存的中斷源第十六頁,共一百五十一頁,2022年,8月28日(2)SCON串行口控制寄存器,字節(jié)地址為98H。SCON的低2位鎖存串行口的接收中斷和發(fā)送中斷標(biāo)志,其格式如表5―2所示。表5―2SCON鎖存的中斷源第十七頁,共一百五十一頁,2022年,8月28日第十八頁,共一百五十一頁,2022年,8月28日RI:串行口接收中斷標(biāo)志。若串行口接收器允許接收并以方式0工作,則每當(dāng)接收到第8位數(shù)據(jù)時置位RI;若以方式1、2、3工作,且SM2=0時,則每當(dāng)接收器接收到停止位的中間時置位RI;當(dāng)串行口以方式2或方式3工作,且SM2=1時,僅當(dāng)接收到的第9位數(shù)據(jù)RB8為1后,同時還要接收到停止位的中間時置位RI。RI為1表示串行口接收器正向CPU申請中斷,同樣RI必須由用戶在中斷服務(wù)程序中清0。8031復(fù)位后,SCON也被清0。第十九頁,共一百五十一頁,2022年,8月28日5.3.3中斷的優(yōu)先級如果正在執(zhí)行主程序時只有1個中斷源請求中斷,而這時CPU又是對中斷開放的,那么這個中斷立即得到響應(yīng)。然而由于中斷是隨機產(chǎn)生的,中斷源一般又不止1個,因此往往會出現(xiàn)這樣的情況:幾個中斷源同時請求中斷;或者當(dāng)某一個中斷正在響應(yīng)中(即正在執(zhí)行該中斷源的中斷服務(wù)程序),又有其它的中斷源請求中斷,這時中斷系統(tǒng)應(yīng)如何處理呢?在一般情況下,首先把各個中斷源分成若干個優(yōu)先級,然后再按如下原則進行處理:第二十頁,共一百五十一頁,2022年,8月28日(1)不同級的中斷源同時申請中斷時——先高后低;(2)同級的中斷源同時申請中斷時——事先規(guī)定;(3)處理低級中斷又收到高級中斷請求時——停低轉(zhuǎn)高;(4)處理高級中斷又收到低級中斷請求時——高不理低。MCS-51單片機的中斷系統(tǒng)對優(yōu)先級的控制比較簡單,只規(guī)定了兩個中斷優(yōu)先級,對于每一個中斷源均可編程為高優(yōu)先級中斷或低優(yōu)先級中斷。在同1個優(yōu)先級中,對5個中斷源的優(yōu)先次序安排如下:最高優(yōu)先級最低優(yōu)先級第二十一頁,共一百五十一頁,2022年,8月28日外部中斷0(IE0)定時器/計數(shù)器T0溢出中斷(TF0)外部中斷1(IE1)定時器/計數(shù)器T1溢出中斷(TF1)串行口中斷(RI+TI)MCS-51單片機中有1個中斷優(yōu)先級寄存器IP,字節(jié)地址為B8H。對于每1個中斷源,均可通過對IP的設(shè)置來確定其優(yōu)先等級,置1為高優(yōu)先級,清0為低優(yōu)先級。IP寄存器的格式如表5―3所示。第二十二頁,共一百五十一頁,2022年,8月28日表5―3中斷優(yōu)先級寄存器IP的格式第二十三頁,共一百五十一頁,2022年,8月28日其中:PX0:外部中斷0優(yōu)先級控制位。PT0:定時器0中斷優(yōu)先級控制位。PX1:外部中斷1優(yōu)先級控制位。PT1:定時器1中斷優(yōu)先級控制位。PS:串行口中斷優(yōu)先級控制位。上面優(yōu)先級控制位規(guī)定1為高優(yōu)先級,0為低優(yōu)先級。第二十四頁,共一百五十一頁,2022年,8月28日5.3.4中斷響應(yīng)的條件、過程與時間1.中斷響應(yīng)的條件單片機響應(yīng)中斷的條件為中斷源有請求(中斷允許寄存器IE相應(yīng)位置1),且CPU開中斷(即EA=1)。這樣,在每個機器周期內(nèi),單片機對所有中斷源都進行順序檢測,并可在任1個周期的S6期間,找到所有有效的中斷請求,還對其優(yōu)先級進行排隊。但是,必須滿足下列條件:第二十五頁,共一百五十一頁,2022年,8月28日(1)無同級或高級中斷正在服務(wù);(2)現(xiàn)行指令執(zhí)行到最后1個機器周期且已結(jié)束;(3)若現(xiàn)行指令為RETI或需訪問特殊功能寄存器IE或IP的指令時,執(zhí)行完該指令且緊隨其后的另1條指令也已執(zhí)行完。第二十六頁,共一百五十一頁,2022年,8月28日2.中斷響應(yīng)過程單片機一旦響應(yīng)中斷,首先對相應(yīng)的優(yōu)先級有效觸發(fā)器置位。然后執(zhí)行1條由硬件產(chǎn)生的子程序調(diào)用指令,把斷點地址壓入堆棧,再把與各中斷源對應(yīng)的中斷服務(wù)程序的入口地址送入程序計數(shù)器PC,同時清除中斷請求標(biāo)志(串行口中斷和外部電平觸發(fā)中斷除外),從而程序便轉(zhuǎn)移到中斷服務(wù)程序。以上過程均由中斷系統(tǒng)自動完成。第二十七頁,共一百五十一頁,2022年,8月28日各中斷源所對應(yīng)的中斷服務(wù)程序的入口地址如下:中斷源入口地址外部中斷0003H定時器T0中斷000BH外部中斷0013H定時器T1中斷001BH串行口中斷0023H第二十八頁,共一百五十一頁,2022年,8月28日CPU從上面相應(yīng)的地址開始執(zhí)行中斷服務(wù)程序直到遇到1條RETI指令為止。RETI指令表示中斷服務(wù)程序的結(jié)束。CPU執(zhí)行該指令,一方面清除中斷響應(yīng)時所置位的優(yōu)先級有效觸發(fā)器;另一方面從堆棧棧頂彈出斷點地址送入程序計數(shù)器PC,從而返回主程序。若用戶在中斷服務(wù)程序的開始安排了保護現(xiàn)場指令(一般均為相應(yīng)寄存器內(nèi)容入棧或更換工作寄存器區(qū)),則在RETI指令前應(yīng)有恢復(fù)現(xiàn)場指令(相應(yīng)寄存器內(nèi)容出?;驌Q回原工作寄存器區(qū))。第二十九頁,共一百五十一頁,2022年,8月28日3.中斷響應(yīng)時間所謂中斷響應(yīng)時間是指從查詢中斷請求標(biāo)志位到轉(zhuǎn)入中斷服務(wù)程序入口地址所需的機器周期數(shù)(對單一中斷源而言)。響應(yīng)中斷最短需要3個機器周期。若CPU查詢中斷請求標(biāo)志的周期正好是執(zhí)行1條指令的最后1個機器周期,則不需等待就可以響應(yīng)。而響應(yīng)中斷執(zhí)行1條長調(diào)用指令需要2個機器周期,加上查詢的1個機器周期,一共需要3個機器周期才開始執(zhí)行中斷服務(wù)程序。第三十頁,共一百五十一頁,2022年,8月28日5.3.5MCS-51單片機的中斷系統(tǒng)MCS-51系列單片機的中斷系統(tǒng)屬于8位單片機中功能較強的1種中斷系統(tǒng),它可以提供5個中斷源,每個中斷源有兩個中斷優(yōu)先級別可供選擇,可實現(xiàn)兩級中斷服務(wù)程序嵌套。此外,所有中斷均可由軟件設(shè)定為允許中斷或禁止中斷,也就是說,用戶可以用關(guān)中斷指令(或復(fù)位)來屏蔽所有的中斷請求,也可以用開中斷指令使CPU接受中斷請求。MCS-51單片機的中斷系統(tǒng)結(jié)構(gòu)示意圖如圖5―2所示。第三十一頁,共一百五十一頁,2022年,8月28日圖5―2MCS-51的中斷系統(tǒng)第三十二頁,共一百五十一頁,2022年,8月28日5.3.6外部中斷及中斷請求的撤除1.外部中斷第三十三頁,共一百五十一頁,2022年,8月28日2.中斷請求的撤除CPU響應(yīng)中斷請求后,在中斷返回(執(zhí)行RETI指令)前,必須撤除請求,否則會錯誤地再一次引起中斷過程。如前所述,對于定時器T0與T1的中斷請求及邊沿觸發(fā)方式的外部中斷0和1來說,CPU在響應(yīng)中斷后用硬件清除了相應(yīng)的中斷請求標(biāo)志TF0、TF1、IE0與IE1,即自動撤除了中斷請求。
第三十四頁,共一百五十一頁,2022年,8月28日圖5―3外部中斷請求(電平方式)的撤除第三十五頁,共一百五十一頁,2022年,8月28日5.3.7中斷程序舉例在中斷服務(wù)程序編程時,首先要對中斷系統(tǒng)進行初始化,也就是對幾個特殊功能寄存器的有關(guān)控制位進行賦值。具體來說,就是要完成下列工作:(1)開中斷和允許中斷源中斷;(2)確定各中斷源的優(yōu)先級;(3)若是外部中斷,則應(yīng)規(guī)定是電平觸發(fā)還是邊沿觸發(fā)。第三十六頁,共一百五十一頁,2022年,8月28日例1:若規(guī)定外部中斷0為電平觸發(fā)方式,高優(yōu)先級,試寫出有關(guān)的初始化程序。解:一般可采用位操作指令來實現(xiàn):SETBEA;開中斷SETBEX0;允許外中斷0中斷SETBPX0;外中斷0定為高優(yōu)先級CLRIT0;電平觸發(fā)第三十七頁,共一百五十一頁,2022年,8月28日例2:若規(guī)定外部中斷1為邊沿觸發(fā)方式,低優(yōu)先級,在中斷服務(wù)程序中將寄存器B的內(nèi)容左環(huán)移一位,B的初值設(shè)為01H。試編寫主程序與中斷服務(wù)程序。解:程序如下ORG0000H;主程序LJMPMAIN;主程序轉(zhuǎn)至MAIN處ORG0013H;中斷服務(wù)程序LJMPINT;中斷服務(wù)程序轉(zhuǎn)至INT處第三十八頁,共一百五十一頁,2022年,8月28日MAIN:SETBEA;開中斷SETBEX1;允許外中斷1中斷CLRPX1;設(shè)為低優(yōu)先級SETBIT1;邊沿觸發(fā)MOVB,#01H;設(shè)B的初值HALT:SJMPHALT;暫停等待中斷INT:MOVA,B;A←BRLA;左環(huán)移一位MOVB,A;回送RETI;中斷返回第三十九頁,共一百五十一頁,2022年,8月28日有以下幾點需要說明:(1)由于從0003H到0023H之間分布了5個中斷源的入口地址,因此在一般情況下,主程序與中斷服務(wù)程序均用長轉(zhuǎn)移指令移至其它區(qū)域。(2)本例題未考慮保護現(xiàn)場與恢復(fù)現(xiàn)場的問題,是否需要,應(yīng)視具體情況而定。(3)本例是單重中斷,若為多級中斷,則情況要復(fù)雜得多。(4)主程序處于暫停等待中斷只是為了舉例方便起見,在實際的單片機控制系統(tǒng)中一般是不會這樣用的。第四十頁,共一百五十一頁,2022年,8月28日5.4定時/計數(shù)器在實際的控制系統(tǒng)中常要求有外部實時時鐘,以實現(xiàn)定時或延時控制;還要求有外部計數(shù)器,以實現(xiàn)對外界事件進行計數(shù)。比如,在單片機控制的電力拖動系統(tǒng)中,控制的對象為電動機,為了實現(xiàn)閉環(huán)控制,就需要定時地對轉(zhuǎn)速進行采樣。若采用光電脈沖發(fā)生器作為檢測元件,則先應(yīng)對每個采樣周期中光電脈沖發(fā)生器發(fā)出的脈沖進行計數(shù),然后再通過實時計算求得對應(yīng)的轉(zhuǎn)速。第四十一頁,共一百五十一頁,2022年,8月28日對于定時/計數(shù)器來說,不管是獨立的定時器芯片還是單片機內(nèi)的定時器,大都有以下特點:(1)定時/計數(shù)器有多種工作方式,可以是計數(shù)方式也可以是定時方式。(2)定時/計數(shù)器的計數(shù)值是可變的,當(dāng)然對計數(shù)的最大值有一定限制,這取決于計數(shù)器的位數(shù)。計數(shù)的最大值也就限制了定時的最大值。(3)可以按照規(guī)定的定時或計數(shù)值,在定時時間到或者計數(shù)終止時,發(fā)出中斷申請,以便實現(xiàn)定時控制。第四十二頁,共一百五十一頁,2022年,8月28日5.4.1定時/計數(shù)器的結(jié)構(gòu)及工作原理MCS-51單片機的定時/計數(shù)器(以下簡稱T/C)的結(jié)構(gòu)如圖5―4所示。由圖5―4可見T/C的核心是1個加1計數(shù)器,它的輸入脈沖有兩個來源:一個是外部脈沖源,另一個是系統(tǒng)機器周期(時鐘振蕩器經(jīng)12分頻以后的脈沖信號)。第四十三頁,共一百五十一頁,2022年,8月28日當(dāng)T/C處于定時方式時,加1計數(shù)器在每個機器周期加1,因此,也可以把它看作在累計機器周期。由于一個機器周期包含12個振蕩周期,所以它的計數(shù)速率是振蕩頻率的1/12。圖5―4中有2個模擬的位開關(guān),前者決定了T/C的工作狀態(tài):當(dāng)開關(guān)處于上方時為定時狀態(tài),處于下方時為計數(shù)狀態(tài)。工作狀態(tài)的選擇由特殊功能寄存器TMOD的C/T位來決定。第四十四頁,共一百五十一頁,2022年,8月28日圖5―4定時/計數(shù)器的結(jié)構(gòu)框圖第四十五頁,共一百五十一頁,2022年,8月28日16位的加1計數(shù)器由兩個8位的特殊功能寄存器THx或TLx組成(X=0、1)。它們可被程控為不同的組合狀態(tài)。(13位、16位、兩個分開的8位等),從而形成T/C不同的4種工作方式,這只要用指令改變TMOD(工作方式控制寄存器)的相應(yīng)位即可。單片機中微處理器μp、特殊功能寄存器TCON和TMOD與定時/計數(shù)器T0、T1之間的關(guān)系如圖5―5所示,它反映了T/C在單片機中的位置和總體結(jié)構(gòu)。第四十六頁,共一百五十一頁,2022年,8月28日圖5―5定時/計數(shù)器與TMOD、TCON的結(jié)構(gòu)框圖第四十七頁,共一百五十一頁,2022年,8月28日5.4.2定時/計數(shù)器的方式和控制寄存器MCS-51單片機有2個特殊功能寄存器TMOD和TCON:TMOD用于設(shè)置T/C的工作方式;TCON用于控制定時器T0、T1的啟動與停止,并包含了定時器的狀態(tài)。1.定時器工作方式寄存器TMOD定時器工作方式寄存器TMOD用于選擇定時器的工作方式,它的高4位控制定時器T1,低4位控制定時器T0。TMOD中各位的定義如下:GATEC/TM1M0GATEC/TM1M0T1T0TMOD89H第四十八頁,共一百五十一頁,2022年,8月28日其中::T/C功能選擇位,當(dāng)=1時為計數(shù)方式;當(dāng)=0時為定時方式。
M1M0:T/C工作方式定義位,其具體定義方式如表5―4所示。第四十九頁,共一百五十一頁,2022年,8月28日表5―4定時/計數(shù)器工作方式第五十頁,共一百五十一頁,2022年,8月28日GATE:門控制位,用于控制定時器的啟動是否受外部中斷源信號的影響。GATE=0時,與外部中斷無關(guān),由TCON寄存器中的TRx位控制啟動。GATE=1時,由控制位TRx和引腳共同控制啟動,只有在沒有外部中斷請求信號的情況下(即外部中斷引腳=1時),才允許定時器啟動。第五十一頁,共一百五十一頁,2022年,8月28日2.定時器控制寄存器TCONTCON控制寄存器各位的定義如下:TF1TR1TF0TR0IE1IT1IE0IT0D7D6D5D4D3D2D1D0TCON88H第五十二頁,共一百五十一頁,2022年,8月28日其中:TF0(TF1):為T0(T1)定時器溢出中斷標(biāo)志位。當(dāng)T0(T1)計數(shù)溢出時,由硬件置位,并在允許中斷的情況下,發(fā)出中斷請求信號。當(dāng)CPU響應(yīng)中斷轉(zhuǎn)向中斷服務(wù)程序時,由硬件自動將該位清0。TR0(TR1):為T0(T1)運行控制位。當(dāng)TR0(TR1)=1時啟動T0(T1);TR0(TR1)=0時關(guān)閉T0(T1)。該位由軟件進行設(shè)置。TCON的低4位與外部中斷有關(guān),可參閱中斷一節(jié)的有關(guān)內(nèi)容。TCON寄存器在復(fù)位時也被清0。第五十三頁,共一百五十一頁,2022年,8月28日5.4.3定時/計數(shù)器的工作方式MCS-51單片機的T/C有4種工作方式,分別由TMOD寄存器中的M1、M0兩位的二進制編碼所決定。1.方式0當(dāng)M1M0=00時,T/C設(shè)定為工作方式0,構(gòu)成13位的T/C。其邏輯結(jié)構(gòu)如圖5―6所示。在此工作方式下,T/C構(gòu)成一個13位的計數(shù)器,由THx的8位和TLx的低5位組成,TLx的高3位未用,滿計數(shù)值為213。T/C啟動后立即加1計數(shù),當(dāng)TLx的低5位計數(shù)溢出時向THx進位,THx計數(shù)溢出則對相應(yīng)的溢出標(biāo)志位TFx置位,以此作為定時器溢出中斷標(biāo)志。當(dāng)單片機進入中斷服務(wù)程序時,由內(nèi)部硬件自動清除該標(biāo)志。第五十四頁,共一百五十一頁,2022年,8月28日圖5―6T/C方式0的邏輯結(jié)構(gòu)圖第五十五頁,共一百五十一頁,2022年,8月28日2.方式1當(dāng)M1M0=01時,T/C設(shè)定為工作方式1,構(gòu)成16位定時/計數(shù)器,其中THx作為高8位,TLx作為低8位,滿計數(shù)值為216,其余同方式0類似。其邏輯結(jié)構(gòu)如圖5―7所示。第五十六頁,共一百五十一頁,2022年,8月28日3.方式2當(dāng)M1M0=10時,T/C工作在方式2,構(gòu)成1個自動重裝載的T/C,滿計數(shù)值為28。在方式0和方式1中,當(dāng)計數(shù)滿后,若要進行下一次定時/計數(shù),需用軟件向THx和TLx重新予置計數(shù)初值。在方式2中THx和TLx被當(dāng)作兩個8位計數(shù)器,計數(shù)過程中,THx寄存8位初值并保持不變,由TLx進行8位計數(shù)。計數(shù)溢出時,除產(chǎn)生溢出中斷請求外,還自動將THx中的初值重新裝到TLx中去,即重裝載。第五十七頁,共一百五十一頁,2022年,8月28日圖5―7T/C方式1的邏輯結(jié)構(gòu)圖第五十八頁,共一百五十一頁,2022年,8月28日圖5―8T/C方式2的邏輯結(jié)構(gòu)圖第五十九頁,共一百五十一頁,2022年,8月28日4.方式3方式3只適用于定時器T0。當(dāng)定時器T1處于方式3時相當(dāng)于TR1=0,停止計數(shù)。當(dāng)T0工作在方式3時,TH0和TL0被拆成2個獨立的8位計數(shù)器。這時,TL0既可作為定時器使用,也可作為計數(shù)器使用,它占用了定時器T0所使用的控制位(C/、GATE、TR0、TF0),其功能和操作與方式0或方式1完全相同;而TH0只能作定時器用,并且占據(jù)了定時器T1的兩個控制信號TR1和TF1。在這種情況下,定時器T1雖仍可用于方式0、1、2,但不能使用中斷方式。第六十頁,共一百五十一頁,2022年,8月28日圖5―9T/C方式3的邏輯結(jié)構(gòu)圖第六十一頁,共一百五十一頁,2022年,8月28日5.4.4定時/計數(shù)器應(yīng)用舉例由于MCS-51單片機的定時/計數(shù)器是可編程的,因此在使用之前需要進行初始化。在編程時主要注意兩點:第一要能正確寫入控制字;第二能進行計數(shù)初值的計算。一般情況下,包括以下幾個步驟:(1)確定工作方式,即對TMOD寄存器進行賦值。(2)計算計數(shù)初值,并寫入寄存器TH0、TL0或TH1、TL1中。(3)根據(jù)需要,置位ETx允許T/C中斷。(4)置位EA使CPU開中斷(需要時)。(5)置位TRx啟動計數(shù)。第六十二頁,共一百五十一頁,2022年,8月28日計數(shù)初值的計算方法如下:由于定時/計數(shù)器是以加1的方式計數(shù),因此同常用的減1計數(shù)器的算法不同。在定時方式下:假定時間常數(shù)為Tc,定時時間為T,而T=Tc·Tp,則時間常數(shù)為
(5―1)其中Tp為機器周期,即12/晶振頻率。應(yīng)裝入定時/計數(shù)器的初值為
X=2n-Tc(n為計數(shù)器的位數(shù))(5―2)第六十三頁,共一百五十一頁,2022年,8月28日例1:若晶振頻率為6MHz,試計算MCS-51單片機定時/計數(shù)器的最小定時時間和最大定時時間。解:先確定機器周期:①計算最小定時時間:對于定時器的幾種工作方式來說,最小定時時間都是一樣的,即Tmin=Tc·Tp=1×2μs=2μs在計數(shù)方式下:假定計數(shù)值為N,則應(yīng)裝入的計數(shù)初值為X=2n-N(n同上)晶振頻率第六十四頁,共一百五十一頁,2022年,8月28日②計算最大定時時間:當(dāng)T/C工作在方式1下的定時時間最長,則最大定時時間為Tmax=Tc·Tp=216×2μs=131072μs=131ms例2:若單片機的晶振頻率為6MHz,要求定時/計數(shù)器T0產(chǎn)生100ms的定時,試確定計數(shù)初值以及TMOD寄存器的內(nèi)容。解:當(dāng)晶振頻率為6MHz時,產(chǎn)生100ms的定時接近最大值(131ms),故只能采用方式1(16位定時器)。機器周期為:第六十五頁,共一百五十一頁,2022年,8月28日晶振頻率時間常數(shù)為:計數(shù)初值為:第六十六頁,共一百五十一頁,2022年,8月28日設(shè)置TMOD方式字:對于T0來說:M1M0=01、、GATE=0。由于T1不用,可任意設(shè)置,現(xiàn)取為全0,因此,TMOD寄存器的內(nèi)容為:TMOD=00000001B=01H第六十七頁,共一百五十一頁,2022年,8月28日例3:利用定時/計數(shù)器T0通過P1.0引腳輸出周期為2ms的方波,設(shè)晶振頻率為12MHz。試確定計數(shù)初值、TMOD內(nèi)容及編制相應(yīng)程序。解:若要產(chǎn)生周期為2ms的方波,只要每1ms將信號的幅值由0變到1或由1變到0即可,可采用取反指令CPL來實現(xiàn)。為了提高CPU的效率,可采用定時中斷的方式,每1ms產(chǎn)生一次中斷,在中斷服務(wù)程序中將輸出信號取反即可。定時器T0的中斷入口地址為000BH。①計算計數(shù)初值:對于定時1ms來說,用定時器方式0(13位定時器)就可實現(xiàn)。第六十八頁,共一百五十一頁,2022年,8月28日機器周期為:晶振頻率時間常數(shù)為:計數(shù)初值為:則其高8位為EOH,低5位為18H,故TH0=E0H,TL0=18H。第六十九頁,共一百五十一頁,2022年,8月28日②確定TMOD方式字:對于定時器T0來說,M1M0=00H、=0、GATE=0。定時器T1不用,取為全0。于是TMOD=00000000B=00H③程序設(shè)計:ORG000BH;T0中斷服務(wù)程序入口LJMPINT;轉(zhuǎn)至INT處ORG2000H;主程序MOVTMOD,#00H;置T0為定時方式0MOVTH0,#0E0H;設(shè)置計數(shù)初值第七十頁,共一百五十一頁,2022年,8月28日MOVTL0,#18HSETBEA;CPU開中斷SETBET0;允許T0中斷SETBTR0;啟動T0HALT:SJMP$;暫停,等待中斷INT:CPLP1.0;輸出方波MOVTH0,#0E0H;重新裝入計數(shù)初值MOVTL0,#18HRETI;中斷返回第七十一頁,共一百五十一頁,2022年,8月28日需要說明的是:以上程序在定時器初始化之后,即進入虛擬的主程序,暫停等待定時器溢出中斷。這種主程序處于暫停狀態(tài)等待中斷的方法一般只用于例題程序,而在實際系統(tǒng)中則很少采用,因為這涉及到CPU的效率。還有一點要注意:當(dāng)采用方式0、1、3時,只要不關(guān)閉定時/計數(shù)器,那么每當(dāng)計數(shù)器回0溢出時,都需要重新裝入計數(shù)初值,以保證計數(shù)值不變。第七十二頁,共一百五十一頁,2022年,8月28日例4:用查詢方式產(chǎn)生例3中所要求的方波。解:程序和例3很相似,不同之處為不需要中斷和中斷服務(wù)程序。查詢的對象是定時器T0的溢出標(biāo)志TF0,在計數(shù)過程中,TF0為0;當(dāng)定時時間到,計數(shù)器溢出使TF0置1。由于未采用中斷,TF0置1后不會自動復(fù)位為0,故需用指令使TF0復(fù)位為0。計數(shù)初值的計算以及TMOD的選取同例3。MOVTMOD,#00H;置定時器T0為方式0MOVTH0,#0E0H;設(shè)置計數(shù)初值MOVTL0,#18H第七十三頁,共一百五十一頁,2022年,8月28日MOVIE,#00H;禁止中斷SETBTR0;啟動T0定時LOOP:JBCTF0,LOOP1;查詢計數(shù)溢出SJMPLOOP;TF0=0,則反復(fù)查詢LOOP1:CPLP1.0;輸出方波MOVTH0,#0E0H;重新裝入計數(shù)初值MOVTL0,#18HSJMPLOOP;重復(fù)循環(huán)第七十四頁,共一百五十一頁,2022年,8月28日例5:軟件擴展定時設(shè)片內(nèi)RAM的70H單元的初值為01H,要求每1秒鐘將其內(nèi)容左環(huán)移一位,采用定時器T1,晶振頻率為6MHz。解:當(dāng)晶振頻率為6MHz時,一個定時器的最大定時值為131ms,現(xiàn)要求定時1s,已超過該最大定時值,故只能采用定時器定時和軟件計數(shù)相結(jié)合的方法來擴展定時時間。在本例中,要獲得1s定時,可將定時器的定時值設(shè)為100ms,另設(shè)一個軟件計數(shù)器(常用Rn寄存器),初值為10。第七十五頁,共一百五十一頁,2022年,8月28日每100ms定時時間一到,產(chǎn)生定時溢出中斷,在中斷服務(wù)程序中首先使軟件計數(shù)器減1,若不為0,則立即退出中斷;若已減為0,說明1s定時時間已到,可進入中斷處理。當(dāng)中斷處理完后,再重新設(shè)置軟件計數(shù)器。其它要求與前例類似。①計算計數(shù)初值:采用定時方式1,計數(shù)初值為:x=3CB0H(參閱例2)。②確定TMOD方式字:對于定時器T1來說,M1M0=01、=0、GATE=0,而定時器T0不用,取為全0。于是TMOD=00010000B=10H③程序設(shè)計:第七十六頁,共一百五十一頁,2022年,8月28日ORG001BH;T1中斷入口LJMPINT;轉(zhuǎn)至INT處ORG2000H;主程序MOVTMOD,#10H;T1工作于方式1MOVTH1#3CH;設(shè)置計數(shù)初值MOVTL1,#B0HSETBEA;CPU開中斷SETBET1;允許T1中斷SETBTR1;啟動T1定時MOV70H,#01H;將初值送入70H單元中MOVR0,#0AH;設(shè)置軟件計數(shù)器第七十七頁,共一百五十一頁,2022年,8月28日HALT:SJMP$;暫停,等待中斷INT:DJNZR0,NEXT;中斷服務(wù)程序MOVA,70H;時間已到,將70H單元內(nèi)容送ARLA;左環(huán)移一位MOV70H,A;回送MOVR0,#0AH;重新設(shè)置軟件計數(shù)器NEXT:MOVTH1,#3CH;重新設(shè)置計數(shù)初值MOVTL1,#B0HRETI;中斷返回第七十八頁,共一百五十一頁,2022年,8月28日例6:設(shè)晶振頻率為6MHz、定時/計數(shù)器T0工作于方式3,TL0和TH0作為兩個獨立的8位定時器,要求TL0使P1.0產(chǎn)生400μs的方波,TH0使P1.1產(chǎn)生800μs的方波。解:當(dāng)采用方式3時,對于TH0來說,需要借用定時器T1的控制信號。①計算計數(shù)初值:X0=28-200×10-6/2×10-6=156=9CHX1=28-400×10-6/2×10-6=56=38H②確定TMOD方式字:對定時器T0來說,M1M0=11、=0、GATE=0,定時器T1不用,取為全0。于是TMOD=00000011B=03H第七十九頁,共一百五十一頁,2022年,8月28日③程序設(shè)計:ORGMAIN;主程序MAIN:MOVTMOD,#03H;T0工作于方式3MOVTL0,#9CH;置計數(shù)初值MOVTH0,#38HSETBEA;CPU開中斷SETBET0;允許T0中斷(用于TL0)SETBET1;允許T1中斷(用于TH0)SETBTR0;啟動TL0SETBTR1;啟動TH0第八十頁,共一百五十一頁,2022年,8月28日HALT:SJMPHALT;暫停,等待中斷ORG000BH;TL0中斷服務(wù)程序CPLP1.0;P1.0取反MOVTL0,#9CH;重新裝入計數(shù)初值RETI;中斷返回ORG001BH;TH0中斷服務(wù)程序CPLP1.1;P1.1取反MOVTH0,#38H;重新裝入計數(shù)初值RETI;中斷返回第八十一頁,共一百五十一頁,2022年,8月28日5.5串行通信接口5.5.1串行通信的基本知識1.并行通信與串行通信在實際應(yīng)用中,不但計算機與外部設(shè)備之間常常要進行信息交換,而且計算機之間也需要交換信息,所有這些信息的交換均稱為“通信”。通信的基本方式分為并行通信和串行通信兩種。第八十二頁,共一百五十一頁,2022年,8月28日并行通信是構(gòu)成1組數(shù)據(jù)的各位同時進行傳送,例如8位數(shù)據(jù)或16位數(shù)據(jù)并行傳送。其特點是傳輸速度快,但當(dāng)距離較遠(yuǎn)、位數(shù)又多時導(dǎo)致了通信線路復(fù)雜且成本高。串行通信是數(shù)據(jù)一位接一位地順序傳送。其特點是通信線路簡單,只要一對傳輸線就可以實現(xiàn)通信(如電話線),從而大大地降低了成本,特別適用于遠(yuǎn)距離通信。缺點是傳送速度慢。圖5―10為以上兩種通信方式的示意圖。由圖5―10可知,假設(shè)并行傳送N位數(shù)據(jù)所需時間為T,那么串行傳送的時間至少為NT,實際上總是大于NT的。第八十三頁,共一百五十一頁,2022年,8月28日圖5―10通信的兩種基本方式(a)并行通信;(b)串行通信第八十四頁,共一百五十一頁,2022年,8月28日串行通信可分為異步傳送和同步傳送兩種基本方式。1)異步傳送方式異步傳送的特點是數(shù)據(jù)在線路上的傳送不連續(xù)。在傳送時,數(shù)據(jù)是以一個字符為單位進行傳送的。它用一個起始位表示字符的開始,用停止位表示字符的結(jié)束。異步傳送的字符格式如圖5―11(a)所示。第八十五頁,共一百五十一頁,2022年,8月28日一個字符由起始位、數(shù)據(jù)位、奇偶校驗位和停止位4個部分組成。起始位為0信號占1位;其后接著的就是數(shù)據(jù)位,它可以是5位、6位、7位或8位,傳送時低位在先、高位在后;再后面的1位為奇偶校驗位,可要也可以不要;最后是停止位,它用信號1來表示字符的結(jié)束,可以是1位、1位半或2位。第八十六頁,共一百五十一頁,2022年,8月28日圖5―11串行異步傳送的字符格式(a)字符格式;(b)有空閑位的字符格式第八十七頁,共一百五十一頁,2022年,8月28日例如,采用串行異步通信方式傳送ASCII碼字符‘5’,規(guī)定為7位數(shù)據(jù)位,1位偶校驗位,1位停止位,無空閑位。由于‘5’的ASCII碼為35H,其對應(yīng)7位數(shù)據(jù)位為0110101,如按低位在前、高位在后順序排列應(yīng)為1010110。前面加1位起始位,后面配上偶校驗位1位0,最后面加1位停止位1,因此傳送的字符格式為0101011001,其對應(yīng)的波形如圖5―12所示。第八十八頁,共一百五十一頁,2022年,8月28日圖5―12傳送ASCII碼字符‘5’的波形圖第八十九頁,共一百五十一頁,2022年,8月28日在串行異步傳送中,CPU與外設(shè)之間事先必須約定:①字符格式。雙方要事先約定字符的編碼形式、奇偶校驗形式及起始位和停止位的規(guī)定。例如用ASCII碼通信,有效數(shù)據(jù)為7位,加1個奇偶校驗位、1個起始位和1個停止位共10位。當(dāng)然停止位也可大于1位。②波特率(Baudrate)。波特率就是數(shù)據(jù)的傳送速率,即每秒鐘傳送的二進制位數(shù),單位為位/秒。它與字符的傳送速率(字符/秒)之間存在如下關(guān)系:波特率=位/字符×字符/秒=位/秒要求發(fā)送端與接收端的波特率必須一致。第九十頁,共一百五十一頁,2022年,8月28日例如,假設(shè)字符傳送的速率為120字符/秒,而每1個字符為10位,那么傳送的波特率為10位/字符×120字符/秒=1200位/秒=1200波特每1位二進制位的傳送時間Td就是波特率的倒數(shù),例如上例中Td=1/1200=0.833ms第九十一頁,共一百五十一頁,2022年,8月28日2)同步傳送在異步傳送中,每1個字符都要用起始位和停止位作為字符開始和結(jié)束的標(biāo)志,占用了一定的時間。為了提高傳送速度,有時就去掉這些標(biāo)志,而采用同步傳送,即1次傳送1組數(shù)據(jù)。在這1組數(shù)據(jù)的開始處要用同步字符SYN來加以指示,如圖5―13所示。第九十二頁,共一百五十一頁,2022年,8月28日圖5―13同步傳送第九十三頁,共一百五十一頁,2022年,8月28日2.數(shù)據(jù)傳送方向串行通信的數(shù)據(jù)傳送方向有3種形式。(1)單工方式。如圖5―14(a)所示,A端為發(fā)送站,B端為接收站,數(shù)據(jù)僅能從A站發(fā)至B站。(2)半雙工方式。如圖5―14(b)所示,數(shù)據(jù)既可從A站發(fā)送到B站,也可以由B站發(fā)送到A站。不過在同一時間只能作1個方向的傳送。(3)全雙工方式。如圖5―14(c)所示,每個站(A、B)既可同時發(fā)送,也可同時接收。第九十四頁,共一百五十一頁,2022年,8月28日圖5―14串行通信的三種方式(a)單工方式;(b)半雙工方式;(c)全雙工方式第九十五頁,共一百五十一頁,2022年,8月28日3.信號的調(diào)制和解調(diào)計算機通信是1種數(shù)字信號的通信,如圖5―15所示。它要求傳送線的頻帶很寬,而在長距離通訊時,通常是利用電話線來傳送的,該線不可能有這樣寬的頻帶。如果用數(shù)字信號經(jīng)過傳送線直接通訊,信號就會畸變,如圖5―16所示。第九十六頁,共一百五十一頁,2022年,8月28日圖5―15通訊信號示意圖第九十七頁,共一百五十一頁,2022年,8月28日圖5―16數(shù)字信號通過電話線傳送產(chǎn)生的畸變第九十八頁,共一百五十一頁,2022年,8月28日因此要在發(fā)送端用調(diào)制器(Modulator)把數(shù)字信號轉(zhuǎn)換為模擬信號,在接收端用解調(diào)器(Demodulator)檢測此模擬信號,再把它轉(zhuǎn)換成數(shù)字信號,如圖5―17所示。FSK(FrequencyShiftKeying)是1種常用的調(diào)制方法,它把數(shù)字信號的“1”與“第九十九頁,共一百五十一頁,2022年,8月28日圖5―17調(diào)制與解調(diào)示意圖第一百頁,共一百五十一頁,2022年,8月28日圖5―18FSK調(diào)制法原理圖第一百零一頁,共一百五十一頁,2022年,8月28日4.數(shù)據(jù)終端與調(diào)制器的接口調(diào)制后的信號與數(shù)據(jù)終端連接時,經(jīng)常使用EIARS-232C接口。它是目前最常用的1種串行通信接口。這是1種有25個管腳的連接器,不但它的每一個管腳的規(guī)定是標(biāo)準(zhǔn)的,而且對各種信號的電平規(guī)定也是標(biāo)準(zhǔn)的,因而便于互相連接。其最基本的最常用的信號規(guī)定如圖5―19所示。第一百零二頁,共一百五十一頁,2022年,8月28日圖5―19RS-232C的引腳圖第一百零三頁,共一百五十一頁,2022年,8月28日其次,標(biāo)準(zhǔn)的另1個重要的含義是這些信號的電氣性能也是標(biāo)準(zhǔn)的。對各種信號的規(guī)定如下:(1)在TXD和RXD線上:MARK(即表示為1)=-3~-25VSPACE(即表示為0)=+3~+25V(2)在等線上:ON=+3~+25VOFF=-3~-25V第一百零四頁,共一百五十一頁,2022年,8月28日圖5―20接收器和發(fā)送器電路第一百零五頁,共一百五十一頁,2022年,8月28日圖5―21計算機與遠(yuǎn)方終端和當(dāng)?shù)亟K端連接示意圖第一百零六頁,共一百五十一頁,2022年,8月28日5.5.2MCS-51單片機的串行接口MCS-51單片機內(nèi)部有1個功能很強的全雙工串行口,可同時發(fā)送和接收數(shù)據(jù)。它有4種工作方式,可供不同場合使用。波特率由軟件設(shè)置,通過片內(nèi)的定時/計數(shù)器產(chǎn)生。接收、發(fā)送均可工作在查詢方式或中斷方式,使用十分靈活。MCS-51的串行口除了用于數(shù)據(jù)通信外,還可以非常方便地構(gòu)成1個或多個并行輸入/輸出口,或作串并轉(zhuǎn)換,用來驅(qū)動鍵盤與顯示器。第一百零七頁,共一百五十一頁,2022年,8月28日圖5―22MCS-51串行口的原理結(jié)構(gòu)圖第一百零八頁,共一百五十一頁,2022年,8月28日1.串行接口的特殊功能寄存器1)串行口數(shù)據(jù)緩沖器SBUFSBUF是兩個在物理上獨立的接收、發(fā)送緩沖器,可同時發(fā)送、接收數(shù)據(jù)。兩個緩沖器只用一個字節(jié)地址99H,可通過指令對SBUF的讀寫來區(qū)別是對接收緩沖器的操作還是對發(fā)送緩沖器的操作。CPU寫SBUF,就是修改發(fā)送緩沖器;讀SBUF,就是讀接收緩沖器。串行口對外也有兩條獨立的收發(fā)信號線RXD(P3.0)和TXD(P3.1),因此可以同時發(fā)送、接收數(shù)據(jù),實現(xiàn)全雙工傳送。第一百零九頁,共一百五十一頁,2022年,8月28日2)串行口控制寄存器SCONSCON寄存器用來控制串行口的工作方式和狀態(tài),它可以是位尋址。在復(fù)位時所有位被清0,字地址為98H。SCON的格式為SM0SM1SM2RENTB8RB8TIRID7D6D5D4D3D2D1D0
第一百一十頁,共一百五十一頁,2022年,8月28日SM0、SM1:串行口工作方式選擇位(具體內(nèi)容參閱工作方式一節(jié))。SM2:多機通信控制位。主要用于工作方式2和方式3。在方式2和方式3中,如SM2=1,則接收到的第9位數(shù)據(jù)(RB8)為0時不啟動接收中斷標(biāo)志RI(即RI=0),并且將接收到的前8位數(shù)據(jù)丟棄;RB8為1時,才將接收到的前8位數(shù)據(jù)送入SBUF,并置位RI產(chǎn)生中斷請求。當(dāng)SM2=0時,則不論第9位數(shù)據(jù)為0或1,都將前8位數(shù)據(jù)裝入SBUF中,并產(chǎn)生中斷請求。在方式0時,SM2必須為0。第一百一十一頁,共一百五十一頁,2022年,8月28日REN:允許串行接收控制位。若REN=0,則禁止接收;若REN=1,則允許接收。該位由軟件置位或復(fù)位。TB8:發(fā)送數(shù)據(jù)位8。在方式2和方式3時,TB8為所要發(fā)送的第9位數(shù)據(jù)。在多機通信中,以TB8位的狀態(tài)表示主機發(fā)送的是地址還是數(shù)據(jù):TB8=0為數(shù)據(jù),TB8=1為地址;也可用作數(shù)據(jù)的奇偶校驗位。該位由軟件置位或復(fù)位。RB8:接收數(shù)據(jù)位8。第一百一十二頁,共一百五十一頁,2022年,8月28日RI:接收中斷標(biāo)志位。在方式0時,當(dāng)接收到的第8位結(jié)束后,由內(nèi)部硬件使RI置位,向CPU請求中斷。在其它方式時,接收到停止位的中間便由硬件置位RI,同樣,也必須在響應(yīng)中斷后,由軟件使其復(fù)位。RI也可供查詢使用。3)特殊功能寄存器PCONPCON主要是為CHMOS型單片機的電源控制而設(shè)置的專用寄存器,單元地址為87H,不能位尋址。其內(nèi)容如下:SMODGF1GF0PDIDLD7D6D5D4D3D2D1D0
PCON87H第一百一十三頁,共一百五十一頁,2022年,8月28日在HMOS單片機中,該寄存器除最高位外,其它位都是虛設(shè)的。最高位SMOD為串行口波特率選擇位,當(dāng)SMOD=1時,方式1、2、3的波特率加倍;當(dāng)SMOD=0時,系統(tǒng)復(fù)位。2.串行接口的工作方式串行口有4種工作方式,它是由SCON中的SM0、SM1來定義的,如表5―5所示。第一百一十四頁,共一百五十一頁,2022年,8月28日表5―5串行口的工作方式第一百一十五頁,共一百五十一頁,2022年,8月28日1)方式0串行接口的工作方式0為同步移位寄存器方式,其波特率是固定的,為fosc(振蕩頻率)的1/12。方式0發(fā)送數(shù)據(jù)從RXD引腳串行輸出,TXD引腳輸出同步脈沖。當(dāng)1個數(shù)據(jù)寫入串行口發(fā)送緩沖器時,串行口將8位數(shù)據(jù)以fosc/12的固定波特率從RXD引腳輸出,從低位到高位。發(fā)送完后置中斷標(biāo)志TI為1,呈中斷請求狀態(tài),在再次發(fā)送數(shù)據(jù)之前,必須用軟件將TI清0。第一百一十六頁,共一百五十一頁,2022年,8月28日方式0接收在滿足REN=1和RI=0的條件下,串行口處于方式0輸入。此時,RXD為數(shù)據(jù)輸入端,TXD為同步信號輸出端,接收器也以fosc/12的波特率采樣RXD引腳輸入的數(shù)據(jù)信息。當(dāng)接收器接收完8位數(shù)據(jù)后,置中斷標(biāo)志RI=1為請求中斷,在再次接收之前,必須用軟件將RI清0。第一百一十七頁,共一百五十一頁,2022年,8月28日在方式0工作時,必須使SCON寄存器中的SM2位為“0”,這并不影響TB8位和RB8位。方式0發(fā)送或接收完8位數(shù)據(jù)后由硬件置位TI或RI中斷請求標(biāo)志,CPU在響應(yīng)中斷后要用軟件清除TI或RI標(biāo)志。若串行口要作為并行口輸入輸出,這時必須設(shè)置“串入并出“或”并入串出”第一百一十八頁,共一百五十一頁,2022年,8月28日圖5―23一種串行轉(zhuǎn)換為并行的方法第一百一十九頁,共一百五十一頁,2022年,8月28日2)方式1在方式1時,串行口被設(shè)置為波特率可變的8位異步通信接口。方式1發(fā)送串行口以方式1發(fā)送時,數(shù)據(jù)位由TXD端輸出,發(fā)送1幀信息為10位,其中1位起始位、8位數(shù)據(jù)位(先低位后高位)和一個停止位“1”。CPU執(zhí)行1條數(shù)據(jù)寫入發(fā)送緩沖器SBUF的指令,就啟動發(fā)送器發(fā)送。當(dāng)發(fā)送完數(shù)據(jù),就置中斷標(biāo)志TI為1。方式1所傳送的波特率取決于定時器T1的溢出率和特殊功能寄存器PCON中SMOD的值,即方式1的波特率=(2SMOD/32)×定時器T1的溢出率。第一百二十頁,共一百五十一頁,2022年,8月28日方式1接收當(dāng)串行口置為方式1,且REN=1時,串行口處于方式1輸入狀態(tài)。它以所選波特率的16倍的速率采樣RXD引腳狀態(tài)。3)方式2串行口工作于方式2時,被定義為9位異步通信接口。方式2發(fā)送發(fā)送數(shù)據(jù)由TXD端輸出,發(fā)送1幀信息為11位,其中1位起始位(0)、8位數(shù)據(jù)位(先低位后高位)、1位可控位為1或0的第9位數(shù)據(jù)、1位停止位。附加的第9位數(shù)據(jù)為SCON中的TB8,它由軟件置位或清0,可作為多機通信中地址/數(shù)據(jù)信息的標(biāo)志位,也可作為數(shù)據(jù)的奇偶校驗位。第一百二十一頁,共一百五十一頁,2022年,8月28日PIPL:PUSHPSW;保護現(xiàn)場PUSHACLRTI;清0發(fā)送中斷標(biāo)志MOVA,@R0;取數(shù)據(jù)MOVC,P;奇偶位送CMOVTB8,C;奇偶位送TB8MOVSBUF,A;數(shù)據(jù)寫入發(fā)送緩沖器,啟動發(fā)送INCR0;數(shù)據(jù)指針加1POPA;恢復(fù)現(xiàn)場POPPSWRETI;中斷返回第一百二十二頁,共一百五十一頁,2022年,8月28日方式2接收當(dāng)串行口置為方式2,且REN=1時,串行口以方式2接收數(shù)據(jù)。方式2的接收與方式1基本相似。數(shù)據(jù)由RXD端輸入,接收11位信息,其中1位起始位(0)、8位數(shù)據(jù)位、1位附加的第9位數(shù)據(jù)、1位停止位(1)。方式2的波特率=(2SMOD/64)×fosc若附加的第9位數(shù)據(jù)為奇偶校驗位,在接收中斷服務(wù)程序中應(yīng)作檢驗處理,參考程序如下:第一百二十三頁,共一百五十一頁,2022年,8月28日PIPL:PUSHPSW;保護現(xiàn)場PUSHACLRRI;清0接收中斷標(biāo)志MOVA,SUBF;接收數(shù)據(jù)MOVC,P;取奇偶校驗位JNCL1;偶校驗時轉(zhuǎn)L1JNBRB8,ERR;奇校驗時RB8為0轉(zhuǎn)出錯處理SJMPL2L1:JBRB8,ERR;偶校驗時RB8為1轉(zhuǎn)出錯處理L2:MOV@R0,A;奇偶校驗對時存入數(shù)據(jù)第一百二十四頁,共一百五十一頁,2022年,8月28日INCR0;修改指針POPA;恢復(fù)現(xiàn)場POPPSWERR:RETI;中斷返回…;出錯處理RETI;中斷返回4)方式3方式3為波特率可變的9位異步通信方式,除了波特率有所區(qū)別之外,其余方式都與方式2相同。方式3的波特率=(2SMOD/32)×(定時器T1的溢出率)第一百二十五頁,共一百五十一頁,2022年,8月28日3.串行通信的波特率串行通信的4種工作方式對應(yīng)著3種波特率。(1)對于方式0,波特率是固定的,為單片機時鐘的十二分之一,即fosc/12。(2)對于方式2,波特率有兩種可供選擇,即fosc/32和fosc/64。對應(yīng)于以下公式:波特率=fosc×2SMOD/64(5―3)第一百二十六頁,共一百五十一頁,2022年,8月28日(3)對于方式1和方式3,波特率都由定時器T1的溢出率來決定,對應(yīng)于以下公式:
波特率=(2SMOD/32)×(定時器T1的溢出率)(5―4)
而定時器T1的溢出率則和所采用的定時器工作方式有關(guān),并可用以下公式表示:
定時器T1的溢出率=fosc/12×(2n-X)(5―5)其中X為定時器T1的計數(shù)初值,n為定時器T1的位數(shù),對于定時器方式0,取n=13;對于定時器方式1,取n=16;對于定時器方式2、3,取n=8。第一百二十七頁,共一百五十一頁,2022年,8月28日表5―6常用波特率和定時器T1初值第一百二十八頁,共一百五十一頁,2022年,8月28日5.5.3串行通信應(yīng)用舉例串行口方式1和方式3都是異步通信方式,方式1為8位數(shù)據(jù)位,方式3為9位數(shù)
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版?zhèn)€人房產(chǎn)買賣合同違約責(zé)任范本4篇
- 二零二五版智能倉儲物流系統(tǒng)安裝與優(yōu)化合同3篇
- 二零二五版環(huán)保節(jié)能改造項目工程合同4篇
- 2025年度個人房產(chǎn)交易安全評估及買賣合同大全3篇
- 2025年度留學(xué)學(xué)術(shù)誠信教育合同4篇
- 2025版企業(yè)職工失業(yè)保險補貼資金支付合同3篇
- 2025年校園樂器維護保養(yǎng)及采購代理服務(wù)合同2篇
- 濟南2025版房屋買賣合同產(chǎn)權(quán)登記與稅務(wù)申報指南3篇
- 互聯(lián)網(wǎng)客服專員2025年度績效合同2篇
- 2025年度海洋運輸貨物保險合同保險責(zé)任與保險合同效力3篇
- 二零二五年度無人駕駛車輛測試合同免責(zé)協(xié)議書
- 2025年湖北華中科技大學(xué)招聘實驗技術(shù)人員52名歷年高頻重點提升(共500題)附帶答案詳解
- 高三日語一輪復(fù)習(xí)助詞「と」的用法課件
- 毛渣采購合同范例
- 2023中華護理學(xué)會團體標(biāo)準(zhǔn)-注射相關(guān)感染預(yù)防與控制
- 五年級上冊小數(shù)遞等式計算200道及答案
- 2024年廣東高考政治真題考點分布匯 總- 高考政治一輪復(fù)習(xí)
- 燃?xì)夤艿滥甓葯z驗報告
- GB/T 44052-2024液壓傳動過濾器性能特性的標(biāo)識
- FZ/T 81013-2016寵物狗服裝
- JB∕T 14089-2020 袋式除塵器 濾袋運行維護技術(shù)規(guī)范
評論
0/150
提交評論