第3章MCS51單片機的內(nèi)部資源及應(yīng)用_第1頁
第3章MCS51單片機的內(nèi)部資源及應(yīng)用_第2頁
第3章MCS51單片機的內(nèi)部資源及應(yīng)用_第3頁
第3章MCS51單片機的內(nèi)部資源及應(yīng)用_第4頁
第3章MCS51單片機的內(nèi)部資源及應(yīng)用_第5頁
已閱讀5頁,還剩93頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1第第3章章 MCS-51單片機的內(nèi)部資源及應(yīng)用單片機的內(nèi)部資源及應(yīng)用主要內(nèi)容:主要內(nèi)容:MCS-51單片機內(nèi)部各器件的具體結(jié)構(gòu)、組成原理、單片機內(nèi)部各器件的具體結(jié)構(gòu)、組成原理、工作方式的設(shè)置及典型應(yīng)用,為讀者后續(xù)學(xué)習(xí)單片工作方式的設(shè)置及典型應(yīng)用,為讀者后續(xù)學(xué)習(xí)單片機應(yīng)用系統(tǒng)設(shè)計、充分利用單片機內(nèi)部資源解決工機應(yīng)用系統(tǒng)設(shè)計、充分利用單片機內(nèi)部資源解決工程實際問題奠定基礎(chǔ)。程實際問題奠定基礎(chǔ)。重重 點:點:單片機內(nèi)部各器件工作方式的設(shè)置及靈活應(yīng)用。單片機內(nèi)部各器件工作方式的設(shè)置及靈活應(yīng)用。難難 點:點:中斷系統(tǒng)和定時器中斷系統(tǒng)和定時器/計數(shù)器的應(yīng)用。計數(shù)器的應(yīng)用。 2第第3章章 MCS-51單片

2、機的內(nèi)部資源及應(yīng)用單片機的內(nèi)部資源及應(yīng)用3.1 MCS-51單片機的并行單片機的并行I/O口口3.2 MCS-51單片機的中斷系統(tǒng)單片機的中斷系統(tǒng) 3.3 MCS-51單片機的定時器單片機的定時器/計數(shù)器計數(shù)器3.4 MCS-51 MCS-51 單片機的串行通信單片機的串行通信33.1 MCS-51單片機的并行單片機的并行I/O口口3.1.1 MCS-513.1.1 MCS-51內(nèi)部并行內(nèi)部并行I/OI/O口口 8051有有4個個8位并行位并行I/O口,分別命名為口,分別命名為P0, P1, P2和和P3口???。1P0口口 P0口為雙向三態(tài)輸入口為雙向三態(tài)輸入/輸出口,輸出口, P0口既可作為

3、地址口既可作為地址/數(shù)據(jù)總線口,數(shù)據(jù)總線口,又可作為通用又可作為通用I/O口,可驅(qū)動口,可驅(qū)動8個個TTL輸入。在訪問外部存儲器時,輸入。在訪問外部存儲器時,P0口作地址口作地址/數(shù)據(jù)總線存儲器時。數(shù)據(jù)總線存儲器時。P0口作地址口作地址/數(shù)據(jù)總線復(fù)用口,數(shù)據(jù)總線復(fù)用口,是一個真正的雙向口,并分時送是一個真正的雙向口,并分時送出地址的低出地址的低8位和送出(或接收)位和送出(或接收)相應(yīng)存儲單元的數(shù)據(jù)。相應(yīng)存儲單元的數(shù)據(jù)。作通用作通用I/O口時,口時,P0口只是一個準雙向口只是一個準雙向口,需要在外部引腳處外接上拉口,需要在外部引腳處外接上拉電阻。電阻。 P0口的位結(jié)構(gòu)如右圖所口的位結(jié)構(gòu)如右圖所

4、示。示。42 2P2P2口口 P2口常用做口常用做外部存儲器的高外部存儲器的高8位地位地址址口。當(dāng)不用做地址口時,口。當(dāng)不用做地址口時,P2口也可口也可作為通用作為通用I/O口,這時它也是一個準雙口,這時它也是一個準雙向向I/O口??凇2槐赝饨由侠娮璨槐赝饨由侠娮杈涂梢则?qū)就可以驅(qū)動任何動任何MOS驅(qū)動電路,且只能驅(qū)動驅(qū)動電路,且只能驅(qū)動4個個TTL輸入。輸入。P2口的位結(jié)構(gòu)如右圖所示??诘奈唤Y(jié)構(gòu)如右圖所示。3 3P1P1口口 P1口常用做通用口常用做通用I/O口,它也是口,它也是一個標準的準雙向一個標準的準雙向I/O口,口,不必外接上不必外接上拉電阻拉電阻就可以驅(qū)動任何就可以驅(qū)動任何MOS

5、驅(qū)動電路,驅(qū)動電路,且只能驅(qū)動且只能驅(qū)動4個個TTL輸入。輸入。P1口的位結(jié)口的位結(jié)構(gòu)如右圖所示。構(gòu)如右圖所示。54 4P3P3口口 P3口是一個雙功能口,第口是一個雙功能口,第一功能與一功能與P1口一樣可用做通用口一樣可用做通用I/O口,也是一個準雙向口,也是一個準雙向I/O口,口,不必外接上拉電阻,不必外接上拉電阻,能驅(qū)動能驅(qū)動4個個TTL輸入。另外還具有輸入。另外還具有第二功能第二功能。P3口工作在第二功能時各管腳定口工作在第二功能時各管腳定義如下表所示。義如下表所示。 P3口的位結(jié)構(gòu)圖口的位結(jié)構(gòu)圖如右圖所示。如右圖所示。 63.1.2 MCS-513.1.2 MCS-51內(nèi)部并行內(nèi)部并

6、行I/OI/O口的應(yīng)用口的應(yīng)用 MCS-51I/OMCS-51I/O端口的操作方式:端口的操作方式:(1 1)輸出數(shù)據(jù)方式:)輸出數(shù)據(jù)方式:CPU通過一條數(shù)據(jù)傳送指令就可以把輸通過一條數(shù)據(jù)傳送指令就可以把輸出數(shù)據(jù)寫入出數(shù)據(jù)寫入P0P3的端口鎖存器,然后通過輸出驅(qū)動器送的端口鎖存器,然后通過輸出驅(qū)動器送到端口引腳線。例如,下面的指令均可在到端口引腳線。例如,下面的指令均可在P0口輸出數(shù)據(jù)。口輸出數(shù)據(jù)。 MOV P0, AP0 = a; ANL P0, #data ORL P0, A(2 2)讀端口數(shù)據(jù)方式:)讀端口數(shù)據(jù)方式: CPU讀入的這個數(shù)據(jù)并非端口引腳線讀入的這個數(shù)據(jù)并非端口引腳線上的數(shù)據(jù)

7、。讀端口數(shù)據(jù)可以直接讀端口。例如,下面的指上的數(shù)據(jù)。讀端口數(shù)據(jù)可以直接讀端口。例如,下面的指令均可以從令均可以從P1口輸入數(shù)據(jù)??谳斎霐?shù)據(jù)。 MOV A, P1a = P1; MOV 20H, P1 MOV R0, P1 MOV R0, P17(3 3)讀端口引腳方式:)讀端口引腳方式:讀端口引腳方式可以從端口引腳上讀入信讀端口引腳方式可以從端口引腳上讀入信息。在這種方式下,息。在這種方式下,CPU首先必須使欲讀端口引腳所對應(yīng)的鎖首先必須使欲讀端口引腳所對應(yīng)的鎖存器置存器置1,然后才能讀端口引腳。因此,用戶在讀引腳時必須先,然后才能讀端口引腳。因此,用戶在讀引腳時必須先置位鎖存器后讀,連續(xù)使用

