中斷定時與串行通信_第1頁
中斷定時與串行通信_第2頁
中斷定時與串行通信_第3頁
中斷定時與串行通信_第4頁
中斷定時與串行通信_第5頁
已閱讀5頁,還剩151頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第4章章 中斷、中斷、 定時與串行通信定時與串行通信4.1 MCS-51單片機的中斷系統(tǒng)單片機的中斷系統(tǒng)4.2 定時定時/計數(shù)器計數(shù)器4.3 串行通信接口串行通信接口第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信4.1 MCS-51單片機的中斷系統(tǒng)單片機的中斷系統(tǒng) 4.1.1 中斷的概念 計算機暫時中止正在執(zhí)行的主程序,轉(zhuǎn)去執(zhí)行中斷服務程序,并在中斷服務程序執(zhí)行完了之后能自動回到原主程序處繼續(xù)執(zhí)行,這個過程叫做“中斷”。 中斷需要解決兩個主要問題:一是如何從主程序轉(zhuǎn)到中斷服務程序;二是如何從中斷服務程序返回主程序。第第4章章 中

2、斷、中斷、 定時與串行通信定時與串行通信 大體說來,采用中斷系統(tǒng)改善了計算機的性能,主要表現(xiàn)在以下幾個方面: (1)有效地解決了快速CPU與慢速外設(shè)之間的矛盾,可使CPU與外設(shè)并行工作,大大提高了工作效率。 (2)可以及時處理控制系統(tǒng)中許多隨機產(chǎn)生的參數(shù)與信息,即計算機具有實時處理的能力,從而提高了控制系統(tǒng)的性能。 (3)使系統(tǒng)具備了處理故障的能力,提高了系統(tǒng)自身的可靠性。第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 4.1.2 中斷源 所謂中斷源就是引起中斷的事件,亦即是什么部件要求中斷。 對于各種計算機來說,其中斷源的允許數(shù)目是不一樣的,例如Z80允許128個中斷源(不包括非屏蔽

3、中斷),而8086/8088則允許256個中斷源。MCS-51單片機相對來說較為簡單,只提供了5個中斷源:2個外部中斷請求 和 個片內(nèi)定時器/計數(shù)器T0和T1的溢出中斷請求TF0和TF1及串行口中斷請求TI或RI(合為一個中斷源)。INT0INT1.2第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 MCS-51單片機5個中斷源的中斷請求信號分別鎖存在特殊功能寄存器TCON和SCON中: (1)TCON為定時/計數(shù)器控制寄存器,字節(jié)地址為88H,其中鎖存的中斷源請求標志如表41所示。 表41 TCON鎖存的中斷源 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 (2)SCON串行

4、口控制寄存器,字節(jié)地址為98H。 SCON的低2位鎖存串行口的接收中斷和發(fā)送中斷標志,其格式如表42所示。表42 SCON鎖存的中斷源 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 TI:串行口發(fā)送中斷標志。在串行口以方式0發(fā)送時,每當發(fā)送完8位數(shù)據(jù)后,由硬件置位TI;若以方式1、2、3發(fā)送時,在發(fā)送停止位的開始時置位TI。TI=1表示串行口發(fā)送器正在向CPU申請中斷。值得注意的是當CPU響應該中斷后,轉(zhuǎn)向中斷服務程序時并不復位TI,TI必須由用戶在中斷服務程序中用軟件清0(可用CLRTI或其它指令)。 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 RI:串行口接收中斷標志

5、。若串行口接收器允許接收并以方式0工作,則每當接收到第8位數(shù)據(jù)時置位RI;若以方式1、2、3工作,且SM2=0時,則每當接收器接收到停止位的中間時置位RI;當串行口以方式2或方式3工作,且SM2=1時,僅當接收到的第9位數(shù)據(jù)RB8為1后,同時還要接收到停止位的中間時置位RI。RI為1表示串行口接收器正向CPU申請中斷,同樣RI必須由用戶在中斷服務程序中清0。8031復位后,SCON也被清0。第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 4.1.3 中斷的優(yōu)先級 如果正在執(zhí)行主程序時只有1個中斷源請求中斷,而這時CPU又是對中斷開放的,那么這個中斷立即得到響應。然而由于中斷是隨機產(chǎn)生的

6、,中斷源一般又不止1個,因此往往會出現(xiàn)這樣的情況:幾個中斷源同時請求中斷;或者當某一個中斷正在響應中(即正在執(zhí)行該中斷源的中斷服務程序),又有其它的中斷源請求中斷,這時中斷系統(tǒng)應如何處理呢? 在一般情況下,首先把各個中斷源分成若干個優(yōu)先級,然后再按如下原則進行處理:第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 (1)不同級的中斷源同時申請中斷時先高后低;(2)同級的中斷源同時申請中斷時事先規(guī)定;(3)處理低級中斷又收到高級中斷請求時停低轉(zhuǎn)高;(4)處理高級中斷又收到低級中斷請求時高不理低。 MCS-51單片機的中斷系統(tǒng)對優(yōu)先級的控制比較簡單,只規(guī)定了兩個中斷優(yōu)先級,對于每一個中斷源均

7、可編程為高優(yōu)先級中斷或低優(yōu)先級中斷。在同1個優(yōu)先級中,對5個中斷源的優(yōu)先次序安排如下: 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 外部中斷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寄存器的格式如表43所示。 最高優(yōu)先級最低優(yōu)先級 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信表43 中斷優(yōu)先級寄存器IP的格式 第第4章章

8、 中斷、中斷、 定時與串行通信定時與串行通信其中: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)先級。第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 4.1.4 中斷響應的條件、過程與時間 1.中斷響應的條件 單片機響應中斷的條件為中斷源有請求(中斷允許寄存器IE相應位置1),且CPU開中斷(即EA=1)。這樣,在每個機器周期內(nèi),單片機對所有中斷源都進行順序檢測,并可在任1個周期的S6期間,找到所有有效的中斷請求,還對其優(yōu)先級進行

