




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、MCS-51單片機內部功能部件MCS-51系統(tǒng)擴展MCS-51功能擴展MCS-51單片機內部功能部件第6章 中斷系統(tǒng)第7章 定時/計數(shù)器第8章 串行通信接口中斷的概念中斷的概念 現(xiàn)代的計算機都具有實時處理功能,能對外部發(fā)現(xiàn)代的計算機都具有實時處理功能,能對外部發(fā)生的事件如人工干預、外部事件及意外故障做出及時生的事件如人工干預、外部事件及意外故障做出及時的響應或處理,這是依靠計算機的中斷系統(tǒng)來實現(xiàn)的。的響應或處理,這是依靠計算機的中斷系統(tǒng)來實現(xiàn)的。在在MCS51應用系統(tǒng)中,經(jīng)常需要處理如下問題:應用系統(tǒng)中,經(jīng)常需要處理如下問題: 1定時器問題定時器問題 在溫度控制系統(tǒng)中,需對受控對象的溫度進行定
2、在溫度控制系統(tǒng)中,需對受控對象的溫度進行定時采樣,兩次采樣之間的時間間隔是固定的,如每秒時采樣,兩次采樣之間的時間間隔是固定的,如每秒一次。在電機恒速控制系統(tǒng)中,需對受控電機的轉速一次。在電機恒速控制系統(tǒng)中,需對受控電機的轉速進行定時采樣,兩次采樣之間的時間間隔也是固定的,進行定時采樣,兩次采樣之間的時間間隔也是固定的,如每秒兩次。為了定時采樣,就必須使用定時器。當如每秒兩次。為了定時采樣,就必須使用定時器。當CPU啟動定時器后,就要等待定時器的定時超時標志,啟動定時器后,就要等待定時器的定時超時標志,然后就進行采樣,周而復始,循環(huán)不止。然后就進行采樣,周而復始,循環(huán)不止。 2鍵盤按鍵問題鍵盤
3、按鍵問題 鍵盤是計算機系統(tǒng)操作者對系統(tǒng)進行參數(shù)設置和狀態(tài)鍵盤是計算機系統(tǒng)操作者對系統(tǒng)進行參數(shù)設置和狀態(tài)控制的常用設備,操作者何時對鍵盤進行操作是無法事先確控制的常用設備,操作者何時對鍵盤進行操作是無法事先確定的。單片機應快速響應鍵盤操作。定的。單片機應快速響應鍵盤操作。3串行通信問題串行通信問題 一個單片機控制系統(tǒng)可能與另一個計算機系統(tǒng)有聯(lián)系,它一個單片機控制系統(tǒng)可能與另一個計算機系統(tǒng)有聯(lián)系,它們之間的數(shù)據(jù)交換是通過異步串行通信接口們之間的數(shù)據(jù)交換是通過異步串行通信接口RS-232C進行的。進行的。MCS51單片機有一個串行通信控制器,當單片機有一個串行通信控制器,當CPU將要發(fā)送的將要發(fā)送的
4、一個字節(jié)數(shù)據(jù)提交給串行通信控制器后,需要等串行通信控一個字節(jié)數(shù)據(jù)提交給串行通信控制器后,需要等串行通信控制器把這個字節(jié)數(shù)據(jù)發(fā)送完畢,才能發(fā)送下一個字節(jié)數(shù)據(jù)。制器把這個字節(jié)數(shù)據(jù)發(fā)送完畢,才能發(fā)送下一個字節(jié)數(shù)據(jù)。這時,這時,CPU要等待串行通信控制器的一個標志,表明串行通要等待串行通信控制器的一個標志,表明串行通信控制器的發(fā)送緩沖器空閑,才能把下一個要發(fā)送字節(jié)數(shù)據(jù)信控制器的發(fā)送緩沖器空閑,才能把下一個要發(fā)送字節(jié)數(shù)據(jù)提交給串行通信控制器。提交給串行通信控制器。CPU除了發(fā)送數(shù)據(jù)之外,還要接收除了發(fā)送數(shù)據(jù)之外,還要接收對方發(fā)送來的數(shù)據(jù),而對方什么時候要發(fā)送數(shù)據(jù)是無法確定對方發(fā)送來的數(shù)據(jù),而對方什么時候
5、要發(fā)送數(shù)據(jù)是無法確定的。的。MCS51單片機的串行通信控制器會自動處理數(shù)據(jù)接收,單片機的串行通信控制器會自動處理數(shù)據(jù)接收,一旦接收到一個字節(jié)的數(shù)據(jù),串行通信控制器會設置數(shù)據(jù)接一旦接收到一個字節(jié)的數(shù)據(jù),串行通信控制器會設置數(shù)據(jù)接收完成標志,收完成標志,CPU檢測到該標志后,就從串行通信控制器中檢測到該標志后,就從串行通信控制器中將數(shù)據(jù)讀出。將數(shù)據(jù)讀出。 上述三個問題中,一個共性的問題是:上述三個問題中,一個共性的問題是:CPU需要對需要對一個標志進行檢測判斷,以決定是否進行一項預定的工一個標志進行檢測判斷,以決定是否進行一項預定的工作(即執(zhí)行一個特定的程序段)。對一個可能作(即執(zhí)行一個特定的程序
6、段)。對一個可能隨機出現(xiàn)隨機出現(xiàn)的標志的標志進行檢測判斷,可以采用兩種方法:查詢進行檢測判斷,可以采用兩種方法:查詢/中斷。中斷。 查詢是指查詢是指CPU在程序流程中循環(huán)判斷標志的改變。在程序流程中循環(huán)判斷標志的改變。如:啟動定時器時,定時器的定時超時標志如:啟動定時器時,定時器的定時超時標志TF為為0,定,定時間隔到時,定時器將定時超時標志時間隔到時,定時器將定時超時標志TF置為置為1,程序中,程序中CPU用循環(huán)結構判斷該標志是否為用循環(huán)結構判斷該標志是否為1等待定時結束:等待定時結束: while(TF = = 0);); TF = 1; 調用采樣函數(shù),調用采樣函數(shù), (TF定時到標志)定
7、時到標志) 或者在主函數(shù)的流程中按順序判斷各個標志或者在主函數(shù)的流程中按順序判斷各個標志的狀態(tài),以確定要做的工作。的狀態(tài),以確定要做的工作。 while(1) if(TI) 調用發(fā)送函數(shù);調用發(fā)送函數(shù); if(RI) 調用接受函數(shù);調用接受函數(shù); if(keypress)調用按鍵處理函數(shù);調用按鍵處理函數(shù); 這里,這里,TI、RI、keypress分別為定時到標分別為定時到標志、發(fā)送緩沖器空標志、接收緩沖器滿標志和有志、發(fā)送緩沖器空標志、接收緩沖器滿標志和有鍵按下標志。鍵按下標志。所謂中斷是指,單片機內部有一個所謂中斷是指,單片機內部有一個中斷管理系統(tǒng)中斷管理系統(tǒng),它對內部的定時器事件、串行通
8、信的發(fā)送和接收事它對內部的定時器事件、串行通信的發(fā)送和接收事件及外部事件(如鍵盤按鍵動作)等件及外部事件(如鍵盤按鍵動作)等進行自動的檢進行自動的檢測測判斷,判斷,當有某個事件產(chǎn)生時,中斷管理系統(tǒng)會置當有某個事件產(chǎn)生時,中斷管理系統(tǒng)會置位相應標志位相應標志通知通知CPU,請求請求CPU迅速去處理。迅速去處理。CPU檢測到某個標志時,會停止當前正在處理的程序流檢測到某個標志時,會停止當前正在處理的程序流程,轉去處理所發(fā)生的事件(針對發(fā)生的事件,調程,轉去處理所發(fā)生的事件(針對發(fā)生的事件,調用某一特定的函數(shù),稱為該事件的用某一特定的函數(shù),稱為該事件的中斷服務函數(shù)中斷服務函數(shù)),),處理完以后,再回
9、到原來被中斷的地方,繼續(xù)執(zhí)行處理完以后,再回到原來被中斷的地方,繼續(xù)執(zhí)行原來的程序。這個過程稱為原來的程序。這個過程稱為中斷中斷。(。(CPU對中斷標對中斷標志的檢測是在程序指令執(zhí)行的周期中順帶進行的,志的檢測是在程序指令執(zhí)行的周期中順帶進行的,不影響指令的連續(xù)執(zhí)行。不影響指令的連續(xù)執(zhí)行。 ) 注:程序中的一般函數(shù)是由主函數(shù)或其它函數(shù)調用注:程序中的一般函數(shù)是由主函數(shù)或其它函數(shù)調用的,而中斷服務函數(shù)不能被其它函數(shù)調用,它的執(zhí)的,而中斷服務函數(shù)不能被其它函數(shù)調用,它的執(zhí)行完全是隨機的。行完全是隨機的。 中斷管理系統(tǒng)可以處理的事件稱為中斷管理系統(tǒng)可以處理的事件稱為中斷源中斷源。一。一般計算機系統(tǒng)允
10、許有多個中斷源,當幾個中斷源同般計算機系統(tǒng)允許有多個中斷源,當幾個中斷源同時向時向CPU請求中斷,要求為它們服務的時候,就存請求中斷,要求為它們服務的時候,就存在在CPU優(yōu)先響應哪一個中斷請求源的問題,一般根優(yōu)先響應哪一個中斷請求源的問題,一般根據(jù)中斷源(所發(fā)生的實時事件)的輕重緩急排隊,據(jù)中斷源(所發(fā)生的實時事件)的輕重緩急排隊,優(yōu)先處理最緊急事件的中斷請求,于是規(guī)定每一個優(yōu)先處理最緊急事件的中斷請求,于是規(guī)定每一個中斷源都有自己的中斷源都有自己的中斷優(yōu)先級別中斷優(yōu)先級別。 當當CPU正在處理一個中斷源請求時,又發(fā)生了正在處理一個中斷源請求時,又發(fā)生了另一個優(yōu)先級比它高的中斷請求,如果另一個
11、優(yōu)先級比它高的中斷請求,如果CPU能夠暫能夠暫時中止執(zhí)行當前的中斷服務程序,轉而去處理優(yōu)先時中止執(zhí)行當前的中斷服務程序,轉而去處理優(yōu)先級更高的中斷請求,待處理完以后,再繼續(xù)執(zhí)行原級更高的中斷請求,待處理完以后,再繼續(xù)執(zhí)行原來的低級中斷處理程序,這樣的過程稱為來的低級中斷處理程序,這樣的過程稱為中斷嵌套中斷嵌套,這樣的中斷系統(tǒng)稱為多級中斷系統(tǒng)。沒有中斷嵌套這樣的中斷系統(tǒng)稱為多級中斷系統(tǒng)。沒有中斷嵌套功能的中斷系統(tǒng)稱為單級中斷系統(tǒng)。功能的中斷系統(tǒng)稱為單級中斷系統(tǒng)。 中斷系統(tǒng)要解決的問題CPU在不斷的執(zhí)行指令中,是如何檢測到隨機發(fā)生的中斷請求中斷能夠人為控制嗎(允許中斷或禁止中斷)中斷是隨機產(chǎn)生的,
12、不能用一般的子程序調用,那么如何處理中斷處理子程序呢當有多個中斷時怎么處理中斷服務完畢,如何正確回到原斷點處MCS51中斷系統(tǒng)中斷系統(tǒng) MCS51系列中不同型號單片機的中斷源數(shù)量系列中不同型號單片機的中斷源數(shù)量是不同的(是不同的(511個),最典型的個),最典型的8051單片機有單片機有5個中斷源(外部中斷個中斷源(外部中斷0、1,內部定時器中斷,內部定時器中斷0、1,串口中斷),具有兩個中斷優(yōu)先級串口中斷),具有兩個中斷優(yōu)先級。與中斷系統(tǒng)有。與中斷系統(tǒng)有關的特殊功能寄存器有中斷允許寄存器關的特殊功能寄存器有中斷允許寄存器IE、中斷優(yōu)中斷優(yōu)先級控制寄存器先級控制寄存器IP、中斷控制寄存器中斷控
13、制寄存器TCON和和SCON中有關位。中有關位。MCS51單片機基本的中斷系統(tǒng)結構如單片機基本的中斷系統(tǒng)結構如圖圖41所示。所示。 外部中斷請求0內部定時器0外部中斷請求1內部定時器1 內部 T串行口 R中斷請求標志寄存器源允許總允許允許中斷寄存器中斷優(yōu)先級寄存器中斷源標識符中斷源標識符高優(yōu)先級中斷請求中斷矢量低優(yōu)先級中斷請求中斷矢量T發(fā)送R接收INT0INT1查詢硬件圖41 MCS51的中斷系統(tǒng)1中斷源與中斷標志中斷源與中斷標志 MCS51中典型的中典型的8051單片機有單片機有5個個中斷源:中斷源:兩個外部兩個外部中斷:(中斷:(P3.2 INT0、P3.3 INT1)上上輸入輸入的外部中
14、斷源,低電平或負跳變有效,置位的外部中斷源,低電平或負跳變有效,置位TCON中的中的IE0和和IE1中斷請求標志位;中斷請求標志位;三個內部三個內部中斷源:定時器計數(shù)器中斷源:定時器計數(shù)器T0、T1的溢出中斷的溢出中斷源和串行口的發(fā)送源和串行口的發(fā)送/接收中斷。對接收中斷。對T0和和T1中斷,當定中斷,當定時計數(shù)回時計數(shù)回0溢出時,由硬件自動置位溢出時,由硬件自動置位TCON中的中的TF0或或TF1中斷請求標志位;對串行接收發(fā)送中斷,當中斷請求標志位;對串行接收發(fā)送中斷,當完成一串行完成一串行幀幀的接收發(fā)送時,由硬件自動置的接收發(fā)送時,由硬件自動置SCON中的中斷請求標志位中的中斷請求標志位T
15、I(發(fā)送)或發(fā)送)或RI(接收),必須接收),必須由用戶在中斷服務程序中復位由用戶在中斷服務程序中復位TI或或RI。 中斷控制寄存器中斷控制寄存器TCON的各位(可位尋址):的各位(可位尋址):IE0:外部中斷外部中斷0請求源(請求源(INT0)標志。標志。 IE01,外部中斷外部中斷0正在向正在向CPU請求中斷,當請求中斷,當 CPU響應該中斷時由硬件清零響應該中斷時由硬件清零IE0(邊沿觸發(fā)方式)。邊沿觸發(fā)方式)。IT0:外部中斷源外部中斷源 INT0 觸發(fā)方式控制位。觸發(fā)方式控制位。IT0 0,外部中斷外部中斷0程控為程控為電平觸發(fā)方式電平觸發(fā)方式,當,當P3.2輸入低電平時,置位輸入低
16、電平時,置位IE0。IT0 1,外部中斷外部中斷0程程控為控為邊沿觸發(fā)方式邊沿觸發(fā)方式,相繼的兩次采樣,一個周期中,相繼的兩次采樣,一個周期中采樣到為高電平,接著的下個周期中采樣到為低電采樣到為高電平,接著的下個周期中采樣到為低電平,則置平,則置1 IE0。D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0IE1:外部中斷外部中斷1請求(請求(INT1,P3.3)標志。標志。 IE1 1外部中斷外部中斷1向向 CPU請求中斷,當請求中斷,當 CPU響應響應外部中斷時,由硬件清外部中斷時,由硬件清0 IE1(邊沿觸發(fā)方式)。邊沿觸發(fā)方式)。IT1:外部中斷外部中斷1
17、觸發(fā)方式控制位。觸發(fā)方式控制位。 IT1 0,外部中斷外部中斷1程控為電平觸發(fā)方式,程控為電平觸發(fā)方式,IT1 1,外部中斷外部中斷1為邊沿觸發(fā)方式。其功能和為邊沿觸發(fā)方式。其功能和IT0類似。類似。TR0:定時計數(shù)器定時計數(shù)器T0運行控制位。運行控制位。(啟動(啟動/停止)停止)TF0:定時計數(shù)器定時計數(shù)器T0溢出中斷標志位,溢出中斷標志位,CPU執(zhí)行中執(zhí)行中斷服務程序時由硬件復位。斷服務程序時由硬件復位。TR1:定時計數(shù)器定時計數(shù)器T1運行控制位。運行控制位。TF1:定時計數(shù)器定時計數(shù)器T1溢出中斷標志位,溢出中斷標志位,CPU執(zhí)行中執(zhí)行中斷服務程序時由硬件復位。斷服務程序時由硬件復位。
18、串行口中斷:串行口的接收中斷標志串行口中斷:串行口的接收中斷標志RI(SCON.0)和發(fā)送中斷標志和發(fā)送中斷標志TI(SCON.1)邏輯或以后作為內邏輯或以后作為內部的一個中斷源。當串行口發(fā)送完一個字符由內部部的一個中斷源。當串行口發(fā)送完一個字符由內部硬件置位發(fā)送中斷標志硬件置位發(fā)送中斷標志TI,接收到一個字符后也由接收到一個字符后也由內部硬件置位接收中斷標志內部硬件置位接收中斷標志RI。應該注意,應該注意,CPU響響應串行口的中斷時,并不清應串行口的中斷時,并不清0 TI和和RI中斷標志,中斷標志,TI和和RI必須由軟件清必須由軟件清0(中斷服務程序中必須有清(中斷服務程序中必須有清 TI、
19、RI的指令)。的指令)。SCON:串行通信控制寄存器:串行通信控制寄存器2中斷控制中斷控制(1)中斷允許寄存器)中斷允許寄存器IEMCS51的的CPU對中斷源的開放或屏蔽,即每一個對中斷源的開放或屏蔽,即每一個中斷源是否被允許中斷,是由內部的中斷允許寄存中斷源是否被允許中斷,是由內部的中斷允許寄存器器IE(IE為特殊功能寄存器,它的字節(jié)地址為特殊功能寄存器,它的字節(jié)地址A8H,可位尋址)控制的,其格式如下:可位尋址)控制的,其格式如下:EA:CPU的中斷開放標志。的中斷開放標志。 EA 1,CPU開放中斷;開放中斷; EA 0,CPU屏蔽所有的中斷申請。屏蔽所有的中斷申請。EX0:外部中斷外部
20、中斷0中斷允許位。中斷允許位。 EX0 1,允許中斷;允許中斷;EX0 0,禁止中斷。禁止中斷。 D7D6D5D4D3D2D1D0EA ESET1EX1ET0EX0ET0:T0的溢出中斷允許位。的溢出中斷允許位。 ET0 1,允許允許T0中斷;中斷; ET0 0,禁止禁止T0中斷。中斷。EX1:外部中斷外部中斷1中斷允許位。中斷允許位。 EX1 1,允許外部中斷允許外部中斷1中斷;中斷; EX1 0,禁止外部中斷禁止外部中斷1中斷。中斷。ET1:定時器計數(shù)器定時器計數(shù)器 T1的溢出中斷允許位。的溢出中斷允許位。 ET1 1,允許允許T1中斷;中斷; ET1 0禁止禁止T1中斷。中斷。ES: 串
21、行口中斷允許位。串行口中斷允許位。 ES 1,允許串行口中斷;允許串行口中斷; ES 0禁止串行口中斷。禁止串行口中斷。 (2)中斷優(yōu)先級控制)中斷優(yōu)先級控制MCS51有兩個中斷優(yōu)先級,每一中斷請求源可編程為有兩個中斷優(yōu)先級,每一中斷請求源可編程為高優(yōu)先級中斷或低優(yōu)先級中斷,實現(xiàn)二級中斷嵌套。一高優(yōu)先級中斷或低優(yōu)先級中斷,實現(xiàn)二級中斷嵌套。一個正在被執(zhí)行的低優(yōu)先級中斷服務程序能被高優(yōu)先級中個正在被執(zhí)行的低優(yōu)先級中斷服務程序能被高優(yōu)先級中斷所中斷,斷所中斷,但不能被另一個同級的或低優(yōu)先級中斷源所但不能被另一個同級的或低優(yōu)先級中斷源所中斷。中斷。若若CPU正在執(zhí)行高優(yōu)先級的中斷服務程序,則不正在執(zhí)
22、行高優(yōu)先級的中斷服務程序,則不能被任何中斷源所中斷,一直執(zhí)行到結束,遇到返回指能被任何中斷源所中斷,一直執(zhí)行到結束,遇到返回指令令RETI,返回主程序后再執(zhí)行一條指令才能響應新的中返回主程序后再執(zhí)行一條指令才能響應新的中斷源申請。斷源申請。*為了實現(xiàn)上述功能,為了實現(xiàn)上述功能,MCS51的中斷系統(tǒng)有兩個不可尋的中斷系統(tǒng)有兩個不可尋址的優(yōu)先級狀態(tài)觸發(fā)器,一個指出址的優(yōu)先級狀態(tài)觸發(fā)器,一個指出CPU是否正在執(zhí)行高是否正在執(zhí)行高優(yōu)先級中斷服務程序,另一個指出優(yōu)先級中斷服務程序,另一個指出CPU是否正在執(zhí)行低是否正在執(zhí)行低級中斷服務程序。這兩個觸發(fā)器的級中斷服務程序。這兩個觸發(fā)器的1狀態(tài)分別屏蔽狀態(tài)分
23、別屏蔽所有的中斷申請和同一優(yōu)先級的其他中斷源申請。所有的中斷申請和同一優(yōu)先級的其他中斷源申請。另外,另外,MCS51的片內有一個中斷優(yōu)先級寄存器的片內有一個中斷優(yōu)先級寄存器IP(IP為特殊功能寄存器,它的字節(jié)地址為為特殊功能寄存器,它的字節(jié)地址為B8H,可位尋址),可位尋址),其格式如下:其格式如下: PX0:外部中斷外部中斷0中斷優(yōu)先級控制位。中斷優(yōu)先級控制位。 PX0 1,外部中斷外部中斷0中斷定義為高優(yōu)先級中斷;中斷定義為高優(yōu)先級中斷; PX0 0,外部中斷外部中斷0中斷定義為低優(yōu)先級中斷。中斷定義為低優(yōu)先級中斷。PT0:定時器定時器T0中斷優(yōu)先級控制位。中斷優(yōu)先級控制位。 PT0 1,
24、定時器定時器T0中斷定義為高優(yōu)先級中斷;中斷定義為高優(yōu)先級中斷; PT0 0,定時器定時器T0中斷定義為低優(yōu)先級中斷。中斷定義為低優(yōu)先級中斷。PX1:外部中斷外部中斷1中斷優(yōu)先級控制位。中斷優(yōu)先級控制位。 PX1 = 1,外部中斷外部中斷1中斷定義為高優(yōu)先級中斷;中斷定義為高優(yōu)先級中斷; PX1 0,外部中斷外部中斷1中斷定義為低優(yōu)先級中斷。中斷定義為低優(yōu)先級中斷。PT1:定時器定時器T1中斷優(yōu)先級控制位。中斷優(yōu)先級控制位。 PT1 1,定時器定時器T1中斷定義為高優(yōu)先級中斷;中斷定義為高優(yōu)先級中斷; PT1 0,定時器定時器T1中斷定義為低優(yōu)先級中斷。中斷定義為低優(yōu)先級中斷。 D7D6D5D
25、4D3D2D1D0 PSPT1PX1PT0PX0PS:串行口中斷優(yōu)先級控制位。串行口中斷優(yōu)先級控制位。 PS 1,串行口中斷定義為高優(yōu)先級中斷;串行口中斷定義為高優(yōu)先級中斷; PS 0,行口中斷定義為低優(yōu)先級中斷。行口中斷定義為低優(yōu)先級中斷。在在 CPU接收到接收到同樣優(yōu)先級同樣優(yōu)先級的幾個中斷請求源時,的幾個中斷請求源時,一個內部的硬件查詢序列確定優(yōu)先服務于哪一個中一個內部的硬件查詢序列確定優(yōu)先服務于哪一個中斷申請,這樣在同一個優(yōu)先級里,由查詢序列確定斷申請,這樣在同一個優(yōu)先級里,由查詢序列確定了優(yōu)先級結構,其優(yōu)先級別排列如下:了優(yōu)先級結構,其優(yōu)先級別排列如下: 外部中斷外部中斷0 最高最高
26、 定時器定時器T0中斷中斷 外部中斷外部中斷1 定時器定時器T1中斷中斷 串行口中斷串行口中斷 最低最低# MCS51復位以后,特殊功能寄存器復位以后,特殊功能寄存器IE、IP的內容均為的內容均為0,由初始化程序對,由初始化程序對IE、IP編程,以開編程,以開放中央處理器放中央處理器CPU中斷、允許某些中斷源中斷和改中斷、允許某些中斷源中斷和改變中斷的優(yōu)先級。變中斷的優(yōu)先級。 *3中斷響應過程中斷響應過程 MCS51的的CPU在每一個機器周期順序檢查每一在每一個機器周期順序檢查每一個中斷源。在個中斷源。在機器周期的機器周期的S6采樣采樣并按優(yōu)先級處理所并按優(yōu)先級處理所有被激活的中斷請求,如果沒
27、有被下述條件所阻止,有被激活的中斷請求,如果沒有被下述條件所阻止,將在下一個機器周期的狀態(tài)將在下一個機器周期的狀態(tài)S1響應激活了的最高級響應激活了的最高級中斷請求。中斷請求。CPU正在處理相同的或更高優(yōu)先級的中斷;正在處理相同的或更高優(yōu)先級的中斷;現(xiàn)行的機器周期不是所執(zhí)行指令的最后一個機器周現(xiàn)行的機器周期不是所執(zhí)行指令的最后一個機器周期;期; 正在執(zhí)行的指令是中斷返回指令(RETI)或者是對IE、IP的寫操作指令(執(zhí)行這些指令后至少再執(zhí)行一條指令后才會響應中斷)。 *如果上述條件中有一個存在,CPU將丟棄中斷查詢的結果;若一個條件也不存在,將在緊接著的下一個機器周期執(zhí)行中斷查詢的結果。處理器響
28、應中斷時,先置位相應的優(yōu)先級狀態(tài)觸發(fā)器(該觸發(fā)器指出CPU開始處理的中斷優(yōu)先級別),然后執(zhí)行一條硬件子程序調用,清0中斷請求源申請標志(TI和RI除外)。接著把程序計數(shù)部PC的內容壓入堆棧(但不保護PSW),將被響應的中斷服務程序的入口地址送程序計數(shù)器PC,各中斷源服務程序的入口地址為: 外部中斷00003H定時器T0000BH外部中斷10013H定時器T1001BH串行口中斷0023H通常在中斷入口,安排一條跳轉指令,以轉移到用戶設計的中斷處理程序入口。CPU執(zhí)行中斷處理程序一直到RETI指令為止。RETI指令是表示中斷服務程序的結束,CPU執(zhí)行完這條指令后,清0響應中斷時所置位的優(yōu)先級狀態(tài)
29、觸發(fā)器,然后從堆棧中彈出頂上的兩個字節(jié)到程序計數(shù)器 PC,CPU從原來打斷處重新執(zhí)行被中斷的程序。由此可見,用戶的中斷服務程序末尾必須安排一條返回指令RETI,CPU現(xiàn)場的保護和恢復必須由用戶的中斷服務程序實現(xiàn)。 * *一、中斷處理過程一、中斷處理過程 中斷處理過程分為四個階段:中斷請求,中斷處理過程分為四個階段:中斷請求,中斷響應,中斷處理、中斷返回。中斷響應,中斷處理、中斷返回。MCSMCS5151系列單系列單 片機的中斷過程流程如圖片機的中斷過程流程如圖6.26.2所示。所示。 NNYYYN執(zhí)執(zhí) 行行 指指 令令中斷標志中斷標志1?(中斷請求中斷請求?) 指令指令最后一個最后一個T周期周
30、期?EA=1?允允 許許 位位 = 1?CPU 判判 別優(yōu)別優(yōu) 先權先權 ,響響 應優(yōu)應優(yōu) 先權高先權高 的中斷的中斷斷點的斷點的PC進棧進棧, 中斷服務入口地址送中斷服務入口地址送PC撤撤 除除 中中 斷斷 標標 志志中中 斷斷 服服 務務中中 斷斷 返返 回回, 斷斷 點點 出出 棧棧 送送 PC 中斷請求中斷請求.中斷響應中斷響應中斷服務中斷服務中斷返回中斷返回中斷請求、中斷響應過程由硬件完成。中斷請求、中斷響應過程由硬件完成。中斷服務程序應根據(jù)需要進行編寫。程序中要注意保護中斷服務程序應根據(jù)需要進行編寫。程序中要注意保護現(xiàn)場和恢復現(xiàn)場?,F(xiàn)場和恢復現(xiàn)場。中斷返回是通過執(zhí)行一條中斷返回是通
31、過執(zhí)行一條RETIRETI中斷返回指令,使堆棧中中斷返回指令,使堆棧中被壓入的斷被壓入的斷 點地址送點地址送PCPC,從而返回主程序的斷點繼續(xù)執(zhí),從而返回主程序的斷點繼續(xù)執(zhí)行主程序。另外行主程序。另外RETIRETI還有恢復優(yōu)先級狀態(tài)觸發(fā)器還有恢復優(yōu)先級狀態(tài)觸發(fā)器 的作用,的作用,因此不能以因此不能以RETRET指令代替指令代替“RETIRETI”指令。指令。 * *二、中斷請求的撤除二、中斷請求的撤除 CPUCPU響應中斷后,應撤除該中斷請求標志,否則響應中斷后,應撤除該中斷請求標志,否則會再次中斷。會再次中斷。u對定時計數(shù)器對定時計數(shù)器T0、T1的溢出中斷,的溢出中斷,CPU響應中斷后,硬
32、件響應中斷后,硬件自動清除中斷請求標志自動清除中斷請求標志TF0 TF1。u 對邊沿觸發(fā)的外部中斷對邊沿觸發(fā)的外部中斷INT1和和INT0,CPU響應中斷后硬件響應中斷后硬件自動清除中斷請求標志自動清除中斷請求標志IE0和和IE1。u 對于串行口中斷,對于串行口中斷,CPU響應中斷后,沒有用硬件清除中斷請響應中斷后,沒有用硬件清除中斷請求標志求標志TI、RI,即這些中斷標志,即這些中斷標志 不會自動清除,必須用軟件清不會自動清除,必須用軟件清除,這是在編串行通信中斷服務中應該注意的。除,這是在編串行通信中斷服務中應該注意的。u 對電平觸發(fā)的外部中斷,對電平觸發(fā)的外部中斷,CPU在響應中斷時也不
33、會自動清除在響應中斷時也不會自動清除中斷標志,因此,在中斷標志,因此,在CPU響應中斷后應立即撤除響應中斷后應立即撤除INT1或或INT0的的低電平信號。低電平信號。*4外部中斷響應時間INT0和INT1電平在每一個機器周期的S5P2被采樣并鎖存到IE0、IE2中,這個新置入的IE0、IEI狀態(tài)等到下一個機器周期才被查詢電路查詢到。如果中斷被激活,并且滿足響應條件,CPU接著執(zhí)行一條硬件子程序調用指令以轉到相應的服務程序入口,該調用指令本身需兩個機器周期。這樣,在產(chǎn)生外部中斷請求到開始執(zhí)行中斷服務程序的第一條指令之間,最少需要三個完整的機器周期。如果中斷請求被前面列出的三個條件之一所阻止,則需
34、要更長的響應時間。如果已經(jīng)在處理同級或更高級中斷,額外的等待時間明顯地取決于別的中斷服務程序的處理過程。當沒有處理同級或更高級中斷時,如果正在處理的指令沒有執(zhí)行到最后的機器周期,所需的額外等待時間不會多于3個機器周期,因為最長的指令(乘法指令MUL和除法指令 DIV)也只有 4個機器周期,如果正在執(zhí)行的指令為IE、IP的指令,額外的等待時間不會多于 5個機器周期(最多需一個周期完成正在處理的指令,完成下一條指令(設MUL或DIV)4個機器周期)。這樣,在一個單一中斷優(yōu)先級的系統(tǒng)里,外部中斷響應時間總是在38個機器周期之間。 *外部中斷觸發(fā)方式選擇1電平觸發(fā)方式 若外部中斷定為電平觸發(fā)方式,外部
35、引腳中斷輸入必須有效(保持低電平),直到CPU實際響應該中斷時為止,同時在中斷服務程序返回之前,外部中斷輸入必須無效(高電平),否則CPU返回后會再次引起中斷。所以電平觸發(fā)方式適合于外部中斷輸入以低電平輸入的、而且中斷服務程序能清除外部中斷輸入請求信號的情況。在用戶系統(tǒng)中,可將中斷輸入信號經(jīng)一個D觸發(fā)器接入,并使D觸發(fā)器的D端接地,當外部中斷請求的正脈沖信號出現(xiàn)在D觸發(fā)器的CLK端時,D觸發(fā)器的Q端產(chǎn)生負電平,INTx有效,發(fā)出中斷請求,CPU執(zhí)行中斷服務程序時,利用一根口線,如P1.0,輸出一負電平脈沖使D觸發(fā)器置位,撤消中斷請求。 2邊沿觸發(fā)方式外部中斷若定義為邊沿觸發(fā)方式,外部中斷申請觸
36、發(fā)器能鎖存外部中斷輸入線上的負跳變,即使CPU暫時不能響應,中斷申請標志也不會丟失。在這種方式里,如果相繼連續(xù)兩次采樣,一個周期采樣到外部中斷輸入為高電平,下個周期采樣到低電平,則置位中斷申請觸發(fā)器,直到CPU響應此中斷時才清0。這樣不會丟失中斷,但輸入的脈沖寬度至少保持12個時鐘周期(若晶振頻率為6MHz,即 2S)才能被CPU采樣到。外部中斷的邊沿觸發(fā)方式適合于以脈沖形式輸入的外部輸入請求,如ADC0809的AD轉換結果的標志信號EOC為正脈沖,取反后連到8031的INTx,就可以中斷方式讀取AD的轉換結果。 中斷服務程序及例程使用MCS51的中斷,要為使用到的中斷源編寫中斷服務程序。C5
37、1為中斷服務程序的編寫提供了方便的方法。C51的中斷服務程序是一種特殊的函數(shù),它的說明形式為:void 函數(shù)名(void) interrupt n using m 函數(shù)體語句 這里,interrupt和using是為編寫C51中斷服務程序而引入的關鍵字,interrupt表示該函數(shù)是一個中斷服務函數(shù),interrupt后的整數(shù)n表示該中斷服務函數(shù)是對應哪一個中斷源。 每個中斷源都有系統(tǒng)指定的中斷編號: 中 斷 源 中 斷 編 號外部中斷00定時器T01外部中斷12定時器T13串行口中斷4using指定該中斷服務程序要使用的工作寄存器組號,m為03。關鍵字interrupt和using只能用于中
38、斷服務函數(shù)的說明而不能用于其它函數(shù)。程序中的任何函數(shù)都不能調用中斷服務函數(shù),中斷服務函數(shù)是由系統(tǒng)調用的。例:例:INT0端口接一開關,端口接一開關,P1.0接一發(fā)光二極管。接一發(fā)光二極管。開關閉合(接地)時,發(fā)光二極管改變一次狀態(tài)。開關閉合(接地)時,發(fā)光二極管改變一次狀態(tài)。#include “reg51.h”#include “intrins.h”Sbit P10=P10void delay(void) int a = 5000; while(a) _nop_( ); /*INTRINS.H中說明的內部函數(shù)中說明的內部函數(shù)*/P1.0INT0void int0_srv(void) inter
39、rupt 0 using 1 delay()(); if(INT0 = 0) P10 = !P10 ; while(INT0 = 0 ); void main()() P10 = 0; 初始化初始化TCON、IE、IP EA = 1; IT0=0; EX0 = 1; while(1); &+5V+5VP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.789C51EA&INT011111K 41K 2300 4圖6.、例6-1例如,對本節(jié)的例例如,對本節(jié)的例1用用C語言編程語言編程#includeint0() interrupt 0 /*INT0中斷函數(shù)中斷函數(shù)*/
40、P1=0 x0f; /*輸入端先置輸入端先置1,燈滅,燈滅*/ P1=4; /* 讀入開關狀態(tài),并左移四位,讀入開關狀態(tài),并左移四位, 使開關反映在發(fā)光二極管上使開關反映在發(fā)光二極管上*/ main() EA=1; /*開中斷總開關開中斷總開關*/ EX0=1; /*允許允許INT0中斷中斷*/ IT0=1; /*下降沿產(chǎn)生中斷下降沿產(chǎn)生中斷*/ while(1); /*等待中斷等待中斷*/ P1.189C51P1.0P1.2P1.4P1.3P1.5P1.6&1K 2INT1驅動器+5Vag圖6.EA*法法1:在主程序中控制中斷次數(shù):在主程序中控制中斷次數(shù)#includechar i;
41、code char tab16= 0 x3f,0 x06,0 x5b, 0 x4F,0 x66,0 x6d,0 x7d, 0 x07, 0 x7f,0 x6f,0 x77, 0 x7c,0 x39, 0 x5e,0 x79,0 x71;int( ) interrupt 2i+; /*計中斷次數(shù)計中斷次數(shù)*/ P1=tabi; /*查表,次數(shù)送顯示查表,次數(shù)送顯示*/ main() EA=1; EX1=1; IT1=1; ap5: P1=0 x3f; /*顯示顯示“0”*/ for(i=0;i16;); /*當當I16等待中斷等待中斷*/ goto ap5; /*當當i=16重復下重復下 一輪一
42、輪16次中次中*/法二:在中斷服務程序中控制中斷次數(shù)法二:在中斷服務程序中控制中斷次數(shù)#includechar i;code char tab16= 0 x3f,0 x06, 0 x5b,0 x4F0 x66, 0 x6d,0 x7d,0 x07, 0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e, 0 x79,0 x71;int() interrupt 2 i+ if (i16)P1=tabi; elsei=0;P1=0 x3f;main() EA=1;EX1=1; IT1=1; P1=0 x3f; while(1); /*等待中斷等待中斷*/ 89C51P1.0P1.
43、7INT1+5V作業(yè):中斷控制流水燈定時定時/計數(shù)器計數(shù)器定時定時/計數(shù)器控制寄存器計數(shù)器控制寄存器定時定時/計數(shù)器運行控制計數(shù)器運行控制定時定時/計數(shù)器工作方式計數(shù)器工作方式通常實現(xiàn)定時通常實現(xiàn)定時/計數(shù)有計數(shù)有3種主要方法種主要方法:軟件定時,軟件定時,即讓機器執(zhí)行一個程序段,這段程序本身沒即讓機器執(zhí)行一個程序段,這段程序本身沒有具體的執(zhí)行目的,只是為了磨時間。執(zhí)行這段程序所有具體的執(zhí)行目的,只是為了磨時間。執(zhí)行這段程序所需要的時間就是延時時間。這種程序前面已設計過。這需要的時間就是延時時間。這種程序前面已設計過。這種方法定時占用種方法定時占用CPU執(zhí)行時間,降低了執(zhí)行時間,降低了CPU利
44、用率。利用率。數(shù)字電路硬件定時:數(shù)字電路硬件定時:采用小規(guī)模集成電路器件如采用小規(guī)模集成電路器件如555,外接定時部件外接定時部件(電阻和電容電阻和電容)構成。這樣的定時電路簡單,構成。這樣的定時電路簡單,但要改變定時范圍,必須改變電阻和電容,這種定時電但要改變定時范圍,必須改變電阻和電容,這種定時電路在硬件連接好以后,修改不方便。路在硬件連接好以后,修改不方便??删幊潭〞r可編程定時/計數(shù)器計數(shù)器是為方便微型計算機系統(tǒng)的設計和是為方便微型計算機系統(tǒng)的設計和應用而研制的,它是硬件定時,又很容易地通過軟件來應用而研制的,它是硬件定時,又很容易地通過軟件來確定和改變它的定時值,通過初始化編程,能夠滿
45、足各確定和改變它的定時值,通過初始化編程,能夠滿足各種不同的定時和計數(shù)要求,因而在嵌入式系統(tǒng)的設計和種不同的定時和計數(shù)要求,因而在嵌入式系統(tǒng)的設計和應用中得到廣泛的應用。(基本原理)應用中得到廣泛的應用。(基本原理)8051型有兩個型有兩個十六位十六位定時定時/計數(shù)器計數(shù)器T0、T1,有四種工有四種工作方式。作方式。 MCS51系列單片機的定時系列單片機的定時/計數(shù)器有幾計數(shù)器有幾個相關的特殊功能寄存器:個相關的特殊功能寄存器:方式控制寄存器方式控制寄存器TMOD;加法計數(shù)寄存器加法計數(shù)寄存器TH0、TH1 (高八位)(高八位) TL0、TL1 (低八位);低八位);定時定時/計數(shù)到標志計數(shù)到
46、標志TF0、TF1(中斷控制寄存器中斷控制寄存器TCON)定時定時/計數(shù)器啟??刂莆挥嫈?shù)器啟??刂莆籘R0、TR1(TCON)定時定時/計數(shù)器中斷允許位計數(shù)器中斷允許位ET0、ET1(中斷允許寄存中斷允許寄存IE)定時定時/計數(shù)器中斷優(yōu)先級控制位計數(shù)器中斷優(yōu)先級控制位PT0、PT1(中斷優(yōu)中斷優(yōu)IP) 1. 定時工作方式定時工作方式 設置為定時工作方式時,定時器計數(shù)的脈沖是由設置為定時工作方式時,定時器計數(shù)的脈沖是由51單片機片內單片機片內振蕩器經(jīng)振蕩器經(jīng)12分頻后產(chǎn)生的。分頻后產(chǎn)生的。 每經(jīng)過一個機器周期定時器每經(jīng)過一個機器周期定時器(T0或或T1)的數(shù)值加的數(shù)值加1直至計數(shù)滿產(chǎn)生直至計數(shù)滿
47、產(chǎn)生溢出。溢出。如:當如:當8051采用采用12MHz晶體時,每個機器周期為晶體時,每個機器周期為1s,計,計5 個機器個機器周期即為周期即為5 s,即定時,即定時5 s 。 2. 計數(shù)工作方式計數(shù)工作方式 設置為計數(shù)工作方式時,定時設置為計數(shù)工作方式時,定時/計數(shù)器對引腳計數(shù)器對引腳 P3.4 (T0)和和P3.5 (T1)輸入的外部脈沖信號計數(shù)。輸入的外部脈沖信號計數(shù)。 當輸入脈沖信號產(chǎn)生由當輸入脈沖信號產(chǎn)生由1至至0的下降沿時,定時器的值的下降沿時,定時器的值 加加 1。測。測量過程是:量過程是: CPU前一個機器周期采樣脈沖值為高,下一個機器周前一個機器周期采樣脈沖值為高,下一個機器周
48、期采樣脈沖值為低,則計數(shù)器加期采樣脈沖值為低,則計數(shù)器加 1。 由于檢測一個由于檢測一個1 1至至0 0的跳變需要二個機器周期,故最高計數(shù)的跳變需要二個機器周期,故最高計數(shù)頻率為振蕩頻率的二十四分之一。頻率為振蕩頻率的二十四分之一。 雖然對輸入信號的占空比無特殊要求,但為了確保某個電平雖然對輸入信號的占空比無特殊要求,但為了確保某個電平在變化之前至少被采樣一次,要求電平保持時間至少是一個完整在變化之前至少被采樣一次,要求電平保持時間至少是一個完整的機器周期。的機器周期。 無論是定時還是計數(shù),當軟件設定了定時無論是定時還是計數(shù),當軟件設定了定時/計數(shù)器的工作方式,計數(shù)器的工作方式,啟動以后,定時
49、啟動以后,定時/計數(shù)器就按規(guī)定的方式工作,不占用計數(shù)器就按規(guī)定的方式工作,不占用CPU的操作的操作時間,此時時間,此時CPU可執(zhí)行其他程序,到了計滿規(guī)定的時間或規(guī)定的可執(zhí)行其他程序,到了計滿規(guī)定的時間或規(guī)定的個數(shù)(定時個數(shù)(定時/計數(shù)器溢出),定時計數(shù)器溢出),定時/計數(shù)器會給出溢出標志,你可以計數(shù)器會給出溢出標志,你可以通過查詢或中斷方式通過查詢或中斷方式了解是否溢出。這種工作的方式如同人帶的了解是否溢出。這種工作的方式如同人帶的手表,人在工作或睡覺,而手表依然滴滴答答行走,你可以通過手表,人在工作或睡覺,而手表依然滴滴答答行走,你可以通過看表或設鬧鐘方式,到了規(guī)定的時間,干你想干的事??幢?/p>
50、或設鬧鐘方式,到了規(guī)定的時間,干你想干的事。定時計數(shù)器定時計數(shù)器方式控制方式控制寄存器寄存器TMOD 定時計數(shù)器的工作方式由定時計數(shù)器的工作方式由TMOD的各位控制,的各位控制,TMOD的格式為:的格式為: TMOD的低四位為的低四位為T0的方式字,高四位為的方式字,高四位為T1的方的方式字。式字。TMOD不能位尋址,必須整體賦值不能位尋址,必須整體賦值。TMOD各各位的含義如下位的含義如下:1. 工作方式選擇位工作方式選擇位M1、M0 M1、M0的狀態(tài)決定定時器的工作方式:的狀態(tài)決定定時器的工作方式:D7D6D5D4D3D2D1D0GATEC/T M1 M0GATEC/TM1M02. 定時和
51、外部事件計數(shù)方式選擇位定時和外部事件計數(shù)方式選擇位C/T C/T0為定時器方式。在該方式中,以振蕩器輸出時為定時器方式。在該方式中,以振蕩器輸出時鐘脈沖鐘脈沖(fosc)的十二分頻信號(即機器周期)作為計數(shù)信號,的十二分頻信號(即機器周期)作為計數(shù)信號,也就是每一個機器周期也就是每一個機器周期,定時器加定時器加1,若晶振為,若晶振為12MHz,則定時器計數(shù)頻率為則定時器計數(shù)頻率為1MHz,計數(shù)的脈沖周期為計數(shù)的脈沖周期為1S。定時器從初值開始加定時器從初值開始加1計數(shù)直至定時器溢出。計數(shù)直至定時器溢出。M1M0 功功 能能 說說 明明 00110101方式方式0,為,為13位的定時計數(shù)器位的定
52、時計數(shù)器方式方式1,為,為16位的定時計數(shù)器位的定時計數(shù)器方式方式2,為常數(shù)自動重裝入的,為常數(shù)自動重裝入的8位定時計數(shù)器位定時計數(shù)器方式方式3,T0分分為兩個為兩個8位定時計數(shù)器,位定時計數(shù)器, T1在該方式時停止在該方式時停止 C/T1為外部事件計數(shù)器方式,這種方式為外部事件計數(shù)器方式,這種方式將外部引腳(將外部引腳(T0為為P3.4、T1為為P3.5)上的輸上的輸入脈沖作為計數(shù)脈沖。(下降沿進行計數(shù))入脈沖作為計數(shù)脈沖。(下降沿進行計數(shù)) 外部事件計數(shù)時最高計數(shù)頻率為晶振頻外部事件計數(shù)時最高計數(shù)頻率為晶振頻率的二十四分之一,外部輸入脈沖高電平和率的二十四分之一,外部輸入脈沖高電平和低電平
53、時間必須在一個機器周期以上。低電平時間必須在一個機器周期以上。 對外部輸入脈沖計數(shù)的目的通常是為了對外部輸入脈沖計數(shù)的目的通常是為了測試脈沖的周期、頻率或對輸入的脈沖數(shù)進測試脈沖的周期、頻率或對輸入的脈沖數(shù)進行累加。行累加。3. 門控位門控位GATE GATE與與TR0、TR1配合決定定時配合決定定時/計數(shù)器的啟停。計數(shù)器的啟停。 GATE = 0時,定時器時,定時器/計數(shù)器的啟停只受定時器計數(shù)器的啟停只受定時器運行控制位(運行控制位(TR0、TR1)的控制。的控制。 (軟件啟動) GATE = 1時,定時器時,定時器/計數(shù)器的啟停除受計數(shù)器的啟停除受TR0、 TR1控制外,還受外部引腳(控制
54、外,還受外部引腳(INT0、 INT1)輸入電輸入電平的控制(平的控制(為高為高)。即)。即TR0和和INT0控制控制T0的運行,的運行,TR1和和INT1控制控制T1的運行的運行 (軟硬啟動)定時器運行控制位定時器運行控制位在特殊功能寄存器在特殊功能寄存器 TCON中存放著定時器的運行控制位中存放著定時器的運行控制位和溢出標志位。和溢出標志位。1定時器定時器T0運行控制位運行控制位TR0TR0(TCON.4)由軟件置位和清零。由軟件置位和清零。 當當GATE=0時,時,T0的計數(shù)僅由的計數(shù)僅由TR0控制,控制,TR0=1時允許時允許T0計計數(shù),數(shù),TR0=0時禁止時禁止T0計數(shù),這時,定時器
55、僅由軟件控制。計數(shù),這時,定時器僅由軟件控制。 當當GATE=1時,僅當時,僅當TR0=1且且P3.2的輸入信號為的輸入信號為高電平高電平時時T0才計數(shù),當才計數(shù),當TR0為為0或或P3.2的輸入為低電平時都禁止的輸入為低電平時都禁止T0計數(shù),這計數(shù),這時,若置時,若置TR0為為1,則定時器僅由引腳信號的狀態(tài)控制啟停,因,則定時器僅由引腳信號的狀態(tài)控制啟停,因而是硬件控制的。用而是硬件控制的。用TR0和和INT0一起控制定時器的啟停,則為一起控制定時器的啟停,則為軟、硬件配合控制。軟、硬件配合控制。2定時器定時器 T1運行控制位運行控制位TR1 定時定時/計數(shù)器的工作方式計數(shù)器的工作方式MCS
56、51的定時器有方式的定時器有方式0、方式、方式1、方式、方式2和和方式方式3這這4種工作方式。種工作方式。1.方式方式0當當M1M0=00時,定時器工作于方式時,定時器工作于方式0。12振蕩器T0端TR0GATEINT0端C/T = 0C/T = 1TL0(5位)TH0(8位)TF0中斷控制 定時計數(shù)器0工作方式0與 方式方式 0為為13位的計數(shù)器,由位的計數(shù)器,由TL0的低的低5位和位和TH0的的8位位組成,組成,TL0低低5位計數(shù)溢出時向位計數(shù)溢出時向TH0進位,進位,TH0計數(shù)溢出時計數(shù)溢出時置位溢出標志置位溢出標志TF0。若若T0工作于定時方式,設計數(shù)初值為工作于定時方式,設計數(shù)初值為
57、a,晶振頻率為晶振頻率為12MHz,則則T0從初值開始計數(shù)到溢出的定從初值開始計數(shù)到溢出的定時時間為時時間為 t(213a)1S。2. 方式方式1當當M1M0=01時,定時器工作于方式時,定時器工作于方式1。12振蕩器T1端TR1GATEINT1端C/T = 0C/T = 1TL1(8位)TH1(8位)TF1中斷控制 定時計數(shù)器工作方式1T1工作于方式工作于方式1時,由時,由TH1作為高作為高8位,位,TL1作為低作為低8位,構成一個十六位的計數(shù)器。若位,構成一個十六位的計數(shù)器。若T1工作于定時方式工作于定時方式1,計數(shù)初值為計數(shù)初值為 a,晶振頻率為晶振頻率為12MHz,則則T1從計數(shù)初值計
58、從計數(shù)初值計數(shù)到溢出的定時時間為數(shù)到溢出的定時時間為t =(216a)S。3. 方式方式2M1M0=10時,定時器計數(shù)器工作于方式時,定時器計數(shù)器工作于方式2,方式,方式2為自動恢復初值的為自動恢復初值的 8位計數(shù)器。位計數(shù)器。TL1作為作為8位計數(shù)器,位計數(shù)器,TH1作為計數(shù)初值寄存器。作為計數(shù)初值寄存器。 t =(28a)S。 12振蕩器T1端TR1GATEINT1端C/T = 0C/T = 1TL1(8位)TH1(8位)TF1中斷控制 定時/計數(shù)器工作方式2重新裝入*4.方式方式3 M1M0=11時,被設置為方式時,被設置為方式3。12foscT0端TR0GATEINT0端C/T = 0
59、C/T = 1TL0(8位)TF0中斷控制定時/計數(shù)器工作方式31/12 fosc1/12 foscTR1TF1中斷1/12 foscTH0(8位)控制 若若T1設置為工作方式設置為工作方式3時,則使時,則使T1停止計數(shù)。停止計數(shù)。若若T0被設置為方式被設置為方式3,則,則T0分為兩個獨立的分為兩個獨立的8位計數(shù)位計數(shù)器器TL0和和TH0。 TL0可作為八位定時可作為八位定時/計數(shù)器,可使用計數(shù)器,可使用T0的所有的所有狀態(tài)控制位(狀態(tài)控制位(GATE、TR0、INT0(P3.2)、)、T0(P3.4)、)、TF0等),等),TL0計數(shù)溢出時置位溢出標計數(shù)溢出時置位溢出標志志TF0,TL0計數(shù)
60、初值必須由軟件每次設定。計數(shù)初值必須由軟件每次設定。 TH0只能作為一個只能作為一個8位定時器,并使用位定時器,并使用T1的狀態(tài)控的狀態(tài)控制位制位TR1、TF1。TRl為為1時,允許時,允許TH0計數(shù),計數(shù),當當TH0計數(shù)溢出時,置計數(shù)溢出時,置1溢出標志溢出標志TF1。 一般只有當一般只有當T1用于串行口的波特率發(fā)生器時,用于串行口的波特率發(fā)生器時,T0才在需要時用于方式才在需要時用于方式3,以增加一個計數(shù)器。這,以增加一個計數(shù)器。這時時T1的啟停也受的啟停也受TR1控制,當控制,當T1計數(shù)溢出時不置計數(shù)溢出時不置位位TF1。定時定時/計數(shù)器應用舉例計數(shù)器應用舉例使用使用MCS51單片機的定時單片機的定時/計數(shù)器
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村集體設備租賃合同范本
- 代理全轉讓合同范本
- 臨時材料購買合同范本
- 包人工電纜合同范本
- 第二單元第11課《while循環(huán)的應用實例》教學設計 2023-2024學年浙教版(2020)初中信息技術八年級上冊
- 農(nóng)村閑置小學出租合同范本
- 出口尿素銷售合同范本
- 企業(yè)團隊建設合同范本
- 出售舊材料合同范本
- 人事調動合同范本
- 2025年企業(yè)中高層安全第一課:安全責任意識強化專題培訓
- 2025年上半年中煤科工集團商業(yè)保理限公司招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年南京機電職業(yè)技術學院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 英語-九師聯(lián)盟2025屆高三年級上學期1月質量檢測試題和答案
- 電力企業(yè)發(fā)電企業(yè)設備點檢定修培訓教材
- 流行性感冒診療方案(2025年版)
- 2024CSCO免疫檢查點抑制劑相關的毒性管理指南
- 《影像增強檢查外周靜脈通路三級評價模式應用規(guī)范》編制說明
- 2025年社區(qū)計生工作計劃(三篇)
- 2025年湖北中煙工業(yè)限責任公司招聘筆試高頻重點提升(共500題)附帶答案詳解
- 2025江西上饒經(jīng)濟技術開發(fā)區(qū)招商集團限公司招聘29人高頻重點提升(共500題)附帶答案詳解
評論
0/150
提交評論