8、兩條指令。例如,下面的程序可以置位鎖存器后讀,連續(xù)使用兩條指令。例如,下面的程序可以讀讀P1引腳上的低引腳上的低4位信號。位信號。 MOV P1, #0FH ; 置位置位P1引腳的低引腳的低4位鎖存器位鎖存器 MOV A, P1 ; 讀讀P1引腳上的低引腳上的低4位信號送累加器位信號送累加器A8 在在I/O口直接用做輸入口直接用做輸入/輸出時,輸出時,CPU既可以把它們看做數(shù)據(jù)口,也可以既可以把它們看做數(shù)據(jù)口,也可以看做狀態(tài)口,這是由用戶決定的??醋鰻顟B(tài)口,這是由用戶決定的。 例題例題11要求將兩個要求將兩個BCD撥碼開關(guān)的數(shù)字和,在撥碼開關(guān)的數(shù)字和,在LED數(shù)碼管上顯示出來。數(shù)碼管上顯示出來

9、。(用(用CD4511驅(qū)動驅(qū)動LED)(開關(guān)閉合為)(開關(guān)閉合為1,斷開為,斷開為0) 解:解:CD4511是是BCD鎖存鎖存段碼譯碼段碼譯碼共陰共陰LED驅(qū)動集成電路,其引腳如右圖驅(qū)動集成電路,其引腳如右圖所示,各引腳功能如下:所示,各引腳功能如下: VCC:接正電源;接正電源; Vss:接地;接地; A, B, C, D:BCD碼輸入腳(碼輸入腳(A為最低位,為最低位,D為最高位);為最高位); QaQg:段碼輸出腳,高電平有效,最大可輸出段碼輸出腳,高電平有效,最大可輸出25mA電流;電流; EI:熄滅,接低電平,則熄滅,接低電平,則QaQg全部輸出低電平;全部輸出低電平; LC:點亮測

10、試,接低電平,則點亮測試,接低電平,則QaQg全部輸出高電平;全部輸出高電平; LE:鎖存允許,接高電平鎖存,則輸出不會隨鎖存允許,接高電平鎖存,則輸出不會隨BCD碼輸入改變。碼輸入改變。1 1I/OI/O口直接用于輸入口直接用于輸入/ /輸出輸出 9硬件電路設(shè)計:硬件電路設(shè)計:BCD撥碼開關(guān)為撥碼開關(guān)為4位,兩個位,兩個BCD撥碼開關(guān)分別接撥碼開關(guān)分別接至至P3口的高四位和低四位(注意:應(yīng)連接上拉電阻),由口的高四位和低四位(注意:應(yīng)連接上拉電阻),由P1口口的高四位和低四位通過兩片的高四位和低四位通過兩片CD4511分別擴展兩位分別擴展兩位LED。硬件電。硬件電路如右圖所示。路如右圖所示。

11、 軟件設(shè)計思想:軟件設(shè)計思想:讀讀P3口口引腳,得到輸入數(shù)據(jù),引腳,得到輸入數(shù)據(jù),將數(shù)據(jù)分成將數(shù)據(jù)分成2個個4位位BCD碼,求碼,求BCD碼和,輸出碼和,輸出到到P1口,通過口,通過CD4511驅(qū)驅(qū)動動LED顯示。顯示。10112 2I/OI/O口擴展外部存儲器口擴展外部存儲器 數(shù)據(jù)總線數(shù)據(jù)總線 寬度為寬度為8 8位,由位,由P0P0口提供。口提供。地址總線地址總線寬度為寬度為1616位,低位,低8 8位位A7-A0A7-A0由由P0P0口提供,高口提供,高8 8位位A15-A8A15-A8由由P2P2口提供??谔峁0P0口數(shù)據(jù)地址分時復(fù)用,所以口數(shù)據(jù)地址分時復(fù)用,所以P0P0口輸出的低口

12、輸出的低8 8位地址必須用地址鎖位地址必須用地址鎖存器鎖存存器鎖存( (一般選用一般選用8D8D鎖存器鎖存器74LS373)74LS373)??刂瓶偩€控制總線: :RD RD 讀控制讀控制WR WR 寫控制寫控制PSEN PSEN 片外片外ROMROM選通選通ALE ALE 地址鎖存控制地址鎖存控制EA EA 片外片外ROMROM選擇選擇12 片外ROM或EEPROM的擴展(地址范圍0000HFFFFH)13 片外RAM的擴展(地址范圍0000H7FFFH)143.2 MCS-51單片機的中斷系統(tǒng)單片機的中斷系統(tǒng) 計算機通過外部設(shè)備(也稱為外設(shè)、輸入計算機通過外部設(shè)備(也稱為外設(shè)、輸入/輸出設(shè)

13、備或輸出設(shè)備或I/O設(shè)備)設(shè)備)與外界聯(lián)系。計算機與外設(shè)之間不是直接相連的,而是通過不同的接口與外界聯(lián)系。計算機與外設(shè)之間不是直接相連的,而是通過不同的接口電路來達到彼此間的信息傳送的目的。電路來達到彼此間的信息傳送的目的。計算機與外設(shè)之間交換信息的方式:計算機與外設(shè)之間交換信息的方式: (1)無條件傳送方式:)無條件傳送方式:外設(shè)對計算機來說總是準備好的。外設(shè)對計算機來說總是準備好的。 (2)查詢傳送方式:)查詢傳送方式:傳送前計算機先查詢外設(shè)的狀態(tài),若已經(jīng)準備好傳送前計算機先查詢外設(shè)的狀態(tài),若已經(jīng)準備好就傳送,否則就繼續(xù)查詢就傳送,否則就繼續(xù)查詢/等待。等待。 (3)中斷傳送方式:)中斷傳

14、送方式:外設(shè)通過申請中斷的方式與計算機進行數(shù)據(jù)傳送。外設(shè)通過申請中斷的方式與計算機進行數(shù)據(jù)傳送。 (4)直接存儲器存取方式)直接存儲器存取方式(DMA):傳送數(shù)據(jù)的雙方直接通過總線傳送傳送數(shù)據(jù)的雙方直接通過總線傳送數(shù)據(jù)數(shù)據(jù), 不經(jīng)不經(jīng)CPU中轉(zhuǎn)。中轉(zhuǎn)。153.2 MCS-51單片機的中斷系統(tǒng)單片機的中斷系統(tǒng)3.2.1 3.2.1 中斷的基本概念中斷的基本概念3.2.2 MCS-513.2.2 MCS-51的中斷系統(tǒng)的中斷系統(tǒng)3.2.3 MCS-513.2.3 MCS-51中斷系統(tǒng)的編程中斷系統(tǒng)的編程3.2.4 MCS-513.2.4 MCS-51擴展外部中斷請求輸入口擴展外部中斷請求輸入口16