9、排隊。但是,必須滿足下列條件:第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 (1)無同級或高級中斷正在服務; (2)現(xiàn)行指令執(zhí)行到最后1個機器周期且已結(jié)束; (3)若現(xiàn)行指令為RETI或需訪問特殊功能寄存器IE或IP的指令時,執(zhí)行完該指令且緊隨其后的另1條指令也已執(zhí)行完。 單片機便在緊接著的下1個機器周期的S1期間響應中斷。否則,將丟棄中斷查詢的結(jié)果。第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 2.中斷響應過程 單片機一旦響應中斷,首先對相應的優(yōu)先級有效觸發(fā)器置位。然后執(zhí)行1條由硬件產(chǎn)生的子程序調(diào)用指令,把斷點地址壓入堆棧,再把與各中斷源對應的中斷服務程序的入口地址送入程

10、序計數(shù)器PC,同時清除中斷請求標志(串行口中斷和外部電平觸發(fā)中斷除外),從而程序便轉(zhuǎn)移到中斷服務程序。以上過程均由中斷系統(tǒng)自動完成。 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信各中斷源所對應的中斷服務程序的入口地址如下:中斷源 入口地址外部中斷 0003H定時器T0中斷 000BH外部中斷 0013H定時器T1中斷 001BH串行口中斷 0023H0(INT0)1(INT1)第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 CPU從上面相應的地址開始執(zhí)行中斷服務程序直到遇到1條RETI指令為止。RETI指令表示中斷服務程序的結(jié)束。CPU執(zhí)行該指令,一方面清除中斷響應時所置位的

11、優(yōu)先級有效觸發(fā)器;另一方面從堆棧棧頂彈出斷點地址送入程序計數(shù)器PC,從而返回主程序。若用戶在中斷服務程序的開始安排了保護現(xiàn)場指令(一般均為相應寄存器內(nèi)容入棧或更換工作寄存器區(qū)),則在RETI指令前應有恢復現(xiàn)場指令(相應寄存器內(nèi)容出?;驌Q回原工作寄存器區(qū))。第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 3.中斷響應時間 所謂中斷響應時間是指從查詢中斷請求標志位到轉(zhuǎn)入中斷服務程序入口地址所需的機器周期數(shù)(對單一中斷源而言)。 響應中斷最短需要3個機器周期。若CPU查詢中斷請求標志的周期正好是執(zhí)行1條指令的最后1個機器周期,則不需等待就可以響應。而響應中斷執(zhí)行1條長調(diào)用指令需要2個機器周期

12、,加上查詢的1個機器周期,一共需要3個機器周期才開始執(zhí)行中斷服務程序。 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 4.1.5 MCS-51單片機的中斷系統(tǒng) MCS-51系列單片機的中斷系統(tǒng)屬于8位單片機中功能較強的1種中斷系統(tǒng),它可以提供5個中斷源,每個中斷源有兩個中斷優(yōu)先級別可供選擇,可實現(xiàn)兩級中斷服務程序嵌套。此外,所有中斷均可由軟件設(shè)定為允許中斷或禁止中斷,也就是說,用戶可以用關(guān)中斷指令(或復位)來屏蔽所有的中斷請求,也可以用開中斷指令使CPU接受中斷請求。MCS-51單片機的中斷系統(tǒng)結(jié)構(gòu)示意圖如圖41所示。第第4章章 中斷、中斷、 定時與串行通信定時與串行通信圖41 MC

13、S-51的中斷系統(tǒng) 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 4.1.6 外部中斷及中斷請求的撤除 1.外部中斷 MCS-51單片機的中斷系統(tǒng)有2個外部中斷源,引腳信號為 和 (即P3.2和P3.3)。其中斷請求觸發(fā)信號有電平觸發(fā)和邊沿觸發(fā)兩種,當TCON寄存器中的IT0位和IT1位為“0”時采用電平觸發(fā);為“1”時采用邊沿觸發(fā)。 INT0INT1第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 2. 中斷請求的撤除 CPU響應中斷請求后,在中斷返回(執(zhí)行RETI指令)前,必須撤除請求,否則會錯誤地再一次引起中斷過程。 如前所述,對于定時器T0與T1的中斷請求及邊沿觸發(fā)方式

14、的外部中斷0和1來說,CPU在響應中斷后用硬件清除了相應的中斷請求標志TF0、TF1、IE0與IE1,即自動撤除了中斷請求。 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 對于電平觸發(fā)的外部中斷, 由于CPU對INT0、 INT1引腳沒有控制作用, 也沒有相應的中斷請求標志位, 因此需要外接電路來撤除中斷請求信號。 圖 4 - 2是可行的方案之一, 外部中斷請求信號通過D觸發(fā)器加到單片機 INT0或INT1引腳上。 當外部中斷信號使D觸發(fā)器的CLK端發(fā)生正跳變時, 由于D端接地, Q端輸出為0, 因此向單片機發(fā)出中斷請求。 CPU 響應中斷后, 利用一根口線(如P1.0)作應答線。

15、在中斷服務程序用以下兩條指令:第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 ANL P1,0FEHORL P1,01H來撤除中斷請求。 第1條指令使P1.0為0, 而P1口的其它各位的狀態(tài)不變。 由于P1.0接至D觸發(fā)器的置“1”端(S), 故D觸發(fā)器的Q=1, 從而撤除了中斷請求信號。 第2條指令又使P1.0為1, 即S=1, 使以后產(chǎn)生新的外部中斷請求信號又能向單片機申請中斷。 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信圖42 外部中斷請求(電平方式)的撤除 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 4.1.7 中斷程序舉例 在中斷服務程序編程時,首先要

