




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第第5 5章章 單片機的中斷與定時系統單片機的中斷與定時系統 學習目標學習目標n掌握中斷系統的基本概念掌握中斷系統的基本概念n掌握中斷系統使用的相關寄存器掌握中斷系統使用的相關寄存器n掌握中斷系統的編程方法及應用掌握中斷系統的編程方法及應用n掌握計數掌握計數/ /定時的基本概念定時的基本概念n掌握計數掌握計數/ /定時使用的相關寄存器定時使用的相關寄存器n掌握計數掌握計數/ /定時器的編程方法及應用定時器的編程方法及應用 主要內容主要內容5.1 5.1 中斷系統中斷系統 5.1.1 5.1.1 中斷的基本概念中斷的基本概念5.1.2 5.1.2 中斷源及中斷請求中斷源及中斷請求5.1.3 5.
2、1.3 中斷系統結構中斷系統結構5.1.4 5.1.4 中斷控制中斷控制5.1.5 5.1.5 中斷處理過程中斷處理過程5.1.6 5.1.6 中斷系統的應用中斷系統的應用5.2 5.2 定時定時/ /計數器接口計數器接口5.2.1 5.2.1 定時定時/ /計數器的主要特性計數器的主要特性5.2.2 5.2.2 定時定時/ /計數器計數器T0T0、T1T1的結構的結構5.2.3 5.2.3 定時定時/ /計數器的控制寄存器計數器的控制寄存器5.2.4 5.2.4 定時定時/ /計數器的工作方式計數器的工作方式5.2.5 5.2.5 定時定時/ /計數器的初始化編程及應用計數器的初始化編程及應
3、用5.3 5.3 中斷及定時系統綜合應用中斷及定時系統綜合應用 與上對比,單片機中也有同樣的問題。與上對比,單片機中也有同樣的問題。CPU正在執行原程正在執行原程序,突然,被意外事情打斷,轉去執行新程序。序,突然,被意外事情打斷,轉去執行新程序。CPU執行新程執行新程序結束后,又回到原程序中繼續執行。這樣的過程就叫序結束后,又回到原程序中繼續執行。這樣的過程就叫 。 什么叫中斷?什么叫中斷? 舉例:舉例:課堂教學中,當老師正在按備課教案給同學們講課課堂教學中,當老師正在按備課教案給同學們講課 時,課堂中任何一個同學都可能突然間提出問題,老師暫停時,課堂中任何一個同學都可能突然間提出問題,老師暫
4、停正在講授的課程內容,解答同學的問題,問題解決后,老師正在講授的課程內容,解答同學的問題,問題解決后,老師接著剛才的內容繼續講授課程。這樣一個過程實質上就是一接著剛才的內容繼續講授課程。這樣一個過程實質上就是一個中斷過程。個中斷過程。 5.1 515.1 51的中斷系統的中斷系統5.1.1 5.1.1 中斷的概念中斷的概念5.1 515.1 51的中斷系統的中斷系統5.1.1 5.1.1 中斷的概念中斷的概念 老師按教案講課是老師按教案講課是“主程序主程序”;提問同學是;提問同學是“中斷源中斷源”;提問打斷老師正常授課過程可稱為;提問打斷老師正常授課過程可稱為“中斷請求中斷請求”;老師認為有必
5、要馬上回答這個問;老師認為有必要馬上回答這個問題,可稱為是題,可稱為是“中斷允許中斷允許”;暫停正在講授的課;暫停正在講授的課程內容解答同學的疑問,可稱為程內容解答同學的疑問,可稱為“中斷響應中斷響應”;解答疑問的過程可稱為解答疑問的過程可稱為“中斷處理中斷處理”;解答完疑;解答完疑問繼續講授課程內容可稱之為問繼續講授課程內容可稱之為“中斷返回中斷返回”。 單片機實現上述中斷功能的部件稱為單片機實現上述中斷功能的部件稱為中斷系統中斷系統 采用中斷方式,采用中斷方式,CPUCPU將只在外部設備提出請求時才中斷正將只在外部設備提出請求時才中斷正在執行的任務,來執行外部設備請求任務,這樣極大地提升在
6、執行的任務,來執行外部設備請求任務,這樣極大地提升了了CPUCPU的使用效率。的使用效率。5.1.2 5.1.2 中斷系統的結構中斷系統的結構 80C5180C51單片機的中斷源共有單片機的中斷源共有5 5個,其中個,其中2 2個為外部中個為外部中斷源、斷源、2 2個定時中斷源和個定時中斷源和1 1個串行中斷源。個串行中斷源。 1 1、2 2個外部中斷源個外部中斷源 外部中斷是由外部事件引起的中斷,分別由引腳外部中斷是由外部事件引起的中斷,分別由引腳P3.2P3.2和和P3.3 P3.3 引入外部中斷請求有兩種信號方式引入外部中斷請求有兩種信號方式 ,可通過設置控,可通過設置控制位制位ITXI
7、TX(X=0X=0,1 1)進行定義。)進行定義。2 2、 2 2個定時中斷源個定時中斷源 定時中斷是為單片機的計數定時中斷是為單片機的計數/ /定時器設置的中斷。當定時定時器設置的中斷。當定時器器TxTx對單片機內部定時脈沖或對外部計數脈沖進行計數發對單片機內部定時脈沖或對外部計數脈沖進行計數發生溢出時,置位生溢出時,置位TFxTFx,并向,并向CPUCPU申請中斷。申請中斷。3 3、 1 1個串行中斷個串行中斷 串行中斷是為串行數據傳送的需要而設置的中斷。當串串行中斷是為串行數據傳送的需要而設置的中斷。當串行口接收完一幀串行數據時置位行口接收完一幀串行數據時置位RIRI或當串行口發送完一幀
8、或當串行口發送完一幀串行數據時置位串行數據時置位TITI,向,向CPUCPU申請中斷。申請中斷。 5.1.3 5.1.3 中斷系統的結構中斷系統的結構 80C5180C51的中斷系統有的中斷系統有5 5個中斷源,個中斷源,2 2個優先級,個優先級,可實現二級中斷嵌套可實現二級中斷嵌套 。IT0 IT0 外部中斷外部中斷0 0觸發方式控制位。觸發方式控制位。 當當IT0=0IT0=0時,為電平觸發方式。時,為電平觸發方式。 當當IT0=1IT0=1時,為邊沿觸發方式(下降沿有效)。時,為邊沿觸發方式(下降沿有效)。IE0 IE0 外部中斷外部中斷0 0中斷請求標志位。中斷請求標志位。IT1 IT
9、1 外部中斷外部中斷1 1觸發方式控制位。觸發方式控制位。IE1 IE1 外部中斷外部中斷1 1中斷請求標志位。中斷請求標志位。TF0 TF0 定時定時/ /計數器計數器T0T0溢出中斷請求標志位。溢出中斷請求標志位。TF1 TF1 定時定時/ /計數器計數器T1T1溢出中斷請求標志位。溢出中斷請求標志位。 1 1 TCONTCON定時器與外部中斷控制寄存器定時器與外部中斷控制寄存器 5.1.4 5.1.4 中斷控制中斷控制利用中斷請利用中斷請求標志位來求標志位來通知通知CPUCPU中斷請求!中斷請求!TF1 T1TF1 T1的溢出中斷標志的溢出中斷標志 硬件置硬件置1 1,硬件清,硬件清0
10、0(也可軟件清(也可軟件清0 0)TF0 T0TF0 T0的溢出中斷標志。(的溢出中斷標志。(用法同用法同TF1TF1,針對,針對T0T0的的)IE1 IE1 外部中斷外部中斷1 1(/INT1/INT1)請求標志。)請求標志。 外部有中斷請求時,外部有中斷請求時,硬件使硬件使IE1IE1置置1 1,硬件清,硬件清0 0。IE0 IE0 外部中斷外部中斷0 0(/INT0/INT0)請求標志。)請求標志。 (用法同用法同IE1IE1)IT1 IT1 外部中斷外部中斷1 1(/INT1/INT1)觸發類型控制位。)觸發類型控制位。 IT1 = 0 IT1 = 0 ,低電平觸發。,低電平觸發。IT
11、1 = 1 IT1 = 1 ,下降沿觸發。,下降沿觸發。 IT0 IT0 外中斷外中斷0 0(/INT0/INT0)觸發類型控制位,)觸發類型控制位,用法同用法同IT1IT1。 2 2、SCONSCON的中斷標志的中斷標志nRIRI(SCON.0SCON.0),串行口接收中斷標志位。當允許),串行口接收中斷標志位。當允許串行口接收數據時,每接收完一個串行幀,由硬串行口接收數據時,每接收完一個串行幀,由硬件置位件置位RIRI。但是,。但是,RIRI必須由軟件清除必須由軟件清除。nTITI(SCON.1SCON.1),串行口發送中斷標志位。當),串行口發送中斷標志位。當CPUCPU將一個發送數據寫
12、入串行口發送緩沖器時,就啟將一個發送數據寫入串行口發送緩沖器時,就啟動了發送過程。每發送完一個串行幀,由硬件置動了發送過程。每發送完一個串行幀,由硬件置位位TITI。CPUCPU響應中斷時,不能自動清除響應中斷時,不能自動清除TITI,TITI必須必須由軟件清除由軟件清除。 3.3.中斷允許控制中斷允許控制 CPUCPU對中斷系統所有中斷以及某個中斷源的開對中斷系統所有中斷以及某個中斷源的開放和屏蔽是由中斷允許寄存器放和屏蔽是由中斷允許寄存器IEIE控制的。控制的。nEX0EX0(IE.0)(IE.0),外部中斷,外部中斷0 0允許位;允許位;nET0ET0(IE.1)(IE.1),定時,定時
13、/ /計數器計數器T0T0中斷允許位;中斷允許位; nEX1EX1(IE.2)(IE.2),外部中斷,外部中斷1 1允許位;允許位;nET1ET1(IE.3)(IE.3),定時,定時/ /計數器計數器T1T1中斷允許位;中斷允許位;nESES(IE.4)IE.4),串行口中斷允許位;,串行口中斷允許位;nEAEA (IE.7) (IE.7), CPUCPU中斷允許(總允許)位。中斷允許(總允許)位。若為若為“1”1”,開關接,開關接通,允許通,允許例如例如 SETB EASETB EA若為若為“0”0”,開關斷,開關斷開,不允許開,不允許例如例如 CLR IE.7CLR IE.7為什么要為什么
14、要有中斷優有中斷優先級?先級? CPUCPU同一時間只能響應一個中斷請求。若同時同一時間只能響應一個中斷請求。若同時來了兩個或兩個以上中斷請求,就必須有先有來了兩個或兩個以上中斷請求,就必須有先有后。后。 ! 為此將為此將5 5個中斷源分成高級、低級兩個級個中斷源分成高級、低級兩個級別,高級優先,由別,高級優先,由IPIP控制。控制。 4. 4. 中斷優先級控制中斷優先級控制 5151單片機有兩個中斷優先級,即可實現二級中單片機有兩個中斷優先級,即可實現二級中斷服務嵌套。每個中斷源的中斷優先級都是由中斷斷服務嵌套。每個中斷源的中斷優先級都是由中斷優先級寄存器優先級寄存器IPIP中的相應位的狀態
15、來規定的中的相應位的狀態來規定的 。nPX0PX0(IP.0IP.0),外部中斷),外部中斷0 0優先級設定位;優先級設定位;nPT0PT0(IP.1IP.1),定時),定時/ /計數器計數器T0T0優先級設定位;優先級設定位;nPX1PX1(IP.2IP.2),外部中斷),外部中斷0 0優先級設定位;優先級設定位;nPT1PT1(IP.3IP.3),定時),定時/ /計數器計數器T1T1優先級設定位;優先級設定位;nPSPS (IP.4IP.4),串行口優先級設定位。),串行口優先級設定位。該位是該位是“1”1”時,為高級優先時,為高級優先級級該位是該位是“ “ 0”0”時,為低級優時,為低
16、級優先級先級 當當CPUCPU正在執行某個中斷服務程序時,如果發正在執行某個中斷服務程序時,如果發生更高一級的中斷源請求中斷,生更高一級的中斷源請求中斷,CPUCPU可以可以“中斷中斷”正在執行的低優先級中斷正在執行的低優先級中斷, ,轉而響應更高一級的中轉而響應更高一級的中斷,這就是斷,這就是中斷嵌套中斷嵌套。中斷優先級是為中斷嵌套服。中斷優先級是為中斷嵌套服務的。務的。5.5.中斷優先級控制原則和控制邏輯中斷優先級控制原則和控制邏輯中斷嵌套中斷嵌套5151單片機的中斷優先級有三條原則:單片機的中斷優先級有三條原則:nCPUCPU同時接收到幾個中斷時,同時接收到幾個中斷時,首先響應優先級別最
17、首先響應優先級別最高的中斷請求。高的中斷請求。n正在進行的中斷過程正在進行的中斷過程不能被新的同級或低優先級的不能被新的同級或低優先級的中斷請求所中斷。中斷請求所中斷。n正在進行的低優先級中斷服務,正在進行的低優先級中斷服務,能被高優先級中斷能被高優先級中斷請求所中斷。請求所中斷。 為了實現上述后兩條原則,為了實現上述后兩條原則,中斷系統內部設有中斷系統內部設有兩個用戶不能尋址的優先級狀態觸發器。兩個用戶不能尋址的優先級狀態觸發器。其中一個其中一個置置1 1,表示正在響應高優先級的中斷,它將阻斷后來,表示正在響應高優先級的中斷,它將阻斷后來所有的中斷請求;另一個置所有的中斷請求;另一個置1 1
18、,表示正在響應低優先,表示正在響應低優先級中斷,它將阻斷后來所有的低優先級中斷請求。級中斷,它將阻斷后來所有的低優先級中斷請求。同一級中的同一級中的5 5個中斷源的優先順序是個中斷源的優先順序是: /INT0/INT0中斷中斷 T0T0溢出中斷溢出中斷 /INT1/INT1中斷中斷 T1T1溢出中斷溢出中斷 串口中斷串口中斷 高高低低廠家固化順序廠家固化順序5.1.5 單片機中斷處理過程單片機中斷處理過程 1 1單片機的響應條件單片機的響應條件n 有中斷源發出中斷請求。有中斷源發出中斷請求。n 中斷總允許位中斷總允許位EA=1EA=1。n 中斷源對應的中斷允許位為中斷源對應的中斷允許位為1 1
19、。 在滿足以上條件的基礎上,若有下列任何一種情況在滿足以上條件的基礎上,若有下列任何一種情況存在,中斷響應都會受到阻斷。存在,中斷響應都會受到阻斷。n CPUCPU正在執行一個同級或高優先級的中斷服務程序。正在執行一個同級或高優先級的中斷服務程序。n 正在執行的指令尚未執行完。正在執行的指令尚未執行完。n 正在執行中斷返回指令正在執行中斷返回指令 RETIRETI或者對專用寄存器或者對專用寄存器IEIE、 IPIP進行讀進行讀/ /寫的指令。寫的指令。n將相應的優先級狀態觸發器置將相應的優先級狀態觸發器置1 1(以阻斷(以阻斷后來的同級或低級的中斷請求)。后來的同級或低級的中斷請求)。n執行一
20、條硬件執行一條硬件LCALLLCALL指令,指令,即把程序計數即把程序計數器器PCPC的內容壓入堆棧保存,再將相應的中的內容壓入堆棧保存,再將相應的中斷服務程序的入口地址送入斷服務程序的入口地址送入PCPC。n中斷處理中斷處理執行中斷服務程序。執行中斷服務程序。2.2.中斷響應過程中斷響應過程 中斷響應過程的前兩步是由中斷系統中斷響應過程的前兩步是由中斷系統內部自動完成的,而中斷服務程序則要由內部自動完成的,而中斷服務程序則要由用戶編寫程序來完成。用戶編寫程序來完成。 2 2單片機的響應過程單片機的響應過程 中斷處理就是執行中斷服務程序,從中斷處理就是執行中斷服務程序,從中斷入口地址中斷入口地
21、址開始開始執行,直到返回指令執行,直到返回指令(RETI)(RETI)為止。此過程一般包括三部分內為止。此過程一般包括三部分內容:容: (1 1)保護現場)保護現場 (2 2)處理中斷源的請求)處理中斷源的請求 (3 3)恢復現場)恢復現場入口地址入口地址用途用途0000H0000H復位操作后的程序入口復位操作后的程序入口0003H0003H外部中斷外部中斷0 0服務程序入口服務程序入口000BH000BH定時器定時器0 0中斷服務程序入口中斷服務程序入口0013H0013H外部中斷外部中斷1 1服務程序入口服務程序入口001BH001BH定時器定時器1 1中斷服務程序入口中斷服務程序入口00
22、23H0023H串行口中斷服務程序入口串行口中斷服務程序入口002BH002BH定時器定時器2 2中斷服務程序入口中斷服務程序入口 3. 3. 中斷返回中斷返回 中斷返回通過執行中斷返回指令中斷返回通過執行中斷返回指令RETIRETI來實現,來實現,具體功能是:具體功能是:n將相應中斷優先級狀態觸發器清將相應中斷優先級狀態觸發器清0 0,通知中斷系統,通知中斷系統,中斷服務程序已執行完畢。中斷服務程序已執行完畢。n將中斷響應時壓入堆棧保存的斷點地址從棧頂彈出將中斷響應時壓入堆棧保存的斷點地址從棧頂彈出送回送回PCPC,CPUCPU從原來中斷的地方繼續執行程序;從原來中斷的地方繼續執行程序; 注
23、意,不能用注意,不能用RETRET指令代替指令代替RETIRETI指令。在中斷服指令。在中斷服務程序中務程序中PUSHPUSH指令與指令與POPPOP指令必須成對使用,否則不指令必須成對使用,否則不能正確返回斷點能正確返回斷點 。響應過程:(假設已使某中斷請求標志置響應過程:(假設已使某中斷請求標志置1 1)(1 1)先使相應優先級狀態觸發器置)先使相應優先級狀態觸發器置1 1;(2 2)執行一個硬件子程序的調用,)執行一個硬件子程序的調用, 1 1)硬件清零相應中斷請求標志()硬件清零相應中斷請求標志(TITI、RIRI除外)除外) 2 2)將當前)將當前PCPC內容壓入堆棧內容壓入堆棧保護
24、斷點;保護斷點; 3 3)將中斷服務子程序入口地址送)將中斷服務子程序入口地址送PCPC轉移。轉移。 返回過程:(返回過程:(RETIRETI執行后)執行后)(1 1)使相應優先級狀態觸發器清)使相應優先級狀態觸發器清0 0。(2 2)從堆棧中彈出棧頂的兩個字節內容送)從堆棧中彈出棧頂的兩個字節內容送PCPC恢復斷恢復斷點。點。(3 3)CPUCPU接著中斷處繼續執行原程序。接著中斷處繼續執行原程序。 4 4中斷請求的撤除中斷請求的撤除 CPUCPU響應某中斷請求后,在中斷返回前,應該響應某中斷請求后,在中斷返回前,應該撤消該中斷請求,否則會引起另一次中斷。不同中斷撤消該中斷請求,否則會引起另
25、一次中斷。不同中斷源中斷請求的撤除方法是不一樣的。源中斷請求的撤除方法是不一樣的。n 定時器溢出中斷請求的撤除定時器溢出中斷請求的撤除硬件會自動清除中斷請求標志硬件會自動清除中斷請求標志TF0TF0或或TFlTFl。 n 串行口中斷的撤除串行口中斷的撤除硬件不能清除中斷請求標志硬件不能清除中斷請求標志TITI和和RIRI,要由軟件來清除相,要由軟件來清除相 應的標志。應的標志。n 外部中斷的撤除外部中斷的撤除 外部中斷為電平觸發方式時,外部中斷為電平觸發方式時,CPUCPU響應中斷后,硬件會自響應中斷后,硬件會自動清除中斷請求標志動清除中斷請求標志IE0IE0或或IElIEl,但由于加到或引腳
26、的外部中斷,但由于加到或引腳的外部中斷請求信號并未撤除,中斷請求標志請求信號并未撤除,中斷請求標志IE0IE0或或IElIEl會再次被置會再次被置1 1,所,所以在以在CPUCPU響應中斷后應立即撤除或引腳上的低電平。響應中斷后應立即撤除或引腳上的低電平。 5.1.6 5.1.6 中斷系統的應用中斷系統的應用中斷系統示意圖中斷系統示意圖 1 1中斷初始化中斷初始化n 設置堆棧指針設置堆棧指針SPSPn 定義中斷優先級定義中斷優先級n 定義外中斷觸發方式定義外中斷觸發方式n 開放中斷開放中斷n 安排好等待中斷或中斷發生前主程序安排好等待中斷或中斷發生前主程序 應完成的操作內容應完成的操作內容 5
27、.1.6 5.1.6 中斷系統的應用中斷系統的應用2 2現場保護和現場恢復現場保護和現場恢復 將中斷時刻單片機中主要寄存器的數據或狀態送入堆棧將中斷時刻單片機中主要寄存器的數據或狀態送入堆棧中保存起來,這就是中保存起來,這就是現場保護現場保護。中斷服務結束后,在返回主。中斷服務結束后,在返回主程序前,則需把保存的現場內容從堆棧中彈出,以恢復那些程序前,則需把保存的現場內容從堆棧中彈出,以恢復那些寄存器的原有內容,這就是寄存器的原有內容,這就是現場恢復現場恢復。3 3中斷服務主程序中斷服務主程序n 在中斷服務入口地址設置一條跳轉指令在中斷服務入口地址設置一條跳轉指令n 轉移到中斷服務程序的實際入
28、口處;轉移到中斷服務程序的實際入口處; n 根據需要保護現場;根據需要保護現場;n 中斷源請求中斷服務要求的操作;中斷源請求中斷服務要求的操作; n 恢復現場。與保護現場相對應,注意先進恢復現場。與保護現場相對應,注意先進 后出、后進先出操作原則;后出、后進先出操作原則; n 中斷返回,最后一條指令必須是中斷返回,最后一條指令必須是RETIRETI。 例例5-15-1 出租車計價器計程方法是車輪每運轉出租車計價器計程方法是車輪每運轉一圈產生一圈產生2 2個負脈沖,從外中斷(個負脈沖,從外中斷(P3.2P3.2)引)引腳輸入,行駛里程為輪胎周長腳輸入,行駛里程為輪胎周長運轉圈數,運轉圈數,設輪胎
29、周長為設輪胎周長為2m2m,試實時計算出租車行駛,試實時計算出租車行駛里程(單位米),數據由高字節到低字節依里程(單位米),數據由高字節到低字節依次存放于次存放于32H32H、31H31H、30H30H。 分析:分析:由由32H32H、31H31H、30H30H三個字節存放計數結果三個字節存放計數結果,最大數值為,最大數值為2 22424-1=16777215-1=16777215次,足以滿足出租車次,足以滿足出租車計程的使用。程序在初始化時,應先將這些存放數計程的使用。程序在初始化時,應先將這些存放數據的內存單元清零。另外,由于題目并未明確說明據的內存單元清零。另外,由于題目并未明確說明負脈
30、沖的寬度,并且硬件上也沒有設計中斷請求撤負脈沖的寬度,并且硬件上也沒有設計中斷請求撤除電路,所以除電路,所以應該將外部中斷的觸發方式設置為下應該將外部中斷的觸發方式設置為下降沿脈沖觸發方式降沿脈沖觸發方式。 里程數決定了乘客的付費,必須準確,所以應里程數決定了乘客的付費,必須準確,所以應將中斷優先級設為最高。中斷服務程序主要任務是將中斷優先級設為最高。中斷服務程序主要任務是完成對完成對32H32H、31H31H、30H30H三字節的加三字節的加1 1計數任務。主程計數任務。主程序應完成中斷初始化任務,如設置堆棧、設定中斷序應完成中斷初始化任務,如設置堆棧、設定中斷優先級、開中斷、對內存單元清零
31、等。優先級、開中斷、對內存單元清零等。經過以上分析,讀者可以劃出程序設計的流程圖,匯編語經過以上分析,讀者可以劃出程序設計的流程圖,匯編語言程序如下:言程序如下: ORGORG 0000H 0000H ; ;復位地址復位地址 LJMPLJMP START START ; ;轉初始化轉初始化 ORGORG 0003H 0003H ; ;中斷入口地址中斷入口地址 LJMPLJMP EINT0 ; EINT0 ;轉中斷服務程序轉中斷服務程序 ORGORG 0030H 0030H ; ;定義主程序首地址定義主程序首地址START: MOV SP,#60H ;START: MOV SP,#60H ;置堆
32、棧指針置堆棧指針 SETB IT0SETB IT0 ; ;置邊沿觸發方式置邊沿觸發方式 MOV IP,#01H ;MOV IP,#01H ;置高優先級置高優先級 MOV 30H,#0 ;MOV 30H,#0 ;里程計數器清里程計數器清0 0 MOV 31H,#0 MOV 31H,#0 ; ; MOV 32H,#0 MOV 32H,#0 ; ; MOV IE,#81H ; MOV IE,#81H ;開中斷開中斷 LJMP $LJMP $ ; ;等待中斷等待中斷 ORG 0200H ;ORG 0200H ;中斷服務子程序首地址中斷服務子程序首地址EINT0:PUSH Acc ;EINT0:PUSH
33、 Acc ;保護現場保護現場 PUSH PSW ;PUSH PSW ; MOV A,30H ; MOV A,30H ;讀低讀低8 8位計數器位計數器 ADD A,#1 ;ADD A,#1 ;低低8 8位計數器加位計數器加1m1m MOV 30H,A ; MOV 30H,A ;低低8 8位保存在位保存在30H30H單元單元 CLR ACLR A ; ; ADDC A,31H ; ADDC A,31H ;中中8 8位計數器加進位位計數器加進位 MOV 31H,A ;MOV 31H,A ;中中8 8位計數保存在位計數保存在31H31H單元單元 CLR ACLR A ; ; ADDC A,32H ;
34、ADDC A,32H ;高高8 8位計數器加進位位計數器加進位 MOV 32H,A ;MOV 32H,A ;高高8 8位計數保存在位計數保存在32H32H單元單元 POP PSWPOP PSW ; ;恢復現場恢復現場 POP Acc ;POP Acc ; RETI RETI ; ;中斷返回中斷返回 ENDEND例例5-25-2 如圖如圖5-75-7所示按鍵電路對應于教學實驗板所示按鍵電路對應于教學實驗板上的脈沖產生電路,每按一次按鍵會在單片機引腳上的脈沖產生電路,每按一次按鍵會在單片機引腳產生一個脈沖,使用產生一個脈沖,使用C51C51編寫程序對按鍵次數進行編寫程序對按鍵次數進行計數。計數。脈
35、沖產生電路脈沖產生電路 主要內容主要內容5.1 5.1 中斷系統中斷系統 5.1.1 5.1.1 中斷的基本概念中斷的基本概念5.1.2 5.1.2 中斷源及中斷請求中斷源及中斷請求5.1.3 5.1.3 中斷系統結構中斷系統結構5.1.4 5.1.4 中斷控制中斷控制5.1.5 5.1.5 中斷處理過程中斷處理過程5.1.6 5.1.6 中斷系統的應用中斷系統的應用5.2 5.2 定時定時/ /計數器接口計數器接口5.2.1 5.2.1 定時定時/ /計數器的主要特性計數器的主要特性5.2.2 5.2.2 定時定時/ /計數器計數器T0T0、T1T1的結構的結構5.2.3 5.2.3 定時定
36、時/ /計數器的控制寄存器計數器的控制寄存器5.2.4 5.2.4 定時定時/ /計數器的工作方式計數器的工作方式5.2.5 5.2.5 定時定時/ /計數器的初始化編程及應用計數器的初始化編程及應用5.3 5.3 中斷及定時系統綜合應用中斷及定時系統綜合應用5.2 5.2 定時定時/ /計數器計數器 在為學習本節內容前,我們常用軟件定在為學習本節內容前,我們常用軟件定時,軟件定時不占用硬件資源,但占用了時,軟件定時不占用硬件資源,但占用了CPUCPU時間,降低了時間,降低了CPUCPU的利用率。的利用率。 實現定時功能,比較方便的辦法是利用實現定時功能,比較方便的辦法是利用單片機內部的定時單
37、片機內部的定時/ /計數器。計數器。 定時定時/ /計數器是計數器是5151系列單片機的重要功能系列單片機的重要功能模塊之一。在檢測、控制及智能儀器應用中,模塊之一。在檢測、控制及智能儀器應用中,常用定時器作時鐘,以實現定時檢測、定時常用定時器作時鐘,以實現定時檢測、定時控制。還可用定時器產生寬度預先設定的脈控制。還可用定時器產生寬度預先設定的脈沖信號,以驅動步進電機一類的電器機械。沖信號,以驅動步進電機一類的電器機械。計數器主要用于外部事件的計數計數器主要用于外部事件的計數。5.2.1 5.2.1 定時定時/ /計數器的主要特性計數器的主要特性n 5151系列中系列中5151子系列有兩個子系
38、列有兩個1616位的可編程定時位的可編程定時/ / 計數器,計數器,5252子系列有三個。子系列有三個。n 每個定時每個定時/ /計數器既可以對系統時鐘計數實現定計數器既可以對系統時鐘計數實現定時,也可以對外部信號計數實現計數功能,通過時,也可以對外部信號計數實現計數功能,通過編程設定初始值來實現。編程設定初始值來實現。n 每個定時每個定時/ /計數器都有多種工作方式通過編程可計數器都有多種工作方式通過編程可設定工作于某種方式。設定工作于某種方式。n 每一個定時每一個定時/ /計數器定時計數時間到時產生溢出計數器定時計數時間到時產生溢出,使相應的溢出位置位,溢出可通過查詢或中斷,使相應的溢出位
39、置位,溢出可通過查詢或中斷方式處理。方式處理。5.2.2 5.2.2 定時定時/ /計數器的結構計數器的結構 定時定時/ /計數器的實質是加計數器的實質是加1 1計數器(計數器(1616位),由高位),由高8 8位和位和低低8 8位兩個寄存器組成。位兩個寄存器組成。TMODTMOD是定時是定時/ /計數器的工作方式寄計數器的工作方式寄存器,確定工作方式和功能;存器,確定工作方式和功能;TCONTCON是控制寄存器,控制是控制寄存器,控制T0T0、T1T1的啟動和停止及設置溢出標志。的啟動和停止及設置溢出標志。 5.2.3 5.2.3 定時定時/ /計數器的控制寄存器計數器的控制寄存器 80C5
40、1 80C51單片機定時單片機定時/ /計數器的工作由兩個特殊功計數器的工作由兩個特殊功能寄存器控制。能寄存器控制。TMODTMOD用于設置其工作方式;用于設置其工作方式;TCONTCON用用于控制其啟動和中斷申請。于控制其啟動和中斷申請。1 1、工作方式寄存器、工作方式寄存器TMODTMOD 工作方式寄存器工作方式寄存器TMODTMOD用于設置定時用于設置定時/ /計數器的計數器的工作方式,低四位用于工作方式,低四位用于T0T0,高四位用于,高四位用于T1T1。其格式。其格式如下:如下:TMOD M0 M1C / GATE M0 M1C / GATETTT1T0 GATE GATE 門控位。
41、門控位。 GATE = 0 GATE = 0 啟動不受啟動不受 /INT0/INT0或或 /INT1/INT1的控制;的控制; GATE = 1 GATE = 1 啟動受啟動受 /INT0 /INT0 或或 /INT1 /INT1 的控制。的控制。 C/TC/T 外部計數器外部計數器 / / 定時器方式選擇位定時器方式選擇位 C/T = 0 C/T = 0 定時方式;定時方式; C /T = 1 C /T = 1 計數方式。計數方式。 M1M0 M1M0 工作模式選擇位(編程可決定四種工工作模式選擇位(編程可決定四種工作模式)作模式)。 定時定時 / / 計數器的四種工作模式計數器的四種工作模
42、式 M1 M0 M1 M0 模式模式 說明說明 0 0 0 130 0 0 13位定時位定時/ /計數器計數器 高八位高八位THTH(7 07 0)+ + 低五位低五位TLTL( 4 04 0) 0 1 1 160 1 1 16位定時位定時/ /計數器計數器 THTH(7 07 0)+ TL+ TL(7 07 0) 1 0 2 81 0 2 8位計數初值自動重裝的定時位計數初值自動重裝的定時/ /計數器計數器 TLTL(7 07 0) THTH(7 07 0) 1 1 3 T01 1 3 T0運行為兩個獨立的運行為兩個獨立的8 8位定時位定時/ /計數計數, ,而而T1T1停止工作。停止工作。
43、 2 2、定時、定時 / / 計數器控制寄存器計數器控制寄存器TCON TCON TCONTCONTF1TF1TR1TR1TF0TF0TR0TR0IE1IE1IT1IT1IE0IE0IT0IT0 能否啟動定時能否啟動定時 / / 計數器工作與計數器工作與GATEGATE有關,分兩種情況:有關,分兩種情況: GATE = 0 GATE = 0 時,若時,若TRi = 1TRi = 1,開啟,開啟TiTi計數工作;計數工作;(i = 0(i = 0或或1 1) 若若TRi = 0TRi = 0,停止,停止TiTi計數。計數。 GATE = 1 GATE = 1 時,若時,若TRi = 1 TRi
44、= 1 且且/INTi = 1/INTi = 1時開啟時開啟TiTi計數;計數; 若若TRi = 1 TRi = 1 且且/INTi = 0/INTi = 0時不能開啟時不能開啟TiTi計數。計數。 若若TRi = 0TRi = 0, 停止停止TiTi計數。計數。 TR0 TR0 定時定時 / / 計數器計數器0 0運行控制位。運行控制位。 軟件置位,軟件復位。軟件置位,軟件復位。 TR1 TR1 定時定時 / / 計數器計數器1 1運行控制位。(用法與運行控制位。(用法與TR1TR1類似)類似) C/T = 0 C/T = 0 定時;定時; C/T = 1 C/T = 1 對對外計數。外計數
45、。定時:機器周期定時:機器周期Tcy = 12 / fosc Tcy = 12 / fosc 波形等間隔,次數已定,時間確定波形等間隔,次數已定,時間確定即對機器周期進行計數。即對機器周期進行計數。 左圖定時時間為左圖定時時間為 N N* *TcyTcyN N個機器周期個機器周期 Tcy計數:脈沖不等間隔。計數:脈沖不等間隔。 每個下降沿計數一次每個下降沿計數一次 確認一次負跳變需兩個機器周期,確認一次負跳變需兩個機器周期, 所以,計數頻率最高為所以,計數頻率最高為fosc / 24fosc / 24。 5.2.4 5.2.4 定時定時/ /計數器的工作方式計數器的工作方式1 1、方式、方式0
46、 0 方式方式0 0為為1313位計數位計數,由,由TL0TL0的低的低5 5位(高位(高3 3位未用)和位未用)和TH0TH0的的8 8位組成。位組成。TL0TL0的低的低5 5位溢出時向位溢出時向TH0TH0進位,進位,TH0TH0溢出時,置溢出時,置位位TCONTCON中的中的TF0TF0標志,向標志,向CPUCPU發出中斷請求。發出中斷請求。n方式方式0 0 下下T1T1、T0T0的等效邏輯結構的等效邏輯結構 TLi(5位)THi(8位)TFi中斷控制BAC/T=0振蕩器1/12&1TiTRiGATEINTiC/T=104 07計數寄存器計數寄存器TLi TLi 低低5 5位位 + T
47、Hi8+ THi8位位n計數初值計算的公式為:計數初值計算的公式為:定時器模式時有定時器模式時有:N:Nt/ Tcy t/ Tcy 定時器的初值還可以采用計數個數直接取補法獲得定時器的初值還可以采用計數個數直接取補法獲得。計數模式時,計數脈沖是計數模式時,計數脈沖是T0T0引腳上的外部脈沖。引腳上的外部脈沖。13X=2 -Nn門控位門控位GATEGATE的作用:的作用:當當GATE=0GATE=0時,經反相后使或門輸出為時,經反相后使或門輸出為1 1,此時僅由,此時僅由TR0TR0控制控制與門的開啟,與門輸出與門的開啟,與門輸出1 1時,控制開關接通,計數開始;時,控制開關接通,計數開始;當當
48、GATE=1GATE=1時時,由外中斷引腳信號控制或門的輸出,此時控制,由外中斷引腳信號控制或門的輸出,此時控制與門的開啟由外中斷引腳信號和與門的開啟由外中斷引腳信號和TR0TR0共同控制。共同控制。當當TR0=1TR0=1時,時,外中斷引腳信號引腳的外中斷引腳信號引腳的高電平啟動計數高電平啟動計數,外中斷引腳信號,外中斷引腳信號引腳的引腳的低電平停止計數低電平停止計數。這種方式常用來測量外中斷引腳這種方式常用來測量外中斷引腳上正脈沖的寬度。上正脈沖的寬度。 16X=2 -N2 2、方式、方式1 1 方式方式1 1的計數位數是的計數位數是1616位,由位,由TL0TL0作為低作為低8 8位、位
49、、TH0TH0作作為高為高8 8位,組成了位,組成了1616位加位加1 1計數器計數器 。計數個數與計數初值的關系為:計數個數與計數初值的關系為: 與模式與模式0 0相似。相似。與模式與模式0 0的區別:計數位數不同。的區別:計數位數不同。TFi中斷TLi(8位)THi(8位)07 07控制BAC/T=0振蕩器1/12&1TiTRiGATEINTiC/T=1n方式方式1 1 下下T1T1、T0T0的等效邏輯結構的等效邏輯結構THiTHi(高(高8 8位)位)+ TLi+ TLi(低(低8 8位)位) 8X=2 -N3 3、方式、方式2 2 方式方式2 2為自動重裝初值的為自動重裝初值的8 8位
50、計數方式。位計數方式。 工作方式工作方式2 2特別適合于用作較精確的脈沖信號發生器特別適合于用作較精確的脈沖信號發生器。 計數個數與計數初值的關系為計數個數與計數初值的關系為: 與模式與模式0 0、1 1的區別:的區別:1 1)計數位數不同;)計數位數不同; 2 2)初值自動重裝。)初值自動重裝。 TFi中斷TLi(8位)THi(8位)控制BAC/T=0振蕩器1/12&1TiTRiGATEINTiC/T=1n方式方式2 2 下下T1T1、T0T0的等效邏輯結構的等效邏輯結構 4 4、方式、方式3 3 方式方式3 3只適用于定時只適用于定時/ /計數器計數器T0T0,定時器,定時器T1T1處于方
51、式處于方式3 3時相當時相當于于TR1=0TR1=0,停止計數。,停止計數。 工作方式工作方式3 3將將T0T0分成為兩個獨立的分成為兩個獨立的8 8位計數器位計數器TL0TL0和和TH0TH0。方式方式3 3適用于要求增加一個額外的適用于要求增加一個額外的8 8位定時器的應用場合。位定時器的應用場合。 T0T0定時定時/ /計數,而計數,而T1T1停止計數,但可作波特率發生器。停止計數,但可作波特率發生器。T0T0分成兩獨立定時分成兩獨立定時/ /計數器計數器TL0TL0和和TH0TH0,。,。TL0TL0使用使用C/TC/T、GATEGATE、TR0TR0、/INT0/INT0、TF0TF
52、0可作定時可作定時/ /計數。計數。TH0TH0使用使用TR1TR1、TF1TF1控制。控制。 因此,只能用于定時。因此,只能用于定時。TF0TF0中斷控制BAC/T=0振蕩器振蕩器1/121/12&1T0T0TR0TR0GATEGATEINT0INT0C/T=1TL0TL0(8(8位位) )蕩器振振1/121/12TH0TH0TF1中斷(a a)TL0TL0可作可作8 8位定時位定時/ /計數器計數器(b b)TH0TH0只能作只能作8 8位定時器位定時器TR1TR1n方式方式3 3 下下T1T1、T0T0的等效邏輯結構的等效邏輯結構方式方式3 3時,時,T1T1可設為模式可設為模式0 0、
53、1 1、2 2的定時的定時/ /計數,用在任何不需要計數,用在任何不需要中斷控制的場合,典型應用是用作串行通信的波特率發生器。中斷控制的場合,典型應用是用作串行通信的波特率發生器。 振蕩器振蕩器1/121/12TL1TL1(5(5位位) )TH1TH1(8(8位位)串行口C/T=0C/T=0C/T=1C/T=1T1(P3.5)振蕩器振蕩器1/121/12TL1(8位)TH1(8位)串行口C/T=0C/T=1T1(P3.5)TLi(8位)THi(8位)振蕩器振蕩器1/121/12C/T=0C/T=1T1(P3.5)串行口(a) T0(a) T0模式模式3 3時時T1T1模式模式0 0(b) T0
54、(b) T0模式模式3 3時時T1T1模式模式1 1(c) T0(c) T0模式模式3 3時時T1T1模式模式2 25.2.5 5.2.5 定時定時/ /計數器的初始化編程及應用計數器的初始化編程及應用1 1、MCS-51MCS-51單片機定時單片機定時/ /計數器初始化編程步驟計數器初始化編程步驟n 根據要求選擇方式,確定方式控制字,寫入方式控制根據要求選擇方式,確定方式控制字,寫入方式控制 寄存器寄存器TMODTMOD。n 根據要求計算定時根據要求計算定時/ /計數器的計數值,再由計數值求得計數器的計數值,再由計數值求得 初值,寫入初值寄存器。初值,寫入初值寄存器。n 根據需要開放定時根據
55、需要開放定時/ /計數器中斷(后面須編寫中斷服務計數器中斷(后面須編寫中斷服務 程序)。程序)。n 設置定時設置定時/ /計數器控制寄存器計數器控制寄存器TCONTCON的值,啟動定時的值,啟動定時/ /計計 數器開始工作。數器開始工作。n 等待定時等待定時/ /計數的時間到,到則執行中斷服務程序;如計數的時間到,到則執行中斷服務程序;如 用查詢處理,則編寫查詢程序判斷溢出標志,溢出標用查詢處理,則編寫查詢程序判斷溢出標志,溢出標 志等于志等于1 1,則進行相應處理。,則進行相應處理。 2 2、編程前需確定的參數:、編程前需確定的參數:(1 1)定時)定時/ /計數器計數器 T0T0、T1T1
56、選擇其一,選擇其一,(2 2)工作方式)工作方式 C /TC /T及及GATAGATA,(3 3)計數初值)計數初值 加加1 1計數、計數、1616位。位。 計數用計數用 :初值:初值X=MX=MN N;M=2M=21313=8192=8192(模式(模式0 0) M=2M=21616=65536=65536(模式(模式1 1) M=2M=28 8=256 =256 (模式(模式2 2、模式式、模式式3 3)定時用定時用: :初值初值X=MN =M t/TcyX=MN =M t/Tcy(t t為所要求的為所要求的定時時間,定時時間,TcyTcy為機器周期)為機器周期) (4 4)工作模式)工作
57、模式 M1 M1、M0 M0 5.2.5 5.2.5 定時定時/ /計數器的初始化編程及應用計數器的初始化編程及應用()()計算計數初值計算計數初值 欲產生欲產生500s500s的等寬正方波脈沖,只的等寬正方波脈沖,只需在需在P1.0P1.0端以端以250us250us為周期交替輸出高低電平即可實現,為此為周期交替輸出高低電平即可實現,為此定時時間應為定時時間應為250s250s。使用。使用12MHz12MHz晶振,則一個機器周期為晶振,則一個機器周期為1s1s。方式。方式0 0為為1313位計數結構。設待求的計數初值為位計數結構。設待求的計數初值為X X,則,則N=2N=21313一一X X
58、250s/ 1s=250250s/ 1s=250 求解得:求解得:X=7942X=7942。二進制數表示為。二進制數表示為1111100000110B1111100000110B。十六。十六進制表示,高進制表示,高8 8位為位為0F8H0F8H,低,低5 5位為位為06H06H。其中高。其中高8 8位放入位放入TH1TH1,即即TH1=OF8HTH1=OF8H;低;低5 5位放入位放入TL1TL1,即,即TL1TL106H06H。 例例5-3 5-3 設單片機晶振頻率為設單片機晶振頻率為12MHz,12MHz,使用定時器使用定時器1 1以以方式方式0 0產生周期為產生周期為500s500s的等
59、寬正方波連續脈沖,的等寬正方波連續脈沖,并由并由P1.0P1.0輸出。以查詢方式完成。輸出。以查詢方式完成。 1 1、 方式方式0 0的應用的應用3 3、定時、定時/ /計數器應用舉例計數器應用舉例 5.2.5 5.2.5 定時定時/ /計數器的初始化編程及應用計數器的初始化編程及應用()()TMODTMOD寄存器初始化寄存器初始化 為把定時器為把定時器計數器計數器1 1設定為方式設定為方式0 0,則,則M1M0=00M1M0=00;為;為實現定時功能,應使實現定時功能,應使C C=0=0。定時器。定時器計數器計數器0 0不用,有關位設定為不用,有關位設定為0 0。因此。因此TMODTMOD寄
60、存器應初始化為寄存器應初始化為00H00H。()由定時器控制寄存器()由定時器控制寄存器TCONTCON中的中的TR1TR1位控制定時的啟動和停止。位控制定時的啟動和停止。 TR1=1TR1=1啟動,啟動,TR1=0TR1=0停止。停止。()程序設計()程序設計MOV MOV TMOD,TMOD,#00H#00H ; ;設置設置T1T1為工作方式為工作方式0 0MOVMOVTH1,TH1,#0F8H#0F8H ; ;設置計數初值設置計數初值MOVMOVTL1,TL1,#06H#06HMOVMOVIE,IE,#00H#00H ; ;禁止中斷禁止中斷 SETBSETBTR1TR1 ; ;啟動定時期
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 絹紡與絲織品的多元化發展考核試卷
- 太陽能電池板的制造工藝考核試卷
- 化工設備智能制造技術考核試卷
- 家用通風設備品質保障措施與用戶體驗優化考核試卷
- 絹紡和絲織的產業政策研究考核試卷
- 漁業資源利用的生態效率分析考核試卷
- 山西省長治市重點中學2024-2025學年高三第一次模擬考試-生物試題含解析
- 江西農業工程職業學院《氫能與新型能源動力系統》2023-2024學年第二學期期末試卷
- 山西機電職業技術學院《生物醫學信息學》2023-2024學年第二學期期末試卷
- 許昌學院《體育鍛煉指導(三)》2023-2024學年第二學期期末試卷
- 河南省許昌地區2024-2025學年七年級下學期期中素質評估道德與法治試卷(含答案)
- 小學生勞動課件
- (二模)滄州市2025屆高三總復習質量監測 生物試卷(含答案詳解)
- 內部審計流程試題及答案
- 2025年北師大版七年級數學下冊計算題專項訓練專題04整式的混合運算與化簡求值(原卷版+解析)
- 2025-2030中國燃料乙醇行業現狀調查及投資前景策略分析研究報告
- 2025浙江1月卷讀后續寫及滿分語料10類40句 (真假小偷) 原卷版
- 餐飲合伙協議合同范本
- 第二單元 人民當家作主(B卷 能力提升)2024-2025學年高中政治統編統編版必修三單元測試AB卷(含解析)
- 骨科關節鏡手術器械行業深度調研及發展戰略咨詢報告
- GB/T 13511.1-2025配裝眼鏡第1部分:單焦和多焦定配眼鏡
評論
0/150
提交評論