15、3.2.1 3.2.1 中斷的基本概念中斷的基本概念 1中斷的定義中斷的定義 所謂所謂“中斷中斷”,是指,是指CPU執(zhí)行正常程序時,系統(tǒng)中出現(xiàn)特執(zhí)行正常程序時,系統(tǒng)中出現(xiàn)特殊請求,殊請求,CPU暫時中止當(dāng)前的程序,轉(zhuǎn)去處理更緊急的事件暫時中止當(dāng)前的程序,轉(zhuǎn)去處理更緊急的事件(執(zhí)行中斷服務(wù)程序),處理完畢(中斷服務(wù)完成)后,(執(zhí)行中斷服務(wù)程序),處理完畢(中斷服務(wù)完成)后,CPU自動返回原程序的過程。自動返回原程序的過程。作用:作用:采用中斷技術(shù)可以提高采用中斷技術(shù)可以提高CPU效率、解決速度矛盾、實現(xiàn)效率、解決速度矛盾、實現(xiàn)并行工作、分時操作、實時處理、故障處理、應(yīng)付突發(fā)事件,可并行工作、分時

16、操作、實時處理、故障處理、應(yīng)付突發(fā)事件,可使多項任務(wù)共享一個資源(使多項任務(wù)共享一個資源(CPU)。)。 中斷與子程序的最主要區(qū)別:中斷與子程序的最主要區(qū)別:子程序是預(yù)先安排好的,中斷是隨子程序是預(yù)先安排好的,中斷是隨機發(fā)生的。機發(fā)生的。中斷涉及的幾個環(huán)節(jié):中斷涉及的幾個環(huán)節(jié):中斷源、中斷源、 中斷申請、開放中斷、保護現(xiàn)中斷申請、開放中斷、保護現(xiàn)場、中斷服務(wù)、恢復(fù)現(xiàn)場、中斷返回。場、中斷服務(wù)、恢復(fù)現(xiàn)場、中斷返回。172. 中斷源中斷源 中斷源是指引起中斷的設(shè)備或事件,或發(fā)出中斷請求的源頭。中斷源是指引起中斷的設(shè)備或事件,或發(fā)出中斷請求的源頭。 3. 中斷的分類中斷的分類 中斷按功能通常可分為可

17、屏蔽中斷、非屏蔽中斷和軟件中斷中斷按功能通常可分為可屏蔽中斷、非屏蔽中斷和軟件中斷三類。三類。 可屏蔽中斷可屏蔽中斷是指是指CPU可以通過指令來允許或屏蔽中斷的請求??梢酝ㄟ^指令來允許或屏蔽中斷的請求。 非屏蔽中斷非屏蔽中斷是指是指CPU對中斷請求是不可屏蔽的,一旦出現(xiàn),對中斷請求是不可屏蔽的,一旦出現(xiàn),CPU必須響應(yīng)。必須響應(yīng)。 軟件中斷軟件中斷則是指通過相應(yīng)的中斷指令使則是指通過相應(yīng)的中斷指令使CPU響應(yīng)中斷。響應(yīng)中斷。4. 中斷優(yōu)先權(quán)與中斷嵌套中斷優(yōu)先權(quán)與中斷嵌套 中斷優(yōu)先級中斷優(yōu)先級(也稱為中斷優(yōu)先權(quán)):(也稱為中斷優(yōu)先權(quán)):給每個中斷源指定中斷給每個中斷源指定中斷響應(yīng)的優(yōu)先級別,響應(yīng)

18、的優(yōu)先級別, CPU按中斷源的優(yōu)先級高低順序響應(yīng)各中斷源按中斷源的優(yōu)先級高低順序響應(yīng)各中斷源發(fā)出的中斷請求。發(fā)出的中斷請求。18中斷嵌套:中斷嵌套:在某一瞬間,在某一瞬間,CPU因響應(yīng)某一中斷源的中斷請求而因響應(yīng)某一中斷源的中斷請求而正在執(zhí)行它的中斷服務(wù)程序時,若又有一級別高的中斷源向正在執(zhí)行它的中斷服務(wù)程序時,若又有一級別高的中斷源向CPU發(fā)出中斷請求,且發(fā)出中斷請求,且CPU的中斷是開放的,的中斷是開放的,CPU可以把正在可以把正在執(zhí)行的中斷服務(wù)程序暫停下來,轉(zhuǎn)而響應(yīng)和處理優(yōu)先權(quán)更高的執(zhí)行的中斷服務(wù)程序暫停下來,轉(zhuǎn)而響應(yīng)和處理優(yōu)先權(quán)更高的中斷源的中斷請求,等處理完后再轉(zhuǎn)回來,繼續(xù)執(zhí)行原來的

19、中中斷源的中斷請求,等處理完后再轉(zhuǎn)回來,繼續(xù)執(zhí)行原來的中斷服務(wù)程序,這就是中斷嵌套。斷服務(wù)程序,這就是中斷嵌套。 中斷嵌套的過程和子程序嵌套過程類似,子程序的返回指中斷嵌套的過程和子程序嵌套過程類似,子程序的返回指令是令是RET,而中斷服務(wù)程序的返回指令是,而中斷服務(wù)程序的返回指令是RETI。5. 5. 中斷響應(yīng)及處理過程中斷響應(yīng)及處理過程 保護斷點保護斷點 尋找中斷源尋找中斷源 中斷處理中斷處理 中斷返回中斷返回 保護斷點和尋找中斷源都是由硬件保護斷點和尋找中斷源都是由硬件自動自動完成的,用戶不用完成的,用戶不用考慮考慮。196. 中斷系統(tǒng)的功能中斷系統(tǒng)的功能中斷系統(tǒng):中斷系統(tǒng):能夠?qū)崿F(xiàn)中斷

20、功能的硬件電路和軟件程序。能夠?qū)崿F(xiàn)中斷功能的硬件電路和軟件程序。中斷系統(tǒng)的功能:中斷系統(tǒng)的功能:能夠?qū)崿F(xiàn)中斷優(yōu)先權(quán)排隊、中斷嵌套、自動能夠?qū)崿F(xiàn)中斷優(yōu)先權(quán)排隊、中斷嵌套、自動響應(yīng)中斷和中斷返回等功能。響應(yīng)中斷和中斷返回等功能。 MCS-51單片機的大部分中斷電路都是集成在芯片內(nèi)部的,單片機的大部分中斷電路都是集成在芯片內(nèi)部的,只有外部中斷請求信號產(chǎn)生電路才分散在各中斷源電路和接口只有外部中斷請求信號產(chǎn)生電路才分散在各中斷源電路和接口電路中。電路中。203.2.2 MCS-513.2.2 MCS-51的中斷系統(tǒng)的中斷系統(tǒng) MCS-51提供了提供了5個中斷源,個中斷源,2個中斷優(yōu)先級控制,可實現(xiàn)個中