16、對中斷系統(tǒng)進行初始化,也就是對幾個特殊功能寄存器的有關(guān)控制位進行賦值。具體來說,就是要完成下列工作: (1)開中斷和允許中斷源中斷; (2)確定各中斷源的優(yōu)先級; (3)若是外部中斷,則應規(guī)定是電平觸發(fā)還是邊沿觸發(fā)。第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 例1:若規(guī)定外部中斷0為電平觸發(fā)方式,高優(yōu)先級,試寫出有關(guān)的初始化程序。 解:一般可采用位操作指令來實現(xiàn): SETB EA ;開中斷SETB EX0 ;允許外中斷0中斷SETB PX0 ;外中斷0定為高優(yōu)先級CLR IT0 ;電平觸發(fā)第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 例2:若規(guī)定外部中斷1為邊沿觸發(fā)方式,

17、低優(yōu)先級,在中斷服務程序中將寄存器B的內(nèi)容左環(huán)移一位,B的初值設(shè)為01H。試編寫主程序與中斷服務程序。解:程序如下 ORG 0000H ;主程序LJMP MAIN ;主程序轉(zhuǎn)至MAIN處ORG 0013H ;中斷服務程序LJMP INT ;中斷服務程序轉(zhuǎn)至INT處 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信MAIN:SETB EA ;開中斷 SETB EX1 ;允許外中斷1中斷 CLRP X1 ;設(shè)為低優(yōu)先級 SETB IT1 ;邊沿觸發(fā) MOV B,01H ;設(shè)B的初值HALT:SJMP HALT ;暫停等待中斷INT:MOVA,B ;ABRL A ;左環(huán)移一位MOV B,A ;

18、回送RETI ;中斷返回第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 有以下幾點需要說明: (1)由于從0003H到0023H之間分布了5個中斷源的入口地址,因此在一般情況下,主程序與中斷服務程序均用長轉(zhuǎn)移指令移至其它區(qū)域。 (2)本例題未考慮保護現(xiàn)場與恢復現(xiàn)場的問題,是否需要,應視具體情況而定。 (3)本例是單重中斷,若為多級中斷,則情況要復雜得多。 (4)主程序處于暫停等待中斷只是為了舉例方便起見,在實際的單片機控制系統(tǒng)中一般是不會這樣用的。 (5) 關(guān)于定時器中斷與串行中斷請參閱有關(guān)章節(jié)。 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信4.2 定時定時/計數(shù)器計數(shù)器 在

19、實際的控制系統(tǒng)中常要求有外部實時時鐘,以實現(xiàn)定時或延時控制;還要求有外部計數(shù)器,以實現(xiàn)對外界事件進行計數(shù)。比如,在單片機控制的電力拖動系統(tǒng)中,控制的對象為電動機,為了實現(xiàn)閉環(huán)控制,就需要定時地對轉(zhuǎn)速進行采樣。若采用光電脈沖發(fā)生器作為檢測元件,則先應對每個采樣周期中光電脈沖發(fā)生器發(fā)出的脈沖進行計數(shù),然后再通過實時計算求得對應的轉(zhuǎn)速。第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 對于定時/計數(shù)器來說,不管是獨立的定時器芯片還是單片機內(nèi)的定時器,大都有以下特點: (1)定時/計數(shù)器有多種工作方式,可以是計數(shù)方式也可以是定時方式。 (2)定時/計數(shù)器的計數(shù)值是可變的,當然對計數(shù)的最大值有一定

20、限制,這取決于計數(shù)器的位數(shù)。計數(shù)的最大值也就限制了定時的最大值。 (3)可以按照規(guī)定的定時或計數(shù)值,在定時時間到或者計數(shù)終止時,發(fā)出中斷申請,以便實現(xiàn)定時控制。第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 4.2.1 定時/計數(shù)器的結(jié)構(gòu)及工作原理 MCS-51單片機的定時/計數(shù)器(以下簡稱T/C)的結(jié)構(gòu)如圖43所示。 由圖43可見T/C的核心是1個加1計數(shù)器,它的輸入脈沖有兩個來源:一個是外部脈沖源,另一個是系統(tǒng)機器周期(時鐘振蕩器經(jīng)12分頻以后的脈沖信號)。 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 當T/C處于定時方式時,加1計數(shù)器在每個機器周期加1,因此,也可以把

21、它看作在累計機器周期。由于一個機器周期包含12個振蕩周期,所以它的計數(shù)速率是振蕩頻率的1/12。 圖43中有2個模擬的位開關(guān),前者決定了T/C的工作狀態(tài):當開關(guān)處于上方時為定時狀態(tài),處于下方時為計數(shù)狀態(tài)。工作狀態(tài)的選擇由特殊功能寄存器TMOD的C/T位來決定。 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信圖43 定時/計數(shù)器的結(jié)構(gòu)框圖 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 16位的加1計數(shù)器由兩個8位的特殊功能寄存器THx或TLx組成(X=0、1)。它們可被程控為不同的組合狀態(tài)。(13位、16位、兩個分開的8位等),從而形成T/C不同的4種工作方式,這只要用指令改變

22、TMOD(工作方式控制寄存器)的相應位即可。單片機中微處理器p、特殊功能寄存器TCON和TMOD與定時/計數(shù)器T0、T1之間的關(guān)系如圖44所示,它反映了T/C在單片機中的位置和總體結(jié)構(gòu)。第第4章章 中斷、中斷、 定時與串行通信定時與串行通信圖44 定時/計數(shù)器與TMOD、TCON的結(jié)構(gòu)框圖 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 4.2.2 定時/計數(shù)器的方式和控制寄存器 MCS-51單片機有2個特殊功能寄存器TMOD和TCON:TMOD用于設(shè)置T/C的工作方式;TCON用于控制定時器T0、T1的啟動與停止,并包含了定時器的狀態(tài)。 1.定時器工作方式寄存器TMOD 定時器工作方

