版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1 第第5章中斷系統(tǒng)、章中斷系統(tǒng)、 定時器定時器/計數(shù)器與串行口計數(shù)器與串行口 5.1 MCS-51單片機中斷系統(tǒng)單片機中斷系統(tǒng) 中斷中斷是指計算機暫時停止原程序執(zhí)行轉而為外部設備是指計算機暫時停止原程序執(zhí)行轉而為外部設備 服務服務(執(zhí)行中斷服務程序執(zhí)行中斷服務程序), 并在服務完后自動返回原程序并在服務完后自動返回原程序 執(zhí)行的過程。執(zhí)行的過程。 5.1.1 中斷系統(tǒng)結構及中斷控制中斷系統(tǒng)結構及中斷控制 89C51單片機有單片機有5個中斷源個中斷源(89C52有有6個),可實現(xiàn)個),可實現(xiàn) 二級中斷服務程序嵌套二級中斷服務程序嵌套。 2 圖5-1 中斷系統(tǒng)結構示意圖 3 1. 中斷源中斷源
2、中斷源中斷源中斷標志中斷標志中斷入口地址中斷入口地址 外部中斷 /INT0(P3.2)IE00003H /INT1(P3.3)IE10013H 定時中斷 T0TF0000BH T1TF1001BH 串行中斷 發(fā)送中斷TI 0023H 接受中斷RI 4 2. 2. 中斷控制中斷控制 定時器控制寄存器定時器控制寄存器TCON、 串行口控制寄存器串行口控制寄存器SCON、 中中 斷允許寄存器斷允許寄存器IE和中斷優(yōu)先級寄存器和中斷優(yōu)先級寄存器IP (1) 定時器控制寄存器定時器控制寄存器(TCON) TCON(88H) D7 D6 D5 D4 D3 D2 D1 D0 5 (2) 串行口控制寄存器(串
3、行口控制寄存器(SCON)98H TITI串行口發(fā)送中斷請求標志位。當發(fā)送完一幀串行數(shù)據后,串行口發(fā)送中斷請求標志位。當發(fā)送完一幀串行數(shù)據后, 由由 硬件置硬件置1 1; 在轉向中斷服務程序后,在轉向中斷服務程序后, 用用軟件清軟件清0 0。 RIRI串行口接收中斷請求標志位。當接收完一幀串行數(shù)據后,串行口接收中斷請求標志位。當接收完一幀串行數(shù)據后, 由由 硬件置硬件置; 在轉向中斷服務程序后,在轉向中斷服務程序后, 用用軟件清軟件清0 0。 6 (3) 中斷允許控制寄存器(中斷允許控制寄存器(IE)0A8H 7 (5) 中斷優(yōu)先級控制中斷優(yōu)先級控制 A. 中斷優(yōu)先級控制寄存器(中斷優(yōu)先級控制
4、寄存器(IP)0B8H 8 B.中斷查詢順序中斷查詢順序 當同時接收到幾個同一優(yōu)先級的中斷請求時,當同時接收到幾個同一優(yōu)先級的中斷請求時, 響應響應 哪個中斷源則取決于內部硬件查詢順序。哪個中斷源則取決于內部硬件查詢順序。 中斷源中斷源 同級自然優(yōu)先級同級自然優(yōu)先級 INT0 最高最高 T0 INT1 T1 串行口串行口 最低最低 C. C. 中斷嵌套(中斷嵌套(2 2個中斷優(yōu)先級)個中斷優(yōu)先級) 由由IP設定高、低兩級優(yōu)先級設定高、低兩級優(yōu)先級 原則:原則:允許高中斷低,禁止低中斷高和同級中斷允許高中斷低,禁止低中斷高和同級中斷 9 5.1.2 中斷響應及中斷處理過程中斷響應及中斷處理過程
5、89C51單片機中斷過程分為單片機中斷過程分為中斷采樣中斷采樣、 中斷查詢中斷查詢、 中中 斷響應斷響應、 中斷處理中斷處理和和中斷返回中斷返回等幾個階段。等幾個階段。 1.中斷采樣(外部中斷采樣)中斷采樣(外部中斷采樣) 在每個機器周期的在每個機器周期的S5P2時刻對芯片引腳時刻對芯片引腳INT0(P3.2) 和和INT1(P3.3)進行采樣。)進行采樣。 (1)電平觸發(fā)方式)電平觸發(fā)方式 中斷標志直接反映外部中斷引腳的狀態(tài),無記憶功能,中斷標志直接反映外部中斷引腳的狀態(tài),無記憶功能, 低電平時間至少需保持一個機器周期,低電平時間至少需保持一個機器周期, 才能保證中斷請才能保證中斷請 求能被
6、采樣到。求能被采樣到。 (2)負跳變觸發(fā)方式)負跳變觸發(fā)方式 在兩個相鄰機器周期采樣到的是在兩個相鄰機器周期采樣到的是先高電平后低電平先高電平后低電平, 則中斷請求有效,則中斷請求有效, 由硬件將由硬件將IE0或或IE1置置1,具有記憶功能,具有記憶功能, 負脈沖的寬度也應至少為一個機器周期。負脈沖的寬度也應至少為一個機器周期。 10 2.中斷查詢中斷查詢 由由CPU測試測試TCON和和SCON中各標志位的狀態(tài),中斷查詢在指令中各標志位的狀態(tài),中斷查詢在指令 執(zhí)行的每個機器周期中不停地重復進行。執(zhí)行的每個機器周期中不停地重復進行。 3.中斷響應中斷響應 (1)產生硬件調用,將斷點地址壓入堆棧。
7、)產生硬件調用,將斷點地址壓入堆棧。 (2)中斷封鎖)中斷封鎖 A、CPU正處在為一個同級或高級的中斷服務中。正處在為一個同級或高級的中斷服務中。因為當一個中因為當一個中 斷被響應時,斷被響應時, 要把對應的優(yōu)先級觸發(fā)器置位,要把對應的優(yōu)先級觸發(fā)器置位, 封鎖了低級和同級中封鎖了低級和同級中 斷。斷。 B、查詢中斷請求的機器周期不是當前指令的最后一個機器周期。查詢中斷請求的機器周期不是當前指令的最后一個機器周期。 目的在于確保當前指令的完整執(zhí)行。目的在于確保當前指令的完整執(zhí)行。 C、當前指令是返回指令(當前指令是返回指令(RET, RETI)或訪問)或訪問IE、 IP的指令。的指令。 在執(zhí)行完
8、這些指令之后,在執(zhí)行完這些指令之后, 還應再繼續(xù)執(zhí)行一條指令,還應再繼續(xù)執(zhí)行一條指令, 然后才能響應然后才能響應 中斷。中斷。 89C51對中斷查詢的結果不作記憶,對中斷查詢的結果不作記憶, 當有新的查詢結果出現(xiàn)時,當有新的查詢結果出現(xiàn)時, 因為以上原因而被拖延的查詢結果將不復存在,因為以上原因而被拖延的查詢結果將不復存在, 其中斷請求也就不其中斷請求也就不 能再被響應了。能再被響應了。 11 (3)中斷響應時間)中斷響應時間 響應時間為響應時間為38個機器周期個機器周期,如果遇到中斷受阻的情,如果遇到中斷受阻的情 況,則中斷響應時間會更長一些。況,則中斷響應時間會更長一些。 4. 中斷處理(
9、中斷服務)中斷處理(中斷服務) 5. 中斷返回中斷返回 CPU執(zhí)行執(zhí)行RETI指令時,指令時, 把響應中斷位置的優(yōu)先級把響應中斷位置的優(yōu)先級 觸發(fā)器復位,觸發(fā)器復位, 再從堆棧中彈出斷點地址送入程序計數(shù)器再從堆棧中彈出斷點地址送入程序計數(shù)器 PC, 以便從斷點處重新執(zhí)行被中斷的主程序。以便從斷點處重新執(zhí)行被中斷的主程序。 12 5.1.3 中斷請求的撤銷中斷請求的撤銷 1. 定時中斷請求的撤銷定時中斷請求的撤銷 定時中斷響應后,硬件自動把標志位(定時中斷響應后,硬件自動把標志位(TF0或或TF1)清)清0, 因此定時中斷的中斷請求是自動撤銷的。因此定時中斷的中斷請求是自動撤銷的。 2. 脈沖方
10、式外部中斷的撤銷脈沖方式外部中斷的撤銷 中斷響應時自動撤銷,在中斷服務過程中有新的下中斷響應時自動撤銷,在中斷服務過程中有新的下 跳變會重新置位中斷標志位。跳變會重新置位中斷標志位。 3. 電平方式外部中斷請求的撤銷電平方式外部中斷請求的撤銷 中斷響應時自動撤銷,在中斷返回后仍然為低電平中斷響應時自動撤銷,在中斷返回后仍然為低電平 將會再次響應中斷。將會再次響應中斷。 4. 串行中斷請求撤銷串行中斷請求撤銷 由軟件(程序)清除標志位。由軟件(程序)清除標志位。 13 5.1.4 外部中斷源的擴展外部中斷源的擴展 1. 用定時器作外部中斷源用定時器作外部中斷源 MCS-51單片機有兩個定時器,具
11、有兩個內中斷標志和單片機有兩個定時器,具有兩個內中斷標志和 外計數(shù)引腳,如在某些應用中不被使用,則它們定時器中外計數(shù)引腳,如在某些應用中不被使用,則它們定時器中 斷可作為外部中斷請求使用。此時,可將定時器設置成計斷可作為外部中斷請求使用。此時,可將定時器設置成計 數(shù)方式,計數(shù)初值可設為滿量程,則它們的計數(shù)輸入端數(shù)方式,計數(shù)初值可設為滿量程,則它們的計數(shù)輸入端T0 (P3.4)或)或T1(P3.5)引腳上發(fā)生負跳變時,計數(shù)器加)引腳上發(fā)生負跳變時,計數(shù)器加1產產 生溢出中斷。利用此特性,可把生溢出中斷。利用此特性,可把T0腳或腳或T1腳作為外部中斷腳作為外部中斷 請求輸入線,而計數(shù)器的溢出中斷作
12、為外部中斷請求標志。請求輸入線,而計數(shù)器的溢出中斷作為外部中斷請求標志。 【例【例5.1】將定時器】將定時器0擴展為外部中斷源擴展為外部中斷源n 解:將定時器解:將定時器0設定為方式設定為方式2(自動恢復計數(shù)初值),(自動恢復計數(shù)初值),TH0 和和TL0的初值均設置為的初值均設置為FFH,允許定時器,允許定時器0中斷,中斷,CPU開放開放 中斷。源程序如下:中斷。源程序如下: 14 MOVTMOD,#06H MOVTH0,#0FFH MOVTL0,#0FFH SETBTR0 SETBET0 SETBEA 當連接在當連接在T0(P3.4)引腳上的外部中斷請求輸入線發(fā)生負)引腳上的外部中斷請求輸
13、入線發(fā)生負 跳變時,跳變時,TL0加加1溢出,溢出,TF0置置1,向,向CPU發(fā)出中斷申請,同時,發(fā)出中斷申請,同時, TH0的內容自動送至的內容自動送至TL0使使TL0恢復初值。這樣,恢復初值。這樣,T0引腳每輸引腳每輸 入一個負跳變,入一個負跳變,TF0都會置都會置1,向,向CPU請求中斷。此時,請求中斷。此時,T0腳腳 相當于邊沿觸發(fā)的外部中斷源輸入線。相當于邊沿觸發(fā)的外部中斷源輸入線。 同樣,也可將定時器同樣,也可將定時器1擴展為外部中斷源。擴展為外部中斷源。 15 2. 中斷和查詢相結合中斷和查詢相結合 一個外中斷擴展成多個外中斷的原理圖 16 由圖可知,由圖可知,4個外部擴展中斷源
14、通過個外部擴展中斷源通過 4個個OC門電路組門電路組 成線或取非后再與成線或取非后再與 /INT0(P3.2)相連;)相連;4個外部擴展中個外部擴展中 斷源斷源EXINT0EXINT3中有一個或幾個出現(xiàn)高電平則輸中有一個或幾個出現(xiàn)高電平則輸 出為出為0,使,使/INT0腳為低電平,從而發(fā)出中斷請求。因此,腳為低電平,從而發(fā)出中斷請求。因此, 這些擴充的外部中斷源都是電平觸發(fā)方式(高電平有效)。這些擴充的外部中斷源都是電平觸發(fā)方式(高電平有效)。 CPU執(zhí)行中斷服務程序時,先依次查詢執(zhí)行中斷服務程序時,先依次查詢P1口的中斷源輸口的中斷源輸 入狀態(tài),然后,轉入到相應的中斷服務程序,入狀態(tài),然后,
15、轉入到相應的中斷服務程序,4個擴展中個擴展中 斷源的優(yōu)先級順序由軟件查詢順序決定,即最先查詢的優(yōu)斷源的優(yōu)先級順序由軟件查詢順序決定,即最先查詢的優(yōu) 先級最高,最后查詢的優(yōu)先級最低。先級最高,最后查詢的優(yōu)先級最低。 中斷服務程序如下: ORG0003H;外部中斷外部中斷0入口入口 AJMPINT0;轉向中斷服務程序入口轉向中斷服務程序入口 INT0:PUSHPSW;保護現(xiàn)場保護現(xiàn)場 PUSHACC JBP1.0 , EXT0;中斷源查詢并轉相應中斷服務程序中斷源查詢并轉相應中斷服務程序 JBP1.1 , EXT1 JBP1.2 , EXT2 JBP1.3 , EXT3 EXIT:POPACC;恢
16、復現(xiàn)場恢復現(xiàn)場 POPPSW RETI EXT0:;EXINT0中斷服務程序中斷服務程序 AJMPEXIT EXT1:;EXINT1中斷服務程序中斷服務程序 AJMPEXIT EXT2:;EXINT2中斷服務程序中斷服務程序 AJMPEXIT EXT3:;EXINT3中斷服務程序中斷服務程序 AJMPEXIT 同樣,外部中斷1也可作相應的擴展。 5.1.5 處理外部中斷舉例處理外部中斷舉例 要求每次按動按鍵,使外接發(fā)光二極管要求每次按動按鍵,使外接發(fā)光二極管LEDLED改變一次亮滅狀態(tài)。改變一次亮滅狀態(tài)。 解:解:INT0INT0輸入按鍵信號,輸入按鍵信號,P P1.0 1.0輸出改變 輸出改
17、變LEDLED狀態(tài)。狀態(tài)。 1跳變觸發(fā):跳變觸發(fā):每次跳變引起一次中斷請求。每次跳變引起一次中斷請求。 ORG 0000H;復位入口;復位入口 AJMP MAIN ORG0003H ;中斷入口;中斷入口 AJMP PINT0 ORG0100H ;主程序;主程序 MAIN:MOV SP,#40H;設棧底;設棧底 SETB IT0;開總允許開關;開總允許開關 SETB EX0;開;開INT0中斷中斷 SETB EA;負跳變觸發(fā)中斷;負跳變觸發(fā)中斷 H:SJMP H ;執(zhí)行其它任務;執(zhí)行其它任務 ORG0200H ;中斷服務程序;中斷服務程序 PINT0:CPL P1.0;改變;改變LED RETI
18、;返回主程序;返回主程序 單片機單片機 INT0 P1.0 1 +5V 1 1軟件等待按鍵釋放。軟件等待按鍵釋放。 2 2硬件清除中斷信號。硬件清除中斷信號。 2. 電平觸發(fā)電平觸發(fā):避免一次按鍵引起多次中斷響應。避免一次按鍵引起多次中斷響應。 單片機單片機 INT0 P1.0 1 +5V ORG 0000H;復位入口;復位入口 AJMP MAIN ORG0003H ;中斷入口;中斷入口 AJMP PINT0 ORG0100H ;主程序;主程序 MAIN:MOV SP,#40H;設棧底;設棧底 CLRIT0;低電平觸發(fā)中斷;低電平觸發(fā)中斷 SETB EX0;開;開INT0中斷中斷 SETB E
19、A;開總允許開關;開總允許開關 H:SJMP H ;執(zhí)行其它任務;執(zhí)行其它任務 ORG0200H ;中斷服務程序;中斷服務程序 PINT0:CPL P1.0;改變;改變LED WAIT:JNBP3.2,WAIT;等按鍵釋放;等按鍵釋放 RETI;返回主程序;返回主程序 20 5.2 定時定時/計數(shù)器計數(shù)器 5.2.1 定時器定時器/計數(shù)器的組成計數(shù)器的組成 21 5.2.2 定時定時/計數(shù)器的定時和計數(shù)功能計數(shù)器的定時和計數(shù)功能 1. 計數(shù)功能計數(shù)功能 所謂計數(shù)是指對外部事件進行計數(shù)。外部事件以脈所謂計數(shù)是指對外部事件進行計數(shù)。外部事件以脈 沖的形式通過引腳沖的形式通過引腳T0(P3.4)和)
20、和T1(P3.5)輸入到定時)輸入到定時 /計數(shù)器。下降沿時,計數(shù)器。下降沿時, 計數(shù)器的值加計數(shù)器的值加1。 89C51在每個機器周期的在每個機器周期的S5P2期間采樣期間采樣T0和和T1引腳引腳 的輸入電平,計數(shù)脈沖的頻率不能高于振蕩脈沖頻率的的輸入電平,計數(shù)脈沖的頻率不能高于振蕩脈沖頻率的 1/24 。 2. 定時功能定時功能 定時功能也是通過計數(shù)器的計數(shù)功能來實現(xiàn)的,計定時功能也是通過計數(shù)器的計數(shù)功能來實現(xiàn)的,計 數(shù)脈沖來自單片機的內部,數(shù)脈沖來自單片機的內部, 每個機器周期產生一個計數(shù)每個機器周期產生一個計數(shù) 脈沖,計數(shù)器加脈沖,計數(shù)器加1。根據定時時間的要求計算出計數(shù)器。根據定時時
21、間的要求計算出計數(shù)器 的預置值(定時常數(shù))。的預置值(定時常數(shù))。 22 5.2.3 定時器定時器/計數(shù)器的控制寄存器計數(shù)器的控制寄存器 1.定時器控制寄存器(定時器控制寄存器(TCON) 23 2. 工作方式控制寄存器(工作方式控制寄存器(TMOD) 24 5.2.4 定時定時/計數(shù)器工作方式計數(shù)器工作方式 1. 方式方式0 (13位定時位定時/計數(shù)器方式計數(shù)器方式) 最大計數(shù)值:最大計數(shù)值:213 = 8192 25 定時時間定時時間(T)=(213-計數(shù)初值)計數(shù)初值)機器周期機器周期 例例: :設單片機晶振頻率為設單片機晶振頻率為12MHz, 使用定時器使用定時器1以方式以方式0產生周
22、期為產生周期為 500s的等寬正方波連續(xù)脈沖,的等寬正方波連續(xù)脈沖, 并由并由P1.0輸出。以查詢方式完成。輸出。以查詢方式完成。 計算計數(shù)初值計算計數(shù)初值 (213-X)110-6=25010-6 X=7942=1111100000110B 1111 1000 0000 0110B F 8 0 6 H TH1 TL1 TMOD寄存器初始化寄存器初始化(確定工作方式確定工作方式) TMOD=0000 0000B 啟動啟動T1(TCON中的中的TR1位控制定時的啟動和停止位控制定時的啟動和停止) 26 MOV TMOD, #00H; 設置設置T1為工作方式為工作方式0 MOV TH1, # 0F
23、8H; 設置計數(shù)初值設置計數(shù)初值 MOV TL1, #06H MOV IE, #00H; 禁止中斷禁止中斷 LOOP: SETB TR1; 啟動定時啟動定時 LOOP1:JBC TF1, LOOP2; 查詢計數(shù)溢出查詢計數(shù)溢出 AJMP LOOP1 LOOP2: MOV TH1, #0F8H; 重新設計數(shù)初值重新設計數(shù)初值 MOV TL1, #06H CLR TF1; 計數(shù)溢出標志位清計數(shù)溢出標志位清“0” CPL P1.0; 輸出取反輸出取反 AJMP LOOP; 重復循環(huán)重復循環(huán) 27 2. 方式方式1 (16位定時位定時/計數(shù)器方式計數(shù)器方式) 8 最大計數(shù)值:最大計數(shù)值:216 = 6
24、5536 28 3. 方式方式2 (8位自動重裝定時位自動重裝定時/計數(shù)器方式計數(shù)器方式) 最大計數(shù)值:最大計數(shù)值:28 = 256 29 3. 方式方式 (3定時定時/計數(shù)器方式計數(shù)器方式) (1) 工作方式工作方式3下的定時計數(shù)器下的定時計數(shù)器T0 TL0:8位定時位定時/計數(shù)器計數(shù)器 TH0:8位定時器位定時器 30 (2) 工作方式工作方式3下的定時器計數(shù)器下的定時器計數(shù)器1 T1設置為方式設置為方式3, 停止工作。如果停止工作。如果T0已工作已工作 在方式在方式3, 則則T1只能工作在方式只能工作在方式0方式方式1或方式或方式2下,下, 通常工作于方式通常工作于方式2為串行口提供波特
25、率時鐘,只需為串行口提供波特率時鐘,只需 設置好工作方式和計數(shù)初值,設置好工作方式和計數(shù)初值, 便可自動運行。便可自動運行。 31 應用舉例:應用舉例:設設89C51單片機的時鐘頻率為單片機的時鐘頻率為6MHz, 試編寫利用試編寫利用T0產生產生1s 定時的定時的 程序。程序。 ORG 0000H LJMP MAIN ; 上電,上電, 轉向主程序轉向主程序 ORG 000BH ; T0的中斷入口地址的中斷入口地址 AJMP SERVE ; 轉向中斷服務程序轉向中斷服務程序 ORG 0030H ; 主程序主程序 MAIN:MOV SP , #60H ; 設堆棧指針設堆棧指針 MOV B, #0A
26、H ; 設循環(huán)次數(shù)設循環(huán)次數(shù) MOV TMOD, #01H ; 設置設置T0工作于模式工作于模式1 MOV TL0, #0B0H; 裝入計數(shù)值低裝入計數(shù)值低8位位 MOV TH0, #3CH; 裝入計數(shù)值高裝入計數(shù)值高8位位 SETB TR0; 啟動定時器啟動定時器T0 SETB ET0; 允許允許T0中斷中斷 SETB EA; 允許允許CPU中斷中斷 SJMP ; 等待中斷等待中斷 中斷服務程序:中斷服務程序: SERVE:MOV TL0, #0B0H MOV TH0, #3CH; 重新賦計數(shù)值重新賦計數(shù)值 DJNZ B, LOOP CLR TR0 ; 1s定時到,定時到, 停止停止T0工作
27、工作 LOOP: RETI ; 中斷返回中斷返回 END 32 5.3 串行接口串行接口 5.3.1 串行接口的功能與結構串行接口的功能與結構 1. 串行接口的功能串行接口的功能 89C51單片機中的串行接口是一個全雙工串行通信接口,單片機中的串行接口是一個全雙工串行通信接口, 能同時發(fā)送、能同時發(fā)送、 接收數(shù)據,接收數(shù)據, 也能用作同步移位寄存器。也能用作同步移位寄存器。 SM0SM1 工作方式工作方式功功 能能波特率波特率 00方式方式 0 8位同步移位寄存器方式位同步移位寄存器方式fOSC/12 01方式方式 1 8位通用異步接收器位通用異步接收器/發(fā)送器發(fā)送器可變可變 10方式方式 2
28、 9位通用異步接收器位通用異步接收器/發(fā)送器發(fā)送器fOSC/32或或fOSC/64 11方式方式 3 9位通用異步接收器位通用異步接收器/發(fā)送器發(fā)送器可變可變 33 34 2. 串行接口結構串行接口結構 35 5.3.2 串行接口控制串行接口控制 1.數(shù)據緩沖器數(shù)據緩沖器SBUF 發(fā)送發(fā)送SBUFSBUF和接收和接收SBUFSBUF共用一個地址共用一個地址99H99H。 1 1)發(fā)送)發(fā)送SBUFSBUF存放待發(fā)送的存放待發(fā)送的8 8位數(shù)據,寫入位數(shù)據,寫入SBUFSBUF將同時啟動發(fā)送。將同時啟動發(fā)送。 發(fā)送指令:發(fā)送指令:MOV SBUF,A 2 2)接收)接收SBUFSBUF存放已接收成
29、功的存放已接收成功的8 8位數(shù)據,供位數(shù)據,供CPUCPU讀取。讀取。 讀取串行口接收數(shù)據指令:讀取串行口接收數(shù)據指令: MOV A,SBUF 36 3.節(jié)電控制寄存器節(jié)電控制寄存器PCON(87H) SMOD(PCON.7):波特率加倍控制位。:波特率加倍控制位。 SMOD=1,波特率加倍,波特率加倍, SMOD=0,則不加倍,則不加倍。 2.串行口控制串行口控制/狀態(tài)寄存器狀態(tài)寄存器SCON(98H) SM0SM0,SM1SM1:選擇串行口選擇串行口4 4種工作方式。種工作方式。 SM2SM2:多機控制位,用于多機通訊。多機控制位,用于多機通訊。 RENREN:允許接收控制位,允許接收控制
30、位,REN=1REN=1,允許接收;,允許接收;REN=0REN=0,禁止接收。,禁止接收。 TB8TB8:發(fā)送的第發(fā)送的第9 9位數(shù)據位,可用作校驗位和地址位數(shù)據位,可用作校驗位和地址/ /數(shù)據標識位數(shù)據標識位 RB8RB8:接收的第接收的第9 9位數(shù)據位或停止位位數(shù)據位或停止位 TITI:發(fā)送中斷標志,發(fā)送一幀結束,發(fā)送中斷標志,發(fā)送一幀結束,TI=1TI=1,必須軟件清零,必須軟件清零 RIRI:接收中斷標志,接收一幀結束,接收中斷標志,接收一幀結束,RI=1RI=1,必須軟件清零,必須軟件清零 37 5.3.3 串行接口的工作方式串行接口的工作方式 1. 方式方式0:同步移位寄存器方式
31、。用于擴展并行同步移位寄存器方式。用于擴展并行I/I/O接口。接口。 A.A.一幀一幀8 8位,無起始位和停止位。位,無起始位和停止位。 B.B.RXDRXD:數(shù)據輸入:數(shù)據輸入/ /輸出端。輸出端。 TXDTXD:同步脈沖輸出端,每個脈沖對應一個數(shù)據位。:同步脈沖輸出端,每個脈沖對應一個數(shù)據位。 C.C.波特率波特率Baud = fosc/12Baud = fosc/12 如:如: fosc=12MHzfosc=12MHz, Baud=1MHzBaud=1MHz,每位數(shù)據占,每位數(shù)據占1 1 s s。 D.D.發(fā)送過程:寫入發(fā)送過程:寫入SBUFSBUF,啟動發(fā)送,一幀發(fā)送結束,啟動發(fā)送,一
32、幀發(fā)送結束,TI=1TI=1。 接收過程:接收過程:REN=1REN=1且且RI=0RI=0,啟動接收,一幀接收完畢,啟動接收,一幀接收完畢,RI=1RI=1 發(fā)送時序 發(fā)送時序 寫入寫入 SBUF RXD輸出輸出 TXD TI D0D1D2D3D4D5D6D7 寫寫REN=1 RI=0 RXD輸入輸入 RI 接收時序 接收時序 (a) (b) 38 例:使用例:使用74HC164的并行輸出端接的并行輸出端接8支發(fā)光二極管,支發(fā)光二極管, 利用它利用它 的串入并出功能,的串入并出功能, 將發(fā)光二極管從左向右依次點亮。將發(fā)光二極管從左向右依次點亮。 MOV SCON, # 00H ; 串行口方式
33、串行口方式0工作工作 CLR ES ; 禁止串行中斷禁止串行中斷 MOV A, #80H ; 發(fā)光管從左邊亮起發(fā)光管從左邊亮起 DELR:CLR P1.0 ; 關閉并行輸出關閉并行輸出 MOV SBUF, A ; 串行輸出串行輸出 JNB TI, ; 狀態(tài)維持狀態(tài)維持 SETB P1.0 ; 開啟并行輸出開啟并行輸出 ACALL DELAY ; 狀態(tài)維持狀態(tài)維持 CLR TI ; 清發(fā)送中斷標志清發(fā)送中斷標志 RR A ; 發(fā)光組合中斷標志發(fā)光組合中斷標志 AJMP DELR ; 繼續(xù)繼續(xù) 39 2. 方式方式1:8位數(shù)據異步通訊方式位數(shù)據異步通訊方式 A.一幀一幀10位:位:8位數(shù)據位,位數(shù)
34、據位,1個起始位個起始位(0),1個停止位個停止位(1)。 B.RXD:接收數(shù)據端。:接收數(shù)據端。 TXD:發(fā)送數(shù)據端。:發(fā)送數(shù)據端。 C.波特率:用波特率:用T1作為波特率發(fā)生器,作為波特率發(fā)生器,Baud=(2SMOD/32)T1溢出溢出 率。率。 D.發(fā)送:寫入發(fā)送:寫入SBUF,同時啟動發(fā)送,一幀發(fā)送結束,同時啟動發(fā)送,一幀發(fā)送結束,TI=1。 接收:接收:REN=1,允許接收。接收完一幀,若,允許接收。接收完一幀,若RI=0且停止位為且停止位為1 (或或SM2=0),將接收數(shù)據裝入,將接收數(shù)據裝入SBUF,停止位裝入,停止位裝入RB8,并使,并使RI=1; 否則丟棄接收數(shù)據,不置位否
35、則丟棄接收數(shù)據,不置位RI。 當當REN=1,CPU開始采樣開始采樣RXD引腳負跳變信號,若出現(xiàn)負跳變,引腳負跳變信號,若出現(xiàn)負跳變, 才進入數(shù)據接收狀態(tài),先檢測起始位,若第一位為才進入數(shù)據接收狀態(tài),先檢測起始位,若第一位為0,繼續(xù)接收其,繼續(xù)接收其 余位;否則,停止接收,重新采樣負跳變。余位;否則,停止接收,重新采樣負跳變。 數(shù)據采樣速率為波特率數(shù)據采樣速率為波特率16倍頻,在數(shù)據位中間,用第倍頻,在數(shù)據位中間,用第7、8、9個個 脈沖采樣脈沖采樣3次數(shù)據位,并次數(shù)據位,并3中取中取2保留采樣值。保留采樣值。 40 41 3. 方式方式2和方式和方式3:9位數(shù)據異步通訊方式位數(shù)據異步通訊方式
36、 A.一幀為一幀為11位:位:9位數(shù)據位,位數(shù)據位,1個起始位個起始位(0),1個停止位個停止位(1)。 第第9位數(shù)據位在位數(shù)據位在TB8/RB8中,常用作校驗位和多機通訊標識位。中,常用作校驗位和多機通訊標識位。 B.RXD:接收數(shù)據端,:接收數(shù)據端,TXD:發(fā)送數(shù)據端。:發(fā)送數(shù)據端。 C.波特率:波特率: 方式方式2:Baud=(2SMOD/64)fosc 。 方式方式3:Baud=(2SMOD/32)T1溢出率溢出率 。 D.發(fā)送:先裝入發(fā)送:先裝入TB8,寫入,寫入SBUF并啟動發(fā)送,發(fā)送結束,并啟動發(fā)送,發(fā)送結束,TI=1 接收:接收:REN=1,允許接收。接收完一幀,若,允許接收。
37、接收完一幀,若RI=0且第且第9位為位為1 (或或SM2=0),將接收數(shù)據裝入接收,將接收數(shù)據裝入接收SBUF,第,第9位裝入位裝入RB8,使,使RI=1; 否則丟棄接收數(shù)據,不置位否則丟棄接收數(shù)據,不置位RI。 42 43 4.計算波特率計算波特率 方式方式0為固定波特率:為固定波特率:Baud=fosc/12 方式方式2可選兩種波特率:可選兩種波特率: Baud=(2SMOD /64)fosc 方式方式1、3為可變波特率,用為可變波特率,用T1作波特率發(fā)生器。作波特率發(fā)生器。 Baud=(2SMOD/32)T1溢出率溢出率 T1為方式為方式2的時間常數(shù):的時間常數(shù): X = 28 - t/
38、T 溢出時間:溢出時間: t= (28 -X)T = (28 -X)12/ fosc T1溢出率溢出率=1/t= fosc /12(28 -X) 波特率波特率Baud=(2SMOD /32)fosc/12(28-X) 串行口方式串行口方式1、3,根據波特率選擇,根據波特率選擇T1工作方式,計算時間常數(shù)工作方式,計算時間常數(shù) T1選方式選方式2: TL1=TH1=X= 28-fosc/122SMOD/(32B) T1選方式選方式1用于低波特率,需考慮用于低波特率,需考慮T1重裝時間常數(shù)時間。重裝時間常數(shù)時間。 44 5.3.4 串行口的應用串行口的應用 串行口初始化編程格式:串行口初始化編程格式
39、: SIO:MOV SCON,#控制狀態(tài)字;寫方式字且控制狀態(tài)字;寫方式字且TI=RI=0 (MOV PCON,#80H) ;波特率加倍;波特率加倍 ( MOV TMOD,#20H ) ;T1作波特率發(fā)生器作波特率發(fā)生器 ( MOV TH1,#X ) ;選定波特率;選定波特率 ( MOV TL1,#X ) ( SETB TR1) ( SETB EA) ;開串行口中斷;開串行口中斷 ( SETB ES) 45 發(fā)送程序:先發(fā)送一個字符,等待發(fā)送程序:先發(fā)送一個字符,等待TI=1TI=1后再發(fā)送下一個字符。后再發(fā)送下一個字符。 1.1.查詢方式:查詢方式: TRAM:MOV A,R0 ;取數(shù)據;取數(shù)據 MOV SBUF,A ;發(fā)送一個字符;發(fā)送一個字符 WAIT:JBCTI,NEXT ;等待發(fā)送結束;等待發(fā)送結束 SJMP WAIT NEXT:INCR0 ;準備下一次發(fā)送;準備下一次發(fā)送 SJMP TRAM 2.中斷方式:中斷方式: ORG 0023H ;串行口中斷入口;串行口中斷入口 AJMP SINT MAIN: ;初始化編程;初始化編程 TRAM: MOV A,R0 ;取數(shù)據;取數(shù)據 MOV SBUF,A ;發(fā)送第一個字符;發(fā)送第一個字符
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 十六橋課件教學課件
- 04品牌授權塔吊品牌授權使用合同
- 2024年度汽車租賃與售后服務合同
- 2024年度道路照明工程燈具維修勞務分包合同
- 2024年屋面瓦鋪設工程項目合同
- 2024家庭裝飾裝修的合同模板
- 2024年度衛(wèi)星導航系統(tǒng)應用合作協(xié)議
- 2024年度軟件開發(fā)與測試合同
- 2024年度知識產權許可合同.do
- 2024年度物流配送服務承包商的選取協(xié)議
- 船舶觸碰橋梁應急預案
- 江蘇省鹽城市鹽都區(qū)實驗初中2023-2024學年九年級上學期12月月考數(shù)學試題
- 護理禮儀演示課件
- 蒸汽特性數(shù)據表
- 《高級會計學(第9版)》習題答案
- 職業(yè)生涯規(guī)劃-軟件測試工程師
- 家長會課件:初二上期家長會課件
- Unit1第1課時(SectionA1a2d)(教學設計)九年級英語全一冊(人教版)
- 血液透析患者水分控制的健康宣教
- :第四單元《音詩音畫》-《沃爾塔瓦河》 課件
- 東華大學理論考試體育舞蹈題庫
評論
0/150
提交評論