21、斷優(yōu)先級控制,可實現(xiàn)2個中斷服務(wù)嵌套。可通過程序設(shè)置中斷的允許或屏蔽,設(shè)置中個中斷服務(wù)嵌套。可通過程序設(shè)置中斷的允許或屏蔽,設(shè)置中斷的優(yōu)先級。斷的優(yōu)先級。1 1MCS-51MCS-51的中斷源的中斷源 80518051允許允許5 5個中斷源:個中斷源:(1 1)外部中斷源(中斷標志為)外部中斷源(中斷標志為IE0和和IE1 ) 由由 ( P3.2 )端口線引入,低電平或下降沿引起。)端口線引入,低電平或下降沿引起。 由由 ( P3.3 )端口線引入,低電平或下降沿引起。)端口線引入,低電平或下降沿引起。(2 2)內(nèi)部中斷源)內(nèi)部中斷源 (中斷標志為(中斷標志為TF0、TF1和和TI/RI )

22、T0T0:定時:定時/ /計數(shù)器計數(shù)器0 0中斷,由中斷,由T0T0回零溢出引起。回零溢出引起。 T1T1:定時:定時/ /計數(shù)器計數(shù)器1 1中斷,由中斷,由T1T1回零溢出引起?;亓阋绯鲆?。 TI/RITI/RI:串行:串行I/OI/O中斷,完成一幀字符發(fā)送中斷,完成一幀字符發(fā)送/ /接收引起。接收引起。0INT1INT218051的中斷結(jié)構(gòu)如下圖所示。的中斷結(jié)構(gòu)如下圖所示。 22CPU識別中斷申請的依據(jù):識別中斷申請的依據(jù): CPU在每個機器周期的在每個機器周期的S5P2期間,會自動查詢各個中斷申期間,會自動查詢各個中斷申請標志位,若查到某標志位被置位,將啟動中斷機制。請標志位,若查到某

23、標志位被置位,將啟動中斷機制。2 2中斷控制中斷控制 MCS-51單片機設(shè)置了單片機設(shè)置了4個專用寄存器用于中斷控制,用個專用寄存器用于中斷控制,用戶通過設(shè)置其狀態(tài)來管理中斷系統(tǒng)。戶通過設(shè)置其狀態(tài)來管理中斷系統(tǒng)。(1)定時器控制寄存器)定時器控制寄存器TCON (88H) TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TF0/TF1:定時器溢出中斷申請標志位定時器溢出中斷申請標志位(由硬件自動置位)(由硬件自動置位)。 =0:定時器未溢出;定時器未溢出; =1:定時器溢出定時器溢出(由全(由全“1”變成全變成全“0”)時由硬件自動置位時由硬件自動置位,申請中斷,申請中斷,中斷被

24、中斷被CPU響應(yīng)后由硬件自動清零響應(yīng)后由硬件自動清零。23TR0/TR1:定時器運行啟??刂莆欢〞r器運行啟停控制位(可由用戶通過軟件設(shè)置(可由用戶通過軟件設(shè)置 )。 =0:定時器停止運行;定時器停止運行; =1:定時器啟動運行。定時器啟動運行。IE0/IE1:外部中斷申請標志位外部中斷申請標志位(由硬件自動置位(由硬件自動置位 ,中斷響應(yīng)后,中斷響應(yīng)后轉(zhuǎn)向中斷服務(wù)程序時,由硬件自動清轉(zhuǎn)向中斷服務(wù)程序時,由硬件自動清0 0 )。 =0:沒有外部中斷申請;沒有外部中斷申請; =1:有外部中斷申請。有外部中斷申請。IT0/IT1:外部中斷請求的觸發(fā)方式控制位外部中斷請求的觸發(fā)方式控制位(可由用戶通過

25、軟件設(shè)(可由用戶通過軟件設(shè)置置 )。 =0:在在INT0/INT1端申請中斷的信號低電平有效;端申請中斷的信號低電平有效; =1:在在INT0/INT1端申請中斷的信號負跳變有效。端申請中斷的信號負跳變有效。24(2 2)串行口控制寄存器)串行口控制寄存器SCON SCON (98H98H) TI/RI:串行口發(fā)送串行口發(fā)送/接收中斷申請標志位(接收中斷申請標志位(由硬件自動置位,必由硬件自動置位,必須由用戶在中斷服務(wù)程序中用軟件清須由用戶在中斷服務(wù)程序中用軟件清0)。)。 =0:沒有串行口發(fā)送沒有串行口發(fā)送/接收中斷申請;接收中斷申請; =1:有串行口發(fā)送有串行口發(fā)送/接收中斷申請。接收中斷

26、申請。 SCON的高的高6位用于串行口工作方式設(shè)置和串行口發(fā)送位用于串行口工作方式設(shè)置和串行口發(fā)送/接收控接收控制。制。 SM0 SM1 SM2 REN TB8 RB8 TI RISM0 SM1 SM2 REN TB8 RB8 TI RI25(3)中斷允許控制寄存器)中斷允許控制寄存器IE (0A8H) EAEA ES ET1 EX1 ET0 EX0ES ET1 EX1 ET0 EX0EX0/EX1/ET1/ET0/ES 位:位:分別是分別是 / ,T0/T1,串行,串行口的中斷允許控制位。口的中斷允許控制位。 =0 :禁止中斷;禁止中斷; =1 :允許中斷。允許中斷。EA:總的中斷允許控制位

27、(總開關(guān)):總的中斷允許控制位(總開關(guān)): =0 :禁止全部中斷;禁止全部中斷; =1 :允許中斷。允許中斷。0INT1INT26(4 4)中斷優(yōu)先級控制寄存器)中斷優(yōu)先級控制寄存器IP IP (0B8H0B8H) 8051有兩個中斷優(yōu)先級:高優(yōu)先級和低優(yōu)先級。每個中斷源都可設(shè)置為有兩個中斷優(yōu)先級:高優(yōu)先級和低優(yōu)先級。每個中斷源都可設(shè)置為高或低中斷優(yōu)先級,以便高或低中斷優(yōu)先級,以便CPU對所有的中斷實現(xiàn)兩級中斷嵌套。對所有的中斷實現(xiàn)兩級中斷嵌套。 8051內(nèi)部中斷系統(tǒng)對各中斷源的中斷優(yōu)先級有一個統(tǒng)一的規(guī)定,稱為自然內(nèi)部中斷系統(tǒng)對各中斷源的中斷優(yōu)先級有一個統(tǒng)一的規(guī)定,稱為自然優(yōu)先級(也稱為系統(tǒng)缺

28、省優(yōu)先級)。如下表所示。優(yōu)先級(也稱為系統(tǒng)缺省優(yōu)先級)。如下表所示。 8051單片機的中斷優(yōu)先級采用了自然優(yōu)先級和人工設(shè)置高、低優(yōu)先級的單片機的中斷優(yōu)先級采用了自然優(yōu)先級和人工設(shè)置高、低優(yōu)先級的策略,中斷處于同一級別時,就由自然優(yōu)先級確定。開機時,每個中斷都處策略,中斷處于同一級別時,就由自然優(yōu)先級確定。開機時,每個中斷都處于低優(yōu)先級,中斷優(yōu)先級可以通過程序來設(shè)定,由中斷優(yōu)先級寄存器于低優(yōu)先級,中斷優(yōu)先級可以通過程序來設(shè)定,由中斷優(yōu)先級寄存器IP來統(tǒng)來統(tǒng)一管理。一管理。 中中 斷斷 源源 中中 斷斷 標標 志志 缺省優(yōu)先級缺省優(yōu)先級 外中斷外中斷IE0最高最高最低最低 定時器定時器T0 TF0

29、 外中斷外中斷IE1定時器定時器T1TF1串行口中斷串行口中斷TI, RI0INT1INT27(4 4)中斷優(yōu)先級控制寄存器)中斷優(yōu)先級控制寄存器IP IP (0B8H0B8H) PS PT1PS PT1 PX1 PX1 PT0 PX0PT0 PX00INT1INTPX0/PX1: / 優(yōu)先級控制位:優(yōu)先級控制位: =0 :屬低優(yōu)先級;屬低優(yōu)先級; =1 :屬高優(yōu)先級。屬高優(yōu)先級。PT0/PT1:T0/T1中斷優(yōu)先級控制位:中斷優(yōu)先級控制位: =0 :屬低優(yōu)先級;屬低優(yōu)先級; =1 :屬高優(yōu)先級。屬高優(yōu)先級。PS1:串行口中斷優(yōu)先級控制位:串行口中斷優(yōu)先級控制位: =0 :屬低優(yōu)先級;屬低優(yōu)先