23、式寄存器TMOD用于選擇定時器的工作方式,它的高4位控制定時器T1,低4位控制定時器T0。TMOD中各位的定義如下:第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 其中: :T/C功能選擇位,當 =1時為計數(shù)方式;當 =0時為定時方式。 M1M0:T/C工作方式定義位,其具體定義方式如表44所示。C/TC/TC/T第第4章章 中斷、中斷、 定時與串行通信定時與串行通信表44 定時/計數(shù)器工作方式 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 GATE:門控制位,用于控制定時器的啟動是否受外部中斷源信號的影響。GATE=0時,與外部中斷無關(guān),由TCON寄存器中的TRx位控制啟動

24、。GATE=1時,由控制位TRx和引腳 共同控制啟動,只有在沒有外部中斷請求信號的情況下(即外部中斷引腳 =1時),才允許定時器啟動。 INTxINTx第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 2.定時器控制寄存器TCON TCON控制寄存器各位的定義如下: 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 其中: TF0(TF1):為T0(T1)定時器溢出中斷標志位。當T0(T1)計數(shù)溢出時,由硬件置位,并在允許中斷的情況下,發(fā)出中斷請求信號。當CPU響應中斷轉(zhuǎn)向中斷服務程序時,由硬件自動將該位清0。 TR0(TR1):為T0(T1)運行控制位。當TR0(TR1)=1時啟

25、動T0(T1);TR0(TR1)=0時關(guān)閉T0(T1)。該位由軟件進行設(shè)置。 TCON的低4位與外部中斷有關(guān),可參閱中斷一節(jié)的有關(guān)內(nèi)容。 TCON寄存器在復位時也被清0。 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 4.2.3 定時/計數(shù)器的工作方式 MCS-51單片機的T/C有4種工作方式,分別由TMOD寄存器中的M1、M0兩位的二進制編碼所決定。 1.方式0 當M1M0=00時,T/C設(shè)定為工作方式0,構(gòu)成13位的T/C。其邏輯結(jié)構(gòu)如圖45所示。在此工作方式下,T/C構(gòu)成一個13位的計數(shù)器,由THx的8位和TLx的低5位組成,TLx的高3位未用,滿計數(shù)值為213。T/C啟動后立

26、即加1計數(shù),當TLx的低5位計數(shù)溢出時向THx進位,THx計數(shù)溢出則對相應的溢出標志位TFx置位,以此作為定時器溢出中斷標志。當單片機進入中斷服務程序時,由內(nèi)部硬件自動清除該標志。第第4章章 中斷、中斷、 定時與串行通信定時與串行通信圖45 T/C方式0的邏輯結(jié)構(gòu)圖 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 2. 方式1 當M1M0=01時,T/C設(shè)定為工作方式1,構(gòu)成16位定時/計數(shù)器,其中THx作為高8位,TLx作為低8位,滿計數(shù)值為216,其余同方式0類似。其邏輯結(jié)構(gòu)如圖46所示。第第4章章 中斷、中斷、 定時與串行通信定時與串行通信圖46 T/C方式1的邏輯結(jié)構(gòu)圖 第第4

27、章章 中斷、中斷、 定時與串行通信定時與串行通信 3.方式2 當M1M0=10時,T/C工作在方式2,構(gòu)成1個自動重裝載的T/C,滿計數(shù)值為28。在方式0和方式1中,當計數(shù)滿后,若要進行下一次定時/計數(shù),需用軟件向THx和TLx重新予置計數(shù)初值。在方式2中THx和TLx被當作兩個8位計數(shù)器,計數(shù)過程中,THx寄存8位初值并保持不變,由TLx進行8位計數(shù)。計數(shù)溢出時,除產(chǎn)生溢出中斷請求外,還自動將THx中的初值重新裝到TLx中去,即重裝載。 除此之外,方式2也同方式0類似。其邏輯結(jié)構(gòu)如圖47所示。 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信圖47 T/C方式2的邏輯結(jié)構(gòu)圖 第第4章章

28、 中斷、中斷、 定時與串行通信定時與串行通信 4.方式3 方式3只適用于定時器T0。當定時器T1處于方式3時相當于TR1=0,停止計數(shù)。 當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,但不能使用中斷方式。 方式3下的定時器T0和T1的邏輯結(jié)構(gòu)如圖48所示。 T第第4章章 中斷、中斷、 定時與串行通

29、信定時與串行通信圖48 T/C方式3的邏輯結(jié)構(gòu)圖 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 4.2.4 定時/計數(shù)器應用舉例 由于MCS-51單片機的定時/計數(shù)器是可編程的,因此在使用之前需要進行初始化。在編程時主要注意兩點:第一要能正確寫入控制字;第二能進行計數(shù)初值的計算。一般情況下,包括以下幾個步驟: (1)確定工作方式,即對TMOD寄存器進行賦值。 (2)計算計數(shù)初值,并寫入寄存器TH0、TL0或TH1、TL1中。 (3)根據(jù)需要,置位ETx允許T/C中斷。 (4)置位EA使CPU開中斷(需要時)。 (5)置位TRx啟動計數(shù)。第第4章章 中斷、中斷、 定時與串行通信定時與串

30、行通信 計數(shù)初值的計算方法如下: 由于定時/計數(shù)器是以加1的方式計數(shù),因此同常用的減1計數(shù)器的算法不同。 在定時方式下:假定時間常數(shù)為Tc,定時時間為T,而T=TcTp,則時間常數(shù)為 cpTTT(41) 其中4p為機器周期,即12/晶振頻率。應裝入定時/計數(shù)器的初值為 X=2nTc (n為計數(shù)器的位數(shù))(52) 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 例1:若晶振頻率為6MHz,試計算MCS-51單片機定時/計數(shù)器的最小定時時間和最大定時時間。 解:先確定機器周期: 計算最小定時時間: 對于定時器的幾種工作方式來說,最小定時時間都是一樣的,即Tmin=TcTp=12s=2s 在