30、級; =1 :屬高優(yōu)先級。屬高優(yōu)先級。28中斷優(yōu)先級處理原則:中斷優(yōu)先級處理原則: 對對同時發(fā)生多個中斷申請時:同時發(fā)生多個中斷申請時: 不同優(yōu)先級的中斷同時申請:先高后低不同優(yōu)先級的中斷同時申請:先高后低 相同優(yōu)先級的中斷同時申請:按序執(zhí)行(自然優(yōu)先級)相同優(yōu)先級的中斷同時申請:按序執(zhí)行(自然優(yōu)先級) 正處理低優(yōu)先級中斷又接到高級別中斷:高打斷低正處理低優(yōu)先級中斷又接到高級別中斷:高打斷低 正處理高優(yōu)先級中斷又接到低級別中斷:高不理低正處理高優(yōu)先級中斷又接到低級別中斷:高不理低293中斷響應(yīng)中斷響應(yīng) (1 1)中斷響應(yīng)的條件)中斷響應(yīng)的條件 MCS-51單片機工作時,在每個機器周期中都會去查

31、詢各個單片機工作時,在每個機器周期中都會去查詢各個中斷標志,如果有中斷請求。必須滿足下列條件單片機才能響中斷標志,如果有中斷請求。必須滿足下列條件單片機才能響應(yīng)中斷。應(yīng)中斷。 相應(yīng)的中斷是開放的;相應(yīng)的中斷是開放的; 沒有同級的中斷或更高級別的中斷正在處理;沒有同級的中斷或更高級別的中斷正在處理; 正在執(zhí)行的指令必須執(zhí)行完最后正在執(zhí)行的指令必須執(zhí)行完最后 1個機器周期;個機器周期; 若正在執(zhí)行若正在執(zhí)行RETI,或正在訪問,或正在訪問IE或或IP寄存器寄存器,則必須執(zhí)行完則必須執(zhí)行完當(dāng)前指令的下一條指令后當(dāng)前指令的下一條指令后方能響應(yīng)中斷。方能響應(yīng)中斷。30(2)中斷響應(yīng)的過程)中斷響應(yīng)的過程

32、 中斷過程包括中斷請求、中斷響應(yīng)、中斷服務(wù)、中斷返回中斷過程包括中斷請求、中斷響應(yīng)、中斷服務(wù)、中斷返回四個階段。四個階段。中斷請求:中斷請求:中斷源將相應(yīng)請求中斷的標志位置中斷源將相應(yīng)請求中斷的標志位置 “1”,表示發(fā)出,表示發(fā)出請求,并由請求,并由CPU 查詢。查詢。中斷響應(yīng):中斷響應(yīng):在中斷允許條件下響應(yīng)中斷。斷點入棧在中斷允許條件下響應(yīng)中斷。斷點入棧撤除中斷撤除中斷標志標志關(guān)閉低、同級中斷允許關(guān)閉低、同級中斷允許中斷入口地址送中斷入口地址送PC。 這些工作這些工作都是由硬件自動完成的。都是由硬件自動完成的。中斷服務(wù):中斷服務(wù):根據(jù)入口地址轉(zhuǎn)中斷服務(wù)程序,包含保護現(xiàn)場、執(zhí)根據(jù)入口地址轉(zhuǎn)中斷

33、服務(wù)程序,包含保護現(xiàn)場、執(zhí)行中斷主體、恢復(fù)現(xiàn)場。行中斷主體、恢復(fù)現(xiàn)場。中斷返回:中斷返回:執(zhí)行中斷返回執(zhí)行中斷返回RETI指令指令斷點出棧送斷點出棧送PC 開放中開放中斷允許斷允許返回原程序。返回原程序。31中斷服務(wù)程序入口地址:中斷服務(wù)程序入口地址: 中斷響應(yīng)的主要內(nèi)容就是由硬件中斷響應(yīng)的主要內(nèi)容就是由硬件自動自動生成一條長調(diào)用指令生成一條長調(diào)用指令(LCALL addr16),),CPU執(zhí)行這條長調(diào)用指令便響應(yīng)中斷,轉(zhuǎn)執(zhí)行這條長調(diào)用指令便響應(yīng)中斷,轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序。這里的入相應(yīng)的中斷服務(wù)程序。這里的addr16就是程序存儲器中相應(yīng)的就是程序存儲器中相應(yīng)的中斷服務(wù)程序的入口地址,中斷服

34、務(wù)程序的入口地址,MCS-51的的5個中斷源的中斷服務(wù)程序個中斷源的中斷服務(wù)程序入口地址是固定的,如下表所示。入口地址是固定的,如下表所示。0023H串行口中斷串行口中斷001BH定時器定時器/計數(shù)器計數(shù)器T1中斷中斷0013H 外中斷外中斷000BH定時器定時器/計數(shù)器計數(shù)器T0中斷中斷0003H 外中斷外中斷入口地址入口地址中斷源中斷源1INT0INTC51中的中斷號中的中斷號1024332 8051的的5個中斷源的中斷服務(wù)入口地址之間相差個中斷源的中斷服務(wù)入口地址之間相差8個單元。這個單元。這8個存儲單元用來存儲中斷服務(wù)程序一般來說是不夠的。用戶常個存儲單元用來存儲中斷服務(wù)程序一般來說是

35、不夠的。用戶常在中斷服務(wù)程序地址入口處放一條三字節(jié)的長轉(zhuǎn)移指令。一般地,在中斷服務(wù)程序地址入口處放一條三字節(jié)的長轉(zhuǎn)移指令。一般地,主程序從主程序從0030H單元以后開始存放。例如:單元以后開始存放。例如:ORG 0000HLJMP START ; 轉(zhuǎn)入主程序,轉(zhuǎn)入主程序,START為主程序地址標號為主程序地址標號ORG 0003HLJMP INT0 ; 轉(zhuǎn)外中斷中斷服務(wù)程序轉(zhuǎn)外中斷中斷服務(wù)程序ORG 000BHLJMP T0 ; 轉(zhuǎn)定時器轉(zhuǎn)定時器T0中斷服務(wù)程序中斷服務(wù)程序ORG 0030HSTART: ; 主程序開始主程序開始(3)中斷響應(yīng)時間)中斷響應(yīng)時間 正常中斷響應(yīng)時間至少為正常中斷響

36、應(yīng)時間至少為38個機器周期,如果有同級或高個機器周期,如果有同級或高級中斷服務(wù),將延長中斷響應(yīng)時間。級中斷服務(wù),將延長中斷響應(yīng)時間。334中斷請求的撤除中斷請求的撤除 為了避免中斷請求標志沒有及時撤除而造成的重復(fù)響應(yīng)同一為了避免中斷請求標志沒有及時撤除而造成的重復(fù)響應(yīng)同一中斷請求的錯誤,中斷請求的錯誤, CPU在相應(yīng)中斷時必須及時將其中斷請求標在相應(yīng)中斷時必須及時將其中斷請求標志位撤除。志位撤除。 8051的的5個中斷源的中斷請求撤除的方法是不同的。個中斷源的中斷請求撤除的方法是不同的。(1 1)定時器溢出中斷請求的撤除)定時器溢出中斷請求的撤除 定時器溢出中斷得到響應(yīng)后,其中斷請求的標志位定