31、計數(shù)方式下:假定計數(shù)值為N,則應裝入的計數(shù)初值為 X=2nN (n同上)12122s6MHzpT 晶振頻率第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 計算最大定時時間: 當T/C工作在方式1下的定時時間最長,則最大定時時間為 Tmax=TcTp=2162s=131072s=131ms 例2:若單片機的晶振頻率為6MHz,要求定時/計數(shù)器T0產(chǎn)生100ms的定時,試確定計數(shù)初值以及TMOD寄存器的內(nèi)容。 解:當晶振頻率為6MHz時,產(chǎn)生100ms的定時接近最大值(131ms),故只能采用方式1(16位定時器)。 機器周期為: 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信12

32、122s6MHzpT 晶振頻率時間常數(shù)為: 346100 105 102 10cpTsTTs計數(shù)初值為: 164225 10655365000155363CB0HncXT 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 設(shè)置TMOD方式字: 對于T0來說:M1M0=01、 、GATE=0。 由于T1不用,可任意設(shè)置,現(xiàn)取為全0,因此,TMOD寄存器的內(nèi)容為: TMOD=00000001B=01HC/T第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 例3:利用定時/計數(shù)器T0通過P1.0引腳輸出周期為2ms的方波,設(shè)晶振頻率為12MHz。試確定計數(shù)初值、TMOD內(nèi)容及編制相應程序

33、。 解:若要產(chǎn)生周期為2ms的方波,只要每1ms將信號的幅值由0變到1或由1變到0即可,可采用取反指令CPL來實現(xiàn)。為了提高CPU的效率,可采用定時中斷的方式,每1ms產(chǎn)生一次中斷,在中斷服務程序中將輸出信號取反即可。 定時器T0的中斷入口地址為000BH。 計算計數(shù)初值: 對于定時1ms來說,用定時器方式0(13位定時器)就可實現(xiàn)。 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 機器周期為:12122s6MHzpT 晶振頻率時間常數(shù)為: 361 10 s10001 10 scpTTT計數(shù)初值為: 132210008192 100071921110000011000BncXT則其高8

34、位為EOH,低5位為18H,故TH0=E0H,TL0=18H。第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 確定TMOD方式字: 對于定時器T0來說,M1M0=00H、 =0、GATE=0。定時器T1不用,取為全0。于是 TMOD=00000000B=00H 程序設(shè)計: ORG 000BH ;T0中斷服務程序入口 LJMP INT ;轉(zhuǎn)至INT處 ORG 2000H ;主程序 MOV TMOD,00H ;置T0為定時方式0 MOV TH0,0E0H;設(shè)置計數(shù)初值 C/T第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 MOV TL0,18H SETB EA ;CPU開中斷 SE

35、TB ET0 ;允許T0中斷 SETB TR0 ;啟動T0HALT:SJMP $ ;暫停,等待中斷INT:CPL P1.0;輸出方波 MOV TH0,0E0H ;重新裝入計數(shù)初值 MOV TL0,18H RETI ;中斷返回第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 需要說明的是:以上程序在定時器初始化之后,即進入虛擬的主程序,暫停等待定時器溢出中斷。這種主程序處于暫停狀態(tài)等待中斷的方法一般只用于例題程序,而在實際系統(tǒng)中則很少采用,因為這涉及到CPU的效率。 還有一點要注意:當采用方式0、1、3時,只要不關(guān)閉定時/計數(shù)器,那么每當計數(shù)器回0溢出時,都需要重新裝入計數(shù)初值,以保證計數(shù)

36、值不變。第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 例4:用查詢方式產(chǎn)生例3中所要求的方波。 解:程序和例3很相似,不同之處為不需要中斷和中斷服務程序。查詢的對象是定時器T0的溢出標志TF0,在計數(shù)過程中,TF0為0;當定時時間到,計數(shù)器溢出使TF0置1。由于未采用中斷,TF0置1后不會自動復位為0,故需用指令使TF0復位為0。 計數(shù)初值的計算以及TMOD的選取同例3。 MOV TMOD,00H ;置定時器T0為方式0 MOV TH0,0E0H ;設(shè)置計數(shù)初值 MOV TL0,18H第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 MOV IE,00H ;禁止中斷 SET B

37、TR0 ;啟動T0定時LOOP:JBC TF0,LOOP1 ;查詢計數(shù)溢出 SJMP LOOP ;TF0=0,則反復查詢LOOP1:CPL P1.0 ;輸出方波 MOV TH0,0E0H ;重新裝入計數(shù)初值 MOV TL0,18H SJMP LOOP ;重復循環(huán)第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 例5:軟件擴展定時 設(shè)片內(nèi)RAM的70H單元的初值為01H,要求每1秒鐘將其內(nèi)容左環(huán)移一位,采用定時器T1,晶振頻率為6MHz。 解:當晶振頻率為6MHz時,一個定時器的最大定時值為131ms,現(xiàn)要求定時1s,已超過該最大定時值,故只能采用定時器定時和軟件計數(shù)相結(jié)合的方法來擴展定時

38、時間。在本例中,要獲得1s定時,可將定時器的定時值設(shè)為100ms,另設(shè)一個軟件計數(shù)器(常用Rn寄存器),初值為10。 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 每100ms定時時間一到,產(chǎn)生定時溢出中斷,在中斷服務程序中首先使軟件計數(shù)器減1,若不為0,則立即退出中斷;若已減為0,說明1s定時時間已到,可進入中斷處理。當中斷處理完后,再重新設(shè)置軟件計數(shù)器。其它要求與前例類似。 計算計數(shù)初值:采用定時方式1,計數(shù)初值為:x=3CB0H(參閱例2)。 確 定 T M O D 方 式 字 : 對 于 定 時 器 T 1 來說,M1M0=01、 =0、GATE=0,而定時器T0不用,取為全

39、0。于是 TMOD=00010000B=10H 程序設(shè)計: C/T第第4章章 中斷、中斷、 定時與串行通信定時與串行通信ORG 001BH ;T1中斷入口LJMP INT ;轉(zhuǎn)至INT處ORG 2000H ;主程序MOV TMOD,10H ;T1工作于方式1MOV TH13CH ;設(shè)置計數(shù)初值MOV TL1,B0HSETB EA ;CPU開中斷SETB ET1 ;允許T1中斷SETB TR1 ;啟動T1定時MOV 70H,01H ;將初值送入70H單元中MOV R0,0AH ;設(shè)置軟件計數(shù)器第第4章章 中斷、中斷、 定時與串行通信定時與串行通信HALT: SJMP $ ;暫停,等待中斷 INT

40、: DJNZ R0,NEXT ;中斷服務程序 MOV A,70H ;時間已到,將70H單元內(nèi)容送A RL A ;左環(huán)移一位 MOV 70H,A ;回送 MOV R0,0AH ;重新設(shè)置軟件計數(shù)器NEXT:MOV TH1,3CH ;重新設(shè)置計數(shù)初值 MOV TL1,B0H RETI ;中斷返回 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 例6:設(shè)晶振頻率為6MHz、定時/計數(shù)器T0工作于方式3,TL0和TH0作為兩個獨立的8位定時器,要求TL0使P1.0產(chǎn)生400s的方波,TH0使P1.1產(chǎn)生800s的方波。 解:當采用方式3時,對于TH0來說,需要借用定時器T1的控制信號。 計算計

41、數(shù)初值: X0=2820010-6/2106=156=9CH X1=2840010-6/2106=56=38H 確定TMOD方式字:對定時器T0來說,M1M0=11、 =0、GATE=0,定時器T1不用,取為全0。于是 TMOD=00000011B=03H C/T第第4章章 中斷、中斷、 定時與串行通信定時與串行通信程序設(shè)計: ORG MAIN ;主程序 MAIN:MOV TMOD,03H ;T0工作于方式3 MOV TL0,9CH ;置計數(shù)初值 MOV TH0,38H SETB EA ;CPU開中斷 SETB ET0 ;允許T0中斷(用于TL0) SETB ET1 ;允許T1中斷(用于TH0

42、) SETB TR0 ;啟動TL0 SETB TR1 ;啟動TH0第第4章章 中斷、中斷、 定時與串行通信定時與串行通信HALT: SJMP HALT ;暫停,等待中斷 ORG 000BH ;TL0中斷服務程序 CPL P1.0 ;P1.0取反 MOV TL0,9CH ;重新裝入計數(shù)初值 RE TI ;中斷返回 ORG 001BH ;TH0中斷服務程序 CPL P1.1 ;P1.1取反 MOV TH0,38H ;重新裝入計數(shù)初值 RETI ;中斷返回 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信4.3 串行通信接口串行通信接口 4.3.1 串行通信的基本知識 1.并行通信與串行通信

43、在實際應用中,不但計算機與外部設(shè)備之間常常要進行信息交換,而且計算機之間也需要交換信息,所有這些信息的交換均稱為“通信”。 通信的基本方式分為并行通信和串行通信兩種。 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 并行通信是構(gòu)成1組數(shù)據(jù)的各位同時進行傳送,例如8位數(shù)據(jù)或16位數(shù)據(jù)并行傳送。 其特點是傳輸速度快,但當距離較遠、位數(shù)又多時導致了通信線路復雜且成本高。 串行通信是數(shù)據(jù)一位接一位地順序傳送。其特點是通信線路簡單,只要一對傳輸線就可以實現(xiàn)通信(如電話線),從而大大地降低了成本,特別適用于遠距離通信。缺點是傳送速度慢。 圖49為以上兩種通信方式的示意圖。由圖49可知,假設(shè)并行傳送

44、N位數(shù)據(jù)所需時間為T,那么串行傳送的時間至少為NT,實際上總是大于NT的。 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 圖49 通信的兩種基本方式(a)并行通信; (b)串行通信第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 串行通信可分為異步傳送和同步傳送兩種基本方式。 1)異步傳送方式 異步傳送的特點是數(shù)據(jù)在線路上的傳送不連續(xù)。在傳送時,數(shù)據(jù)是以一個字符為單位進行傳送的。它用一個起始位表示字符的開始,用停止位表示字符的結(jié)束。異步傳送的字符格式如圖410(a)所示。第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 一個字符由起始位、數(shù)據(jù)位、奇偶校驗位和停止位4個部分

45、組成。起始位為0信號占1位;其后接著的就是數(shù)據(jù)位,它可以是5位、6位、7位或8位,傳送時低位在先、高位在后;再后面的1位為奇偶校驗位,可要也可以不要;最后是停止位,它用信號1來表示字符的結(jié)束,可以是1位、1位半或2位。 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 圖410 串行異步傳送的字符格式(a)字符格式; (b)有空閑位的字符格式 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 例如,采用串行異步通信方式傳送ASCII碼字符5,規(guī)定為7位數(shù)據(jù)位,1位偶校驗位,1位停止位,無空閑位。 由于5的ASCII碼為35H,其對應7位數(shù)據(jù)位為0110101,如按低位在前、高位在后