37、時器溢出中斷得到響應(yīng)后,其中斷請求的標志位TF0和和TF1由硬件由硬件自動自動復(fù)位。復(fù)位。(2 2)串行口中斷請求的撤除)串行口中斷請求的撤除 串行口中斷得到響應(yīng)后,其中斷請求的標志位串行口中斷得到響應(yīng)后,其中斷請求的標志位TI和和RI不能由不能由硬件自動復(fù)位,必須由用戶在中斷服務(wù)程序的適當(dāng)位置通過如下硬件自動復(fù)位,必須由用戶在中斷服務(wù)程序的適當(dāng)位置通過如下指令指令將它們撤除。將它們撤除。 CLR TI ; 撤除發(fā)送中斷請求標志(撤除發(fā)送中斷請求標志( TI = 0;);) CLR RI ; 撤除接收中斷請求標志(撤除接收中斷請求標志( RI = 0;);) 或采用字節(jié)型指令:或采用字節(jié)型指令

38、:ANL SCON, #0FCH34(3)外部中斷請求的撤除)外部中斷請求的撤除 外部中斷請求的兩種觸發(fā)方式(電平觸發(fā)和負邊沿觸發(fā))的外部中斷請求的兩種觸發(fā)方式(電平觸發(fā)和負邊沿觸發(fā))的中斷請求撤除的方法是不同的。中斷請求撤除的方法是不同的。負邊沿觸發(fā)方式:負邊沿觸發(fā)方式:CPU在前一機器周期采到在前一機器周期采到 / 引腳為高引腳為高,后后一機器周期采到為低才認為是一次中斷請求,即依靠一機器周期采到為低才認為是一次中斷請求,即依靠CPU兩次檢兩次檢測測 (或(或 )上的負邊沿觸發(fā)電平狀態(tài)而置位外部中斷標志位)上的負邊沿觸發(fā)電平狀態(tài)而置位外部中斷標志位IE0或或IE1 。CPU 可記憶申請、可

39、由硬件可記憶申請、可由硬件自動自動撤除中斷申請。撤除中斷申請。電平觸發(fā)方式:電平觸發(fā)方式: / / 引腳上的低電平須持續(xù)到中斷發(fā)生。若引腳上的低電平須持續(xù)到中斷發(fā)生。若中斷返回前仍未及時撤除低電平,雖然中斷返回前仍未及時撤除低電平,雖然CPU在響應(yīng)中斷時能由硬在響應(yīng)中斷時能由硬件自動復(fù)位件自動復(fù)位IE0或或IE1,但引腳上的低電平仍會使已經(jīng)復(fù)位的,但引腳上的低電平仍會使已經(jīng)復(fù)位的IE0或或IE1再次置位,產(chǎn)生重復(fù)中斷的錯誤。再次置位,產(chǎn)生重復(fù)中斷的錯誤。 0INT0INT1INT1INT0INT1INT35 電平觸發(fā)型外部中斷請求的撤除必須由外部硬件使(或)上的低電平電平觸發(fā)型外部中斷請求的撤

40、除必須由外部硬件使(或)上的低電平隨著其中斷被響應(yīng)而變?yōu)楦唠娖健F渲袛嗾埱蟪烦碾娐啡缦聢D所示。隨著其中斷被響應(yīng)而變?yōu)楦唠娖?。其中斷請求撤除的電路如下圖所示。 外來的低電平外來的低電平反相反相CP端產(chǎn)生上跳沿端產(chǎn)生上跳沿 D端的端的“0”輸出到輸出到Q端端申請申請中斷,中斷,中斷服務(wù)返回前對中斷服務(wù)返回前對P1.0P1.0送送“0 0” 令令Q Q端變?yōu)槎俗優(yōu)椤? 1”(SDSD位置位置1 1端)。端)。 指令如下:指令如下: ANL P1,#0FEH (或(或CLR P1.0 ) ;令;令Q端置端置“1” ORL P1, #01H ( SETB P1.0 ) ;令;令SD端置端置“1”,以免

41、下次以免下次 中斷來時中斷來時Q端不能變端不能變“0”363.2.3 MCS-513.2.3 MCS-51中斷系統(tǒng)的編程中斷系統(tǒng)的編程 (1 1)中斷初始化設(shè)置:)中斷初始化設(shè)置:開相應(yīng)中斷允許(開相應(yīng)中斷允許( IE )、根據(jù)需要選擇)、根據(jù)需要選擇優(yōu)先級(優(yōu)先級( IP )和選擇外中斷觸發(fā)方式()和選擇外中斷觸發(fā)方式(TCON),設(shè)置計數(shù)器、),設(shè)置計數(shù)器、串行口的有關(guān)參數(shù)。串行口的有關(guān)參數(shù)。(2 2)中斷服務(wù)程序的編寫:)中斷服務(wù)程序的編寫:中斷入口、保護現(xiàn)場、關(guān)中斷、中中斷入口、保護現(xiàn)場、關(guān)中斷、中斷服務(wù)主體程序、恢復(fù)現(xiàn)場、開中斷、設(shè)置計數(shù)器、串行口的有斷服務(wù)主體程序、恢復(fù)現(xiàn)場、開中斷

42、、設(shè)置計數(shù)器、串行口的有關(guān)參數(shù)、中斷返回指令關(guān)參數(shù)、中斷返回指令RETI 。 例題例題2 2 設(shè)設(shè)8051外部中斷源接引腳外部中斷源接引腳 ,中斷觸發(fā)方式為電平觸,中斷觸發(fā)方式為電平觸發(fā),試編制發(fā),試編制8051中斷系統(tǒng)的初始化程序。中斷系統(tǒng)的初始化程序。解:解:采用位操作指令實現(xiàn)(也可以采用傳送指令和邏輯指令)。采用位操作指令實現(xiàn)(也可以采用傳送指令和邏輯指令)。 SETB EA ; 開總中斷開總中斷EA = 1; SETB EX0 ; 開中斷開中斷 EX0 = 1; SETB PX0 ; 設(shè)置為高優(yōu)先級設(shè)置為高優(yōu)先級 PX0 = 1; CLR IT0 ; 設(shè)置為電平觸發(fā)方式設(shè)置為電平觸發(fā)方

43、式 IT0 = 1;0INT37 例題例題3 3 通過通過外部中斷控制外部中斷控制8盞燈循環(huán)點亮。盞燈循環(huán)點亮。解:解:通過通過P1口擴展八盞燈,在口擴展八盞燈,在 引腳接一個按鈕開關(guān)到地,引腳接一個按鈕開關(guān)到地,每按一下按鈕就申請一次中斷,點亮一盞燈,中斷服務(wù)則是:依每按一下按鈕就申請一次中斷,點亮一盞燈,中斷服務(wù)則是:依次點亮次點亮8盞燈中的一盞。采用邊沿觸發(fā)。盞燈中的一盞。采用邊沿觸發(fā)。1INT38程序如下:程序如下: ORG 0000H LJMP MAIN ORG 0013H ; 中斷服務(wù)程序入口地址中斷服務(wù)程序入口地址 LJMP IN11 ORG 0030H MAIN:MOV SP

44、, #60H SETB EA ; 開總中斷允許開總中斷允許“開關(guān)開關(guān)” SETB EX1 ; 開分中斷允許開分中斷允許“開關(guān)開關(guān)” CLR PX1 ; 低低 優(yōu)先級(也可不要此句)優(yōu)先級(也可不要此句) SETB IT1 ; 邊沿觸發(fā)邊沿觸發(fā) MOV A , #01H ; 給累加器給累加器A賦初值賦初值 SJMP $ ; 原地等待中斷申請原地等待中斷申請 IN11:MOV P1,A ; 輸出到輸出到P1口口 RL A ; 左環(huán)移一次左環(huán)移一次 RETI ; 中斷返回中斷返回 END#include reg51.hunsigned char a;void main() EA = 1; / 開總中