46、順序排列應為1010110。前面加1位起始位,后面配上偶校驗位1位0,最后面加1位停止位1,因此傳送的字符格式為0101011001,其對應的波形如圖411所示。第第4章章 中斷、中斷、 定時與串行通信定時與串行通信圖411 傳送ASCII碼字符5的波形圖 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 在串行異步傳送中,CPU與外設(shè)之間事先必須約定: 字符格式。 雙方要事先約定字符的編碼形式、奇偶校驗形式及起始位和停止位的規(guī)定。例如用ASCII碼通信,有效數(shù)據(jù)為7位,加1個奇偶校驗位、1個起始位和1個停止位共10位。當然停止位也可大于1位。 波特率(Baudrate)。 波特率就是數(shù)

47、據(jù)的傳送速率,即每秒鐘傳送的二進制位數(shù),單位為位/秒。它與字符的傳送速率(字符/秒)之間存在如下關(guān)系: 波特率=位/字符字符/秒=位/秒 要求發(fā)送端與接收端的波特率必須一致。第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 例如,假設(shè)字符傳送的速率為120字符/秒,而每1個字符為10位,那么傳送的波特率為 10位/字符120字符/秒=1200位/秒=1200波特 每1位二進制位的傳送時間Td就是波特率的倒數(shù),例如上例中 Td=1/1200=0.833ms第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 2) 同步傳送 在異步傳送中,每1個字符都要用起始位和停止位作為字符開始和結(jié)束的

48、標志,占用了一定的時間。為了提高傳送速度,有時就去掉這些標志,而采用同步傳送,即1次傳送1組數(shù)據(jù)。在這1組數(shù)據(jù)的開始處要用同步字符SYN來加以指示,如圖412所示。第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 圖412 同步傳送 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 2.數(shù)據(jù)傳送方向 串行通信的數(shù)據(jù)傳送方向有3種形式。 (1)單工方式。 如圖413(a)所示,A端為發(fā)送站,B端為接收站,數(shù)據(jù)僅能從A站發(fā)至B站。 (2)半雙工方式。 如圖413(b)所示,數(shù)據(jù)既可從A站發(fā)送到B站,也可以由B站發(fā)送到A站。不過在同一時間只能作1個方向的傳送。 (3)全雙工方式。 如圖4

49、13(c)所示,每個站(A、B)既可同時發(fā)送,也可同時接收。 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 圖413 串行通信的三種方式(a)單工方式;(b)半雙工方式;(c)全雙工方式第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 3.信號的調(diào)制和解調(diào) 計算機通信是1種數(shù)字信號的通信,如圖414所示。 它要求傳送線的頻帶很寬,而在長距離通訊時,通常是利用電話線來傳送的,該線不可能有這樣寬的頻帶。如果用數(shù)字信號經(jīng)過傳送線直接通訊,信號就會畸變,如圖415所示。第第4章章 中斷、中斷、 定時與串行通信定時與串行通信圖414 通訊信號示意圖 第第4章章 中斷、中斷、 定時與串行通

50、信定時與串行通信圖415 數(shù)字信號通過電話線傳送產(chǎn)生的畸變第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 因此要在發(fā)送端用調(diào)制器(Modulator)把數(shù)字信號轉(zhuǎn)換為模擬信號,在接收端用解調(diào)器(Demodulator)檢測此模擬信號,再把它轉(zhuǎn)換成數(shù)字信號,如圖416所示。 FSK(FrequencyShiftKeying)是1種常用的調(diào)制方法,它把數(shù)字信號的“1”與“0”調(diào)制成不同頻率的模擬信號,其工作原理如圖417所示。 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信圖416 調(diào)制與解調(diào)示意圖 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信圖417 FSK調(diào)制法原理圖

51、 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 4.數(shù)據(jù)終端與調(diào)制器的接口 調(diào)制后的信號與數(shù)據(jù)終端連接時,經(jīng)常使用EIARS-232C接口。它是目前最常用的1種串行通信接口。這是1種有25個管腳的連接器,不但它的每一個管腳的規(guī)定是標準的,而且對各種信號的電平規(guī)定也是標準的,因而便于互相連接。其最基本的最常用的信號規(guī)定如圖418所示。 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信圖418 RS-232C的引腳圖 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 其次,標準的另1個重要的含義是這些信號的電氣性能也是標準的。對各種信號的規(guī)定如下: (1) 在TXD和RXD線

52、上: MARK(即表示為1)=-3-25V SPACE(即表示為0)=+3+25V (2)在 等線上: ON=+3+25V OFF=-3-25V.RTS CTS DSP DTR CD第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 顯然, EIA RS-232C標準規(guī)定的信號電平及極性與TTL是不同的, 需要經(jīng)過轉(zhuǎn)換, 包括從TTL電平轉(zhuǎn)換為EIA RS-232C電平, 或從EIA RS-232C電平轉(zhuǎn)換為TTL電平。 由于目前大部分計算機都采用TTL電平, 所以用EIA RS-232C標準進行串行通信時, 需要有一套轉(zhuǎn)換電路(接口電路)。 1488和1489就是能實現(xiàn)從TTL電平轉(zhuǎn)換為

53、RS-232C(發(fā)送器)電平及從RS-232C電平轉(zhuǎn)換為TTL(接收器)電平的器件, 如圖 4 - 19 所示。 該圖中EIA 通信電纜的任何一個引腳能夠直接接至任何別的引腳而不會引起對發(fā)送器和接收器的損壞。 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信圖419 接收器和發(fā)送器電路 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 計算機和遠方以及當?shù)亟K端(用查詢方式交換信息)的連接示意圖如圖 4 - 20所示。 當?shù)亟K端可直接通過EIA RS-232C接口連接; 而遠方的終端則要經(jīng)過調(diào)制后通過電話線傳送, 在數(shù)據(jù)終端與調(diào)制器之間用EIA RS-232C接口。 第第4章章 中斷