45、斷允許開總中斷允許“開關(guān)開關(guān)” EX1 = 1; / 開外部中斷開外部中斷 1 允許允許“開關(guān)開關(guān)” PX1 = 0; / 低優(yōu)先級(也可不要此句)低優(yōu)先級(也可不要此句) IT1 = 1; / 下降沿觸發(fā)下降沿觸發(fā) a = 1; / 給變量給變量 a 賦初值賦初值 while(1); / 原地等待中斷申請原地等待中斷申請void int1() interrupt 2 P1 = a; a = a 1; if(a=0) a = 1;393.2.4 MCS-51擴展外部中斷請求輸入口擴展外部中斷請求輸入口 8051單片機只提供了兩個外部中斷請求輸入端,如果需要單片機只提供了兩個外部中斷請求輸入端,

46、如果需要使用多于兩個的中斷源,就必須擴展外部中斷請求輸入口使用多于兩個的中斷源,就必須擴展外部中斷請求輸入口。1 1定時器定時器/ /計數(shù)器用于擴展外部中斷請求輸入口計數(shù)器用于擴展外部中斷請求輸入口 8051單片機有兩個定時器單片機有兩個定時器/計數(shù)器,它們作為計數(shù)器使用時,計數(shù)器,它們作為計數(shù)器使用時,計數(shù)輸入端計數(shù)輸入端T0(或(或T1)發(fā)生負跳變將使計數(shù)器加)發(fā)生負跳變將使計數(shù)器加1,利用此特,利用此特性,適當(dāng)設(shè)置計數(shù)初值,就可以把計數(shù)輸入端性,適當(dāng)設(shè)置計數(shù)初值,就可以把計數(shù)輸入端T0(或(或T1)作為)作為外部中斷請求輸入口。其特點是以占用內(nèi)部定時中斷為代價的。外部中斷請求輸入口。其特

47、點是以占用內(nèi)部定時中斷為代價的。中斷服務(wù)程序的入口地址仍然為中斷服務(wù)程序的入口地址仍然為000BH或或001BH。402 2查詢方式擴展外部中斷請求輸入口查詢方式擴展外部中斷請求輸入口 把多個中斷源通過硬件(如與非門)引入外部中斷輸入端,把多個中斷源通過硬件(如與非門)引入外部中斷輸入端,同時又連到某個同時又連到某個I/O口。當(dāng)有中斷源申請中斷時,在中斷服務(wù)程口。當(dāng)有中斷源申請中斷時,在中斷服務(wù)程序中通過軟件查詢可確定哪一個是正在申請的中斷源,其查詢的序中通過軟件查詢可確定哪一個是正在申請的中斷源,其查詢的次序可由中斷優(yōu)先級決定。其特點是中斷響應(yīng)速度較慢。次序可由中斷優(yōu)先級決定。其特點是中斷響

48、應(yīng)速度較慢。 適用于適用于外部中斷源較多的場合。外部中斷源較多的場合。3 3使用專用芯片擴展外部中斷請求輸入口使用專用芯片擴展外部中斷請求輸入口 當(dāng)外部中斷源較多,同時又要求中斷響應(yīng)速度很高時,查詢當(dāng)外部中斷源較多,同時又要求中斷響應(yīng)速度很高時,查詢方式擴展外部中斷請求輸入口的方法很難滿足要求。這時可以使方式擴展外部中斷請求輸入口的方法很難滿足要求。這時可以使用專用接口芯片進行外部中斷請求輸入口的擴展。用專用接口芯片進行外部中斷請求輸入口的擴展。74LS148優(yōu)先優(yōu)先級編碼器和可編程中斷控制器級編碼器和可編程中斷控制器8259均可以實現(xiàn)該任務(wù)。均可以實現(xiàn)該任務(wù)。 41對流水燈實驗的改進對流水燈

49、實驗的改進void delay(void)void delay(void) unsigned int i, j, k, l;unsigned int i, j, k, l; for(i = 0; i 27000; i+)for(i = 0; i 27000; i+) j+; k+; l+; ; j+; k+; l+; ; #include #include void main (void)void main (void) unsigned char i,c4 = 0 xef, 0 xdf, 0 xbf, 0 x7f;unsigned char i,c4 = 0 xef, 0 xdf, 0 xb

50、f, 0 x7f;i = 0;i = 0;while(1)while(1) P3 = ci & 3; P3 = ci & 3; i+; i+; delay();delay(); 42 不占用硬件資源,但占用不占用硬件資源,但占用CPU時間,降低時間,降低CPU效率。效率。 如采用如采用555電路,但定時值與定時范圍不能由軟件修電路,但定時值與定時范圍不能由軟件修改,即不可編程。改,即不可編程。 采用可編程計時器,其定時范圍很容易用軟件控制。采用可編程計時器,其定時范圍很容易用軟件控制。433.3.1 定時器定時器/計數(shù)器計數(shù)器3.3.2 定時器定時器/計數(shù)器的工作方式計數(shù)器的工

51、作方式3.3.3 定時器定時器/計數(shù)器的應(yīng)用計數(shù)器的應(yīng)用3.3 MCS-51單片機的定時器單片機的定時器/計數(shù)器計數(shù)器 44 8051內(nèi)部有兩個內(nèi)部有兩個16位二進制計數(shù)器,它們有兩個功能位二進制計數(shù)器,它們有兩個功能 -計數(shù)計數(shù) 和和 定時定時(1 1)計數(shù))計數(shù):對對 外外 部事件(脈沖)的個數(shù)進行計數(shù)。部事件(脈沖)的個數(shù)進行計數(shù)。(2 2)定時:)定時:對對 內(nèi)內(nèi) 部事件(脈沖)的個數(shù)進行計數(shù)。部事件(脈沖)的個數(shù)進行計數(shù)。定時定時/計數(shù)器計數(shù)器 T0 和和 T145 兩個兩個16位可編程的定時器位可編程的定時器/計數(shù)器,它們均是二進制計數(shù)器,它們均是二進制加法計數(shù)器加法計數(shù)器,當(dāng)計數(shù)

52、器計滿回零時能自動產(chǎn)生溢出中,當(dāng)計數(shù)器計滿回零時能自動產(chǎn)生溢出中斷請求。斷請求。l 計數(shù)器:計數(shù)器:對引腳對引腳T0(P 3.4 )和)和T1(P3.5)輸入的外部脈沖)輸入的外部脈沖信號的下降沿計數(shù),計數(shù)的最高頻率為信號的下降沿計數(shù),計數(shù)的最高頻率為OSC的的1/24。l 定時器:定時器:對對OSC的的12分頻輸出進行計數(shù)。分頻輸出進行計數(shù)。 2MCS-51內(nèi)部定時器內(nèi)部定時器/計數(shù)器計數(shù)器 46l 工作方式寄存器工作方式寄存器 TMODl 控制寄存器控制寄存器 TCONl T0計數(shù)單元計數(shù)單元 TH0 和和 TL0l T1計數(shù)單元計數(shù)單元 TH1 和和 TL147(2)控制寄存器)控制寄存

53、器TCON (88H) l 標志位和控制位均為標志位和控制位均為1有效。有效。l 標志位由硬件置標志位由硬件置1,響應(yīng)中斷時由硬件自動清零。,響應(yīng)中斷時由硬件自動清零。l IE0/IE1和和IT0/IT1:用于管理外部中斷。:用于管理外部中斷。TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0T1/T0計數(shù)溢出標志位計數(shù)溢出標志位T1/T0啟動停止控制位啟動停止控制位48 M1, M0:工作方式選擇位工作方式選擇位 l 00:13位定時器位定時器/計數(shù)器計數(shù)器l 01:16位定時器位定時器/計數(shù)器計數(shù)器l 10:可自動重裝的可自動重裝的8位定時器位定時器/計數(shù)器計數(shù)器l 11:T0

54、 分為分為2個個8位定時器位定時器/計數(shù)器計數(shù)器, 僅適用于僅適用于T0 (3 3)工作方式寄存器)工作方式寄存器TMOD (89H) T1T0GATEC/TM1M0GATEC/TM1M0C/T:定時方式定時方式/計數(shù)方式選擇位計數(shù)方式選擇位l 1: 計數(shù)器工作方式,對來自計數(shù)器工作方式,對來自T0/T1腳的外部脈沖計數(shù)腳的外部脈沖計數(shù)l 0 :定時器工作方式,對機器周期脈沖數(shù)計數(shù)定時器工作方式,對機器周期脈沖數(shù)計數(shù)49l 0 :軟件控制軟件控制,只由,只由TCON中的啟中的啟/??刂莆煌?刂莆籘R0/TR1控制控制 定時器定時器/計數(shù)器的啟計數(shù)器的啟/停。停。l 1 :硬件控制硬件控制,由外

55、部中斷請求信號,由外部中斷請求信號 / 和和TCON 中的啟中的啟/停控制位??刂莆籘R0/TR1組合狀態(tài)控制定時器組合狀態(tài)控制定時器/計數(shù)器計數(shù)器 的啟的啟/停。停。0INT1INTGATE:門控位門控位503.3.2 3.3.2 定時器定時器/ /計數(shù)器的工作方式計數(shù)器的工作方式 定時器定時器/計數(shù)器計數(shù)器 T0 有四種工作模式,有四種工作模式,T1 有三種工作模式有三種工作模式1方式方式0( M1M0 = 00 ,13 位定時器位定時器/計數(shù)器)計數(shù)器)2方式方式1 ( M1M0 = 01 ,16 位定時器位定時器/計數(shù)器)計數(shù)器) 由由 TH0 和和 TL0 構(gòu)成構(gòu)成 16 位加位加

56、1 計數(shù)器,其他特性與方式計數(shù)器,其他特性與方式 0 相同相同TH0TL0TF0TH0TL0TF0513方式方式2 (M1M0 =10,自動重裝初值的,自動重裝初值的 8 位定時器位定時器/計數(shù)器計數(shù)器) 16位定時器位定時器/計數(shù)器被拆成兩個計數(shù)器被拆成兩個8位寄存器位寄存器TH0和和TL0,CPU在對它們初始化時必須裝入相同的定時器在對它們初始化時必須裝入相同的定時器/計數(shù)器初值。以計數(shù)器初值。以TL0作計數(shù)器,而作計數(shù)器,而TH0作為預(yù)置寄存器。當(dāng)計數(shù)滿溢出時,作為預(yù)置寄存器。當(dāng)計數(shù)滿溢出時,TF0置置“1”,同時,同時TH0將計數(shù)初值以硬件方法自動裝入將計數(shù)初值以硬件方法自動裝入TL0

57、。這種工。這種工作方式很適合于那些重復(fù)計數(shù)的應(yīng)用場合(如串行數(shù)據(jù)通信的作方式很適合于那些重復(fù)計數(shù)的應(yīng)用場合(如串行數(shù)據(jù)通信的波特率發(fā)生器)。波特率發(fā)生器)。TH0TL0TF0524工作方式工作方式3 ( M1M0=11 , 2個個8位定時器位定時器/計數(shù)器,僅適用于計數(shù)器,僅適用于T0)TL0:8位定時器位定時器/計數(shù)器,使用計數(shù)器,使用T0原有控制資源原有控制資源TR0和和TF0,其,其功能和操作與方式功能和操作與方式0或方式或方式1完全相同。完全相同。TH0:只能作為只能作為8位定時器,借用位定時器,借用T1的控制位的控制位TR1和和TF1,只能,只能對片內(nèi)機器周期脈沖計數(shù)。對片內(nèi)機器周期

58、脈沖計數(shù)。 在方式在方式3模式下,定時器模式下,定時器/計數(shù)器計數(shù)器0可以構(gòu)成兩個定時器或者可以構(gòu)成兩個定時器或者一個定時器和一個計數(shù)器。一個定時器和一個計數(shù)器。 T0方式方式3下的下的T1方式方式2,因定時初值能自動恢復(fù),用作波,因定時初值能自動恢復(fù),用作波特率發(fā)生器更為合適。特率發(fā)生器更為合適。53 定時器定時器/計數(shù)器可按片內(nèi)機器周期定時,也可對由計數(shù)器可按片內(nèi)機器周期定時,也可對由T0/T1引引腳輸入一個負脈沖進行加法計數(shù)。在應(yīng)用時,其工作方式和工腳輸入一個負脈沖進行加法計數(shù)。在應(yīng)用時,其工作方式和工作過程均可通過程序設(shè)定和控制,因此,定時器作過程均可通過程序設(shè)定和控制,因此,定時器/

59、計數(shù)器在工作計數(shù)器在工作前必須先對其進行初始化,計算和設(shè)置初值。前必須先對其進行初始化,計算和設(shè)置初值。 1. 定時器定時器T0/T1 中斷申請過程中斷申請過程 (1)在已經(jīng)開放)在已經(jīng)開放T0/T1中斷允許且已被啟動的前提下,中斷允許且已被啟動的前提下,T0/T1加加1計滿溢出時計滿溢出時 TF0/TF1標志位自動置標志位自動置“1” ; (2)CPU 檢測到檢測到TCON中中TF0/TF1變變“1”后,將產(chǎn)生指令:后,將產(chǎn)生指令:LCALL 000BH/LCALL 001BH 執(zhí)行中斷服務(wù)程序;執(zhí)行中斷服務(wù)程序; (3)TF0/TF1標志位由硬件自動清標志位由硬件自動清“0”,以備下次中斷

60、申請。,以備下次中斷申請。3.3.3 定時器定時器/計數(shù)器的應(yīng)用計數(shù)器的應(yīng)用 542. 定時器定時器/計數(shù)器初始化的步驟計數(shù)器初始化的步驟 (1)寫)寫TMOD,設(shè)置定時器,設(shè)置定時器/計數(shù)器的工作方式;計數(shù)器的工作方式; (2)計算定時器)計算定時器/計數(shù)器的初值,寫入計數(shù)器的初值,寫入TH0/TH1、TL0/TL1。 (3)設(shè)置)設(shè)置IE、IP,以開放相應(yīng)的中斷和設(shè)定中斷優(yōu)先級。,以開放相應(yīng)的中斷和設(shè)定中斷優(yōu)先級。 (4)置位)置位TR0/TR1,啟動計數(shù)。,啟動計數(shù)。 3. 定時器定時器/計數(shù)器的定時器計數(shù)器的定時器/計數(shù)器范圍計數(shù)器范圍 (1 1)工作方式工作方式0 0:13位定時器位定時器/計數(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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論