54、、中斷、 定時與串行通信定時與串行通信圖420 計算機與遠方終端和當?shù)亟K端連接示意圖 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 5. 帶I2C總線的接口 1) I2C總線的主要特點 I2C總線是Philips公司推出的串行總線,整個系統(tǒng)僅靠數(shù)據(jù)線(SDA)和時鐘線(SCL)實現(xiàn)完善的全雙工數(shù)據(jù)傳輸,即CPU與各個外圍器件僅靠這兩條線實現(xiàn)信息交換。I2C總線系統(tǒng)與傳統(tǒng)的并行總線系統(tǒng)相比具有結(jié)構(gòu)簡單、 可維護性好、 易實現(xiàn)系統(tǒng)擴展、 易實現(xiàn)模塊化標準化設(shè)計、 可靠性高等優(yōu)點。I2C總線的主要特點如下: (1) 只要求兩條總線線路: 一條串行數(shù)據(jù)線SDA,一條串行時鐘線SCL。 第第4

55、章章 中斷、中斷、 定時與串行通信定時與串行通信(2) 每個連接到總線的器件都可以通過唯一的地址和一直存在的簡單的主機/從機關(guān)系軟件設(shè)定地址,主機可以作為主機發(fā)送器或主機接收器。 (3) 它是一個真正的多主機總線,如果兩個或更多主機同時初始化,數(shù)據(jù)傳輸可以通過沖突檢測和仲裁防止數(shù)據(jù)被破壞。 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信(4) 串行的8 位雙向數(shù)據(jù)傳輸位速率在標準模式下可達100 kb/s,快速模式下可達400 kb/s,高速模式下可達3.4 Mb/s。 (5) 連接到相同總線的集成電路數(shù)量只受到總線的最大電容400 pF 限制。 第第4章章 中斷、中斷、 定時與串行通

56、信定時與串行通信2) I2C總線的基本結(jié)構(gòu) I2C總線通過上拉電阻接正電源。當總線空閑時,兩根線均為高電平。連到總線上的任一器件輸出的低電平,都將使總線的信號變低,即各器件的SDA及SCL都是線“與”關(guān)系。每個接到I2C總線上的器件都有唯一的地址。主機與其它器件間的數(shù)據(jù)傳送可以是由主機發(fā)送數(shù)據(jù)到其它器件,這時主機即為發(fā)送器,由總線上接收數(shù)據(jù)的器件則為接收器。I2C的總線結(jié)構(gòu)如圖421所示。 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信圖421I2C總線接口電路圖第第4章章 中斷、中斷、 定時與串行通信定時與串行通信3) I2C總線的信息傳送 當I2C總線沒有進行信息傳送時,數(shù)據(jù)線(S

57、DA)和時鐘線(SCL)都為高電平。I2C總線進行數(shù)據(jù)傳送時,時鐘信號為高電平期間,數(shù)據(jù)線上的數(shù)據(jù)必須保持穩(wěn)定,只有在時鐘線上的信號為低電平期間,數(shù)據(jù)線上的高電平或低電平狀態(tài)才允許變化。 起始信號: 在I2C總線工作過程中,當SCL為高電平時,SDA由高電平向低電平跳變,定義為起始信號,起始信號由主控機產(chǎn)生。 停止信號: 當SCL為高電平時,SDA由低電平向高電平跳變,定義為停止信號,此信號也只能由主控機產(chǎn)生。 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信應答信號: I2C總線傳送的每個字節(jié)為8位,受控的器件在接收到8位數(shù)據(jù)后,在第9個脈沖必須輸出低電平作為應答信號,同時,要求主控器

58、在第9個時鐘脈沖位上釋放SDA線,以便受控器發(fā)出應答信號,將SDA拉低,表示接收數(shù)據(jù)的應答。如果在第9個脈沖收到受控器的非應答信號,則表示停止數(shù)據(jù)的發(fā)送或接收。 其次,每啟動一次總線,傳輸?shù)淖止?jié)數(shù)沒有限制。主控件和受控器件都可以工作于接收和發(fā)送狀態(tài)??偩€必須由主器件控制,也就是說必須由主控器產(chǎn)生時鐘信號起始信號、 停止信號。在時鐘信號為高電平期間,數(shù)據(jù)線上的數(shù)據(jù)必須保特穩(wěn)定,數(shù)據(jù)線上的數(shù)據(jù)狀態(tài)僅在時鐘為低電平期間才能改變,而當時鐘線為高電平期間,數(shù)據(jù)線狀態(tài)的改變被用來表示起始和停止條件。 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信圖422所示為總線的完整時序,在這里有一點要加以說明

59、的,當主控器接收數(shù)據(jù)時,在最后一個數(shù)據(jù)字節(jié),必須發(fā)送一個非應答信號,使受控器釋放數(shù)據(jù)線,以便主控器產(chǎn)生一個停止信號來終止總線的數(shù)據(jù)傳送。 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信圖422總線的完整時序第第4章章 中斷、中斷、 定時與串行通信定時與串行通信4) I2C總線讀、 寫操作 (1) 當前地址讀: 該操作將從所選器件的當前地址讀,讀的字節(jié)數(shù)不指定,格式如下: 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 (2) 指定單元讀: 該操作將從所選器件的指定地址讀,讀的字節(jié)數(shù)不指定,格式如下: 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信(3) 指定單元寫: 該

60、操作將從所選器件的指定地址寫,寫的字節(jié)數(shù)不指定,格式如下: 第第4章章 中斷、中斷、 定時與串行通信定時與串行通信 4.3.2 MCS-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ū)動鍵盤與顯示器。第第4章章 中斷、中斷、 定時與串行通信定時與串行通信圖423 MCS-51串行口的原理結(jié)構(gòu)圖 第第4章章

溫馨提示

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

評論

0/150

提交評論