中斷定時器計數(shù)器100401_第1頁
中斷定時器計數(shù)器100401_第2頁
中斷定時器計數(shù)器100401_第3頁
中斷定時器計數(shù)器100401_第4頁
中斷定時器計數(shù)器100401_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、3.2 MCS-51單片機的中斷系統(tǒng) 計算機與外界的聯(lián)系是通過外部設備(也稱為外設、輸入/輸出設備或I/O設備)與外界聯(lián)系的。計算機與外設之間不是直接相連的,而是通過不同的接口電路來達到彼此間的信息傳送的目的。計算機與外設之間交換信息的方式: (1)無條件傳送方式:外設對計算機來說總是準備好的。 (2)查詢傳送方式:傳送前計算機先查詢外設的狀態(tài),若已經(jīng)準備好就傳送,否則就繼續(xù)查詢/等待。 (3)中斷傳送方式:外設通過申請中斷的方式與計算機進行數(shù)據(jù)傳送。 (4)直接存儲器存取方式(DMA):傳送數(shù)據(jù)的雙方直接通過總線傳送數(shù)據(jù), 不經(jīng)CPU中轉。13.2.1 中斷的基本概念 1中斷的定義 所謂“中

2、斷”,是指CPU執(zhí)行正常程序時,系統(tǒng)中出現(xiàn)特殊請求,CPU暫時中止當前的程序,轉去處理更緊急的事件(執(zhí)行中斷服務程序),處理完畢(中斷服務完成)后,CPU自動返回原程序的過程。 作用:采用中斷技術可以提高CPU效率、解決速度矛盾、實現(xiàn)并行工作、分時操作、實時處理、故障處理、應付突發(fā)事件,可使多項任務共享一個資源(CPU)。 中斷與子程序的最主要區(qū)別:子程序是預先安排好的,中斷是隨機發(fā)生的。 中斷涉及的幾個環(huán)節(jié):中斷源、 中斷申請、開放中斷、保護現(xiàn)場、中斷服務、恢復現(xiàn)場、中斷返回。2 2. 中斷源 中斷源是指引起中斷的設備或事件,或發(fā)出中斷請求的源頭。 3. 中斷的分類 中斷按功能通??煞譃榭善?/p>

3、蔽中斷、非屏蔽中斷和軟件中斷三類。 可屏蔽中斷是指CPU可以通過指令來允許或屏蔽中斷的請求。 非屏蔽中斷是指CPU對中斷請求是不可屏蔽的,一旦出現(xiàn),CPU必須響應。 軟件中斷則是指通過相應的中斷指令使CPU響應中斷。 4. 中斷優(yōu)先權與中斷嵌套 中斷優(yōu)先級(也稱為中斷優(yōu)先權):給每個中斷源指定中斷響應的優(yōu)先級別, CPU按中斷源的優(yōu)先級高低順序響應各中斷源發(fā)出的中斷請求。 中斷嵌套:在某一瞬間,CPU因響應某一中斷源的中斷請求而正在執(zhí)行它的中斷服務程序時,若又有一級別高的中斷源向CPU發(fā)出中斷請求,且CPU的中斷是開放的,CPU可以把正在執(zhí)行的中斷服務程序暫停下來,轉而響應和處理優(yōu)先權更高的中

4、斷源的中斷請求,等處理完后再轉回來,繼續(xù)執(zhí)行原來的中斷服務程序,這就是中斷嵌套。 中斷嵌套的過程和子程序嵌套過程類似,子程序的返回指令是RET,而中斷服務程序的返回指令是RETI。35. 中斷響應及處理過程 保護斷點 尋找中斷源 中斷處理 中斷返回保護斷點和尋找中斷源都是由硬件自動完成的,用戶不用考慮。6. 中斷系統(tǒng)的功能中斷系統(tǒng):能夠實現(xiàn)中斷功能的硬件電路和軟件程序。中斷系統(tǒng)的功能:能夠實現(xiàn)中斷優(yōu)先權排隊、中斷嵌套、自動響應中斷和中斷返回等功能。 MCS-51單片機的大部分中斷電路都是集成在芯片內(nèi)部的,只有外部中斷請求信號產(chǎn)生電路才分散在各中斷源電路和接口電路中。43.2.2 MCS-51的

5、中斷系統(tǒng) MCS-51提供了5個中斷源,2個中斷優(yōu)先級控制,可實現(xiàn)2個中斷服務嵌套??赏ㄟ^程序設置中斷的允許或屏蔽,設置中斷的優(yōu)先級。1MCS-51的中斷源 8051允許5個中斷源:(1)外部中斷源(中斷標志為IE0和IE1 ) 由 ( P3.2 )端口線引入,低電平或下降沿引起。 由 ( P3.3 )端口線引入,低電平或下降沿引起。(2)內(nèi)部中斷源 (中斷標志為TF0、TF1和TI/RI ) T0:定時/計數(shù)器0中斷,由T0回零溢出引起。 T1:定時/計數(shù)器1中斷,由T1回零溢出引起。 TI/RI:串行I/O中斷,完成一幀字符發(fā)送/接收引起。58051的中斷結構如下圖所示。 6CPU識別中斷

6、申請的依據(jù): CPU在每個機器周期的S5P2期間,會自動查詢各個中斷申請標志位,若查到某標志位被置位,將啟動中斷機制。2中斷控制 MCS-51單片機設置了4個專用寄存器用于中斷控制,用戶通過設置其狀態(tài)來管理中斷系統(tǒng)。(1)定時器控制寄存器TCON (88H) TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TF0/TF1:定時器溢出中斷申請標志位(由硬件自動置位)。 =0:定時器未溢出; =1:定時器溢出(由全“1”變成全“0”)時由硬件自動置位,申請中斷,中斷被CPU響應后由硬件自動清零。7TR0/TR1:定時器運行啟??刂莆唬捎捎脩敉ㄟ^軟件設置 )。 =0:定時器停止運行;

7、 =1:定時器啟動運行。IE0/IE1:外部中斷申請標志位(由硬件自動置位 ,中斷響應后轉向中斷服務程序時,由硬件自動清0 )。 =0:沒有外部中斷申請; =1:有外部中斷申請。IT0/IT1:外部中斷請求的觸發(fā)方式控制位(可由用戶通過軟件設置 )。 =0:在INT0/INT1端申請中斷的信號低電平有效; =1:在INT0/INT1端申請中斷的信號負跳變有效。8(2)串行口控制寄存器SCON (98H) TI/RI:串行口發(fā)送/接收中斷申請標志位(由硬件自動置位,必須由用戶在中斷服務程序中用軟件清0)。 =0:沒有串行口發(fā)送/接收中斷申請; =1:有串行口發(fā)送/接收中斷申請。 SCON的高6位

8、用于串行口工作方式設置和串行口發(fā)送/接收控制。 (3)中斷允許控制寄存器IE (0A8H) SM0 SM1 SM2 REN TB8 RB8 TI RI EA ES ET1 EX1 ET0 EX09(3)中斷允許控制寄存器IE (0A8H) EA ES ET1 EX1 ET0 EX0EX0/EX1/ET1/ET0/ES 位:分別是 / ,T0/T1,串行口的中斷允許控制位。 =0 :禁止中斷; =1 :允許中斷。EA:總的中斷允許控制位(總開關): =0 :禁止全部中斷; =1 :允許中斷。10(4)中斷優(yōu)先級控制寄存器IP (0B8H) 8051有兩個中斷優(yōu)先級,即高優(yōu)先級和低優(yōu)先級,每個中斷

9、源都可設置為高或低中斷優(yōu)先級,以便CPU對所有的中斷實現(xiàn)兩級中斷嵌套。 8051內(nèi)部中斷系統(tǒng)對各中斷源的中斷優(yōu)先級有一個統(tǒng)一的規(guī)定,稱為自然優(yōu)先級(也稱為系統(tǒng)缺省優(yōu)先級)。如下表所示。 8051單片機的中斷優(yōu)先級采用了自然優(yōu)先級和人工設置高、低優(yōu)先級的策略,中斷處于同一級別時,就由自然優(yōu)先級確定。開機時,每個中斷都處于低優(yōu)先級,中斷優(yōu)先級可以通過程序來設定,由中斷優(yōu)先級寄存器IP來統(tǒng)一管理。 11(4)中斷優(yōu)先級控制寄存器IP (0B8H) PS PT1 PX1 PT0 PX0PX0/PX1: / 優(yōu)先級控制位: =0 :屬低優(yōu)先級; =1 :屬高優(yōu)先級。PT0/PT1:T0/T1中斷優(yōu)先級控

10、制位: =0 :屬低優(yōu)先級; =1 :屬高優(yōu)先級。PS1:串行口中斷優(yōu)先級控制位: =0 :屬低優(yōu)先級; =1 :屬高優(yōu)先級。12中斷優(yōu)先級處理原則: 對同時發(fā)生多個中斷申請時: 不同優(yōu)先級的中斷同時申請:先高后低 相同優(yōu)先級的中斷同時申請:按序執(zhí)行 正處理低優(yōu)先級中斷又接到高級別中斷:高打斷低 正處理高優(yōu)先級中斷又接到低級別中斷:高不理低133中斷響應 (1)中斷響應的條件 MCS-51單片機工作時,在每個機器周期中都會去查詢各個中斷標志,如果有中斷請求。必須滿足下列條件單片機才能響應中斷。 相應的中斷是開放的; 沒有同級的中斷或更高級別的中斷正在處理; 正在執(zhí)行的指令必須執(zhí)行完最后 1個機

11、器周期; 若正在執(zhí)行RETI,或正在訪問IE或IP寄存器,則必須執(zhí)行完當前指令的下一條指令。后方能響應中斷。14(2)中斷響應的過程 中斷過程包括中斷請求、中斷響應、中斷服務、中斷返回四個階段。 中斷請求:中斷源將相應請求中斷的標志位置 “1”,表示發(fā)出請求,并由CPU 查詢。 中斷響應:在中斷允許條件下相應中斷。斷點入棧撤除中斷標志關閉低同級中斷允許中斷入口地址送PC。 這些工作都是由硬件自動完成的。 中斷服務:根據(jù)入口地址轉中斷服務程序,包含保護現(xiàn)場、執(zhí)行中斷主體、恢復現(xiàn)場。 中斷返回:執(zhí)行中斷返回RETI指令斷點出棧開放中斷允許返回原程序。15中斷服務程序入口地址: 中斷響應的主要內(nèi)容就

12、是由硬件自動生成一條長調(diào)用指令(LCALL addr16),CPU執(zhí)行這條長調(diào)用指令便響應中斷,轉入相應的中斷服務程序。這里的addr16就是程序存儲器中相應的中斷服務程序的入口地址,MCS-51的5個中斷源的中斷服務程序入口地址是固定的,如下表所示。16 8051的5個中斷源的中斷服務入口地址之間相差8個單元。這8個存儲單元用來存儲中斷服務程序一般來說是不夠的。用戶常在中斷服務程序地址入口處放一條三字節(jié)的長轉移指令。一般地,主程序從0030H單元以后開始存放。例如:ORG 0000HLJMP START ; 轉入主程序,START為主程序地址標號ORG 0003HLJMP INT0 ; 轉外

13、中斷中斷服務程序ORG 000BHLJMP T0 ; 轉定時器T0中斷服務程序ORG 0030HSTART: ; 主程序開始(3)中斷響應時間 正常中斷響應時間至少為38個機器周期,如果有同級或高級中斷服務,將延長中斷響應時間。174中斷請求的撤除 為了避免中斷請求標志沒有及時撤除而造成的重復響應同一中斷請求的錯誤, CPU在相應中斷時必須及時將其中斷請求標志位撤除。 8051的5個中斷源的中斷請求撤除的方法是不同的。(1)定時器溢出中斷請求的撤除 定時器溢出中斷得到響應后,其中斷請求的標志位TF0和TF1由硬件自動復位。(2)串行口中斷請求的撤除 串行口中斷得到響應后,其中斷請求的標志位TI

14、和RI不能由硬件自動復位,必須由用戶在中斷服務程序的適當位置通過如下指令將它們撤除。 CLR TI ; 撤除發(fā)送中斷請求標志 CLR RI ; 撤除接收中斷請求標志 或采用字節(jié)型指令:ANL SCON, #0FCH18(3)外部中斷請求的撤除 外部中斷請求的兩種觸發(fā)方式(電平觸發(fā)和負邊沿觸發(fā))的中斷請求撤除的方法是不同的。 負邊沿觸發(fā)方式:CPU在前一機器周期采到 / 引腳為高,后一機器周期采到為低才認為是一次中斷請求,即依靠CPU兩次檢測 (或 )上的負邊沿觸發(fā)電平狀態(tài)而置位外部中斷標志位IE0或IE1 。CPU 可記憶申請、可由硬件自動撤除中斷申請。 電平觸發(fā)方式: / 引腳上的低電平須持

15、續(xù)到中斷發(fā)生。若中斷返回前仍未及時撤除低電平,雖然CPU在響應中斷時能由硬件自動復位IE0或IE1,但引腳上的低電平仍會使已經(jīng)復位的IE0或IE1再次置位,產(chǎn)生重復中斷的錯誤。 19 電平觸發(fā)型外部中斷請求的撤除必須由外部硬件使(或)上的低電平隨著其中斷被響應而變?yōu)楦唠娖健F渲袛嗾埱蟪烦碾娐啡缦聢D所示。 外來的低電平反相CP端產(chǎn)生上跳沿 D端的“0”輸出到Q端申請中斷,中斷服務返回前對P1.0送“0” 令Q端變?yōu)椤?” 指令如下: ANL P1,#0FEH (或CLR P1.0 ) ;令Q端置“1” ORL P1, #01H ( SETB P1.0 ) ;令SD端置“1”,以免下次中斷來時Q

16、端不能變“0”203.2.3 MCS-51中斷系統(tǒng)的編程 (1)中斷初始化設置:開相應中斷允許( IE )、根據(jù)需要選擇優(yōu)先級( IP )和選擇外中斷觸發(fā)方式(TCON),設置計數(shù)器、串行口的有關參數(shù)。(2)中斷服務程序的編寫:中斷入口、保護現(xiàn)場、關中斷、中斷服務主體程序、恢復現(xiàn)場、開中斷、設置計數(shù)器、串行口的有關參數(shù)、中斷返回指令RETI 。例題2 設8051外部中斷源接引腳 ,中斷觸發(fā)方式為電平觸發(fā),試編制8051中斷系統(tǒng)的初始化程序。解:采用位操作指令實現(xiàn)(也可以采用傳送指令和邏輯指令)。 SETB EA ; 開總中斷 SETB EX0 ; 開中斷 SETB PX0 ; 設置為高優(yōu)先級

17、CLR IT0 ; 設置為電平觸發(fā)方式21例題3 通過外部中斷控制八盞燈循環(huán)點亮。解:通過P1口擴展八盞燈,在 引腳接一個按鈕開關到地,每按一下按鈕就申請一次中斷,點亮一盞燈,中斷服務則是:依次點亮八盞燈中的一盞。采用邊沿觸發(fā)。硬件電路如下圖所示。22程序如下: ORG 0000H LJMP MAIN ORG 0013H ; 中斷服務程序入口地址 LJMP IN11 MAIN:SETB EA ; 開總中斷允許“開關” SETB EX1 ; 開分中斷允許“開關” CLR PX1 ; 低 優(yōu)先級(也可不要此句) SETB IT1 ; 邊沿觸發(fā) MOV A , #01H ; 給累加器A賦初值 SJM

18、P $ ; 原地等待中斷申請 IN11:RL A ; 左環(huán)移一次 MOV P1,A ; 輸出到P1口 RETI ; 中斷返回 END233.2.4 MCS-51擴展外部中斷請求輸入口 8051單片機只提供了兩個外部中斷請求輸入端,如果需要使用多于兩個的中斷源,就必須擴展外部中斷請求輸入口。 1定時器/計數(shù)器用于擴展外部中斷請求輸入口 8051單片機有兩個定時器/計數(shù)器,它們作為計數(shù)器使用時,計數(shù)輸入端T0(或T1)發(fā)生負跳變將使計數(shù)器加1,利用此特性,適當設置計數(shù)初值,就可以把計數(shù)輸入端T0(或T1)作為外部中斷請求輸入口。其特點是以占用內(nèi)部定時中斷為代價的。中斷服務程序的入口地址仍然為000

19、BH或001BH。242查詢方式擴展外部中斷請求輸入口 把多個中斷源通過硬件(如與非門)引入外部中斷輸入端,同時又連到某個I/O口。當有中斷源申請中斷時,在中斷服務程序中通過軟件查詢可確定哪一個是正在申請的中斷源,其查詢的次序可由中斷優(yōu)先級決定。其特點是中斷響應速度較慢。 適用于外部中斷源較多的場合。3使用專用芯片擴展外部中斷請求輸入口 當外部中斷源較多,同時又要求中斷響應速度很高時,查詢方式擴展外部中斷請求輸入口的方法很難滿足要求。這時可以使用專用接口芯片進行外部中斷請求輸入口的擴展。74LS148優(yōu)先級編碼器和可編程中斷控制器8259均可以實現(xiàn)該任務。 253.3 MCS-51單片機的定時

20、器/計數(shù)器 3.3.1 定時器/計數(shù)器 1基本概念(1)計數(shù):計數(shù)是指對外部事件的個數(shù)進行計量。其實質(zhì)就是對外部輸入脈沖的個數(shù)進行計量。實現(xiàn)計數(shù)功能的器件稱為計數(shù)器。(2)定時:8051單片機中的定時器和計數(shù)器是一個部件,只不過計數(shù)器記錄的是外界發(fā)生的事件,而定時器則是由單片機內(nèi)部提供一個非常穩(wěn)定的計數(shù)源進行定時的。這個計數(shù)源是由單片機的晶振經(jīng)過12分頻后獲得的一個脈沖源。所以定時器計數(shù)脈沖的時間間隔與晶振有關。263.3 MCS-51單片機的定時器/計數(shù)器 3.3.1 定時器/計數(shù)器 1基本概念(1)計數(shù):計數(shù)是指對外部事件的個數(shù)進行計量。其實質(zhì)就是對外部輸入脈沖的個數(shù)進行計量。實現(xiàn)計數(shù)功能

21、的器件稱為計數(shù)器。(2)定時:8051單片機中的定時器和計數(shù)器是一個部件,只不過計數(shù)器記錄的是外界發(fā)生的事件,而定時器則是由單片機內(nèi)部提供一個非常穩(wěn)定的計數(shù)源進行定時的。這個計數(shù)源是由單片機的晶振經(jīng)過12分頻后獲得的一個脈沖源。所以定時器計數(shù)脈沖的時間間隔與晶振有關。27(3)定時的種類 軟件定時:利用執(zhí)行一個循環(huán)程序進行時間延遲。其特點是定時時間精確,不需外加硬件電路,但占用CPU時間。因此軟件定時的時間不宜過長。 硬件定時:利用硬件電路實現(xiàn)定時。其特點是不占用CPU時間,通過改變電路元器件參數(shù)來調(diào)節(jié)定時,但使用不夠靈活方便。對于時間較長的定時,常用硬件電路來實現(xiàn)。 可編程定時器:通過專用的

22、定時器/計數(shù)器芯片實現(xiàn)。其特點是通過對系統(tǒng)時鐘脈沖進行計數(shù)實現(xiàn)定時,定時時間可通過程序設定的方法改變,使用靈活方便。也可實現(xiàn)對外部脈沖的計數(shù)功能。28 MCS-51單片機內(nèi)部有兩個16位可編程的定時器/計數(shù)器,簡稱為T0和T1,均可作定時器用也可計數(shù)器,它們均是二進制加法計數(shù)器,當計數(shù)器計滿回零時能自動產(chǎn)生溢出中斷請求,表示定時時間已到或計數(shù)已終止。適用于定時控制、延時、外部計數(shù)和檢測等。計數(shù)器:對引腳T0(P 3.4 )和T1(P3.5.)輸入的外部脈沖信號計數(shù),當輸入脈沖信號從1到0的負跳變時,計數(shù)器就自動加1。計數(shù)的最高頻率一般為振蕩頻率的1/24。定時器:對系統(tǒng)晶振振蕩脈沖的12分頻輸

23、出進行計數(shù)。如果單片機采用12MHZ晶振,則計數(shù)頻率為1MHZ。即每微秒計數(shù)器加1。 (1)定時器/計數(shù)器的結構組成:16位加法計數(shù)器、工作方式寄存器TMOD和控制寄存器TCON。 T0: TL0(低8位)和TH0(高8位) T1: TL1(低8位)和TH1(高8位)2MCS-51內(nèi)部定時器/計數(shù)器 29 8051單片機內(nèi)部的定時器/計數(shù)器的結構如下圖所示。30(2)控制寄存器TCON (88H) TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TF0/TF1:T0/1計數(shù)溢出標志位??捎糜谏暾堉袛嗷蚬〤PU查詢。在進入中斷服務程序時會自動清零;但在查詢方式時必須軟件清零。 =1

24、 :計數(shù)溢出; =0 :計數(shù)未滿。TR0/TR1:T0/1啟停控制位。 =1 :啟動計數(shù); =0: 停止計數(shù)。IE0/IE1和IT0/IT1:用于管理外部中斷。31 M1,M0:工作方式選擇位 。 =00:方式0,13位定時器/計數(shù)器; =01:方式1, 16位定時器/計數(shù)器(常用); =10:方式2,可自動重裝的8位定時器/計數(shù)器(常用); =11:方式3, T0 分為2個8位定時器/計數(shù)器;僅適用于T0。 C/ :定時方式/計數(shù)方式選擇位。 = 1:選擇計數(shù)器工作方式,對T0/T1引腳輸入的外部事件的負脈沖計數(shù); = 0 :選擇定時器工作方式,對機器周期脈沖計數(shù)定時。 如下頁圖所示。(2)

25、工作方式寄存器TMOD GATE C / T M1 M0 GATE C / T M1 M0T1T232GATE:門控位,定時器/計數(shù)器的啟/??捎绍浖c硬件兩者控制 = 0 :軟件控制,只由TCON中的啟/??刂莆籘R0/TR1控制定時器/計數(shù)器的啟/停。 = 1 :硬件控制,由外部中斷請求信號 / 和TCON中的啟/??刂莆籘R0/TR1組合狀態(tài)控制定時器/計數(shù)器的啟/停。 其控制邏輯如下圖所示。333.3.2 定時器/計數(shù)器的工作方式 8051單片機的定時器/計數(shù)器共有四種工作模式,現(xiàn)以T0為例加以介紹,T1與T0的工作原理相同,但方式3下T1停止計數(shù)。方式(如F0)和用戶定義名稱等幾種方

26、式。1工作方式0( M1M0=00 ,13位定時器/計數(shù)器) 由TH0的全部8位和TL0的低5位( TL0的高3位未用)構成13位加1計數(shù)器,當TL0低5位計數(shù)滿時直接向TH0進位,并當全部13位計數(shù)滿溢出時,溢出標志位TF0置“1”。2工作方式1 ( M1M0=01 ,16位定時器/計數(shù)器) 由TH0和TL0構成16位加1計數(shù)器,其他特性與工作方式0相同。3工作方式2 ( M1M0=10 ,自動重裝計數(shù)初值的8位定時器/計數(shù)器) 16位定時器/計數(shù)器被拆成兩個8位寄存器TH0和TL0,CPU在對它們初始化時必須裝入相同的定時器/計數(shù)器初值。以TL0作計數(shù)器,而TH0作為預置寄存器。當計數(shù)滿溢

27、出時,TF0置“1”,同時TH0將計數(shù)初值以硬件方法自動裝入TL0。這種工作方式很適合于那些重復計數(shù)的應用場合(如串行數(shù)據(jù)通信的波特率發(fā)生器)。4工作方式3 ( M1M0=11, 2個8位定時器/計數(shù)器,僅適用于T0)341工作方式0( M1M0=00 ,13位定時器/計數(shù)器) 由TH0的全部8位和TL0的低5位( TL0的高3位未用)構成13位加1計數(shù)器,當TL0低5位計數(shù)滿時直接向TH0進位,并當全部13位計數(shù)滿溢出時,溢出標志位TF0置“1”。35在工作方式0下,計數(shù)器的計數(shù)值范圍是:18192(213)當為定時工作方式時,定時時間的計算公式為:213計數(shù)初值)晶振周期12或(213計數(shù)

28、初值)機器周期其時間單位與晶振周期或機器周期相同。如果單片機的晶振選為6.000MHz,則最小定時時間為:213(2131)1/610-612=210-6(s)=2(us)最大定時時間為:(2130)1/610-612=1638410-6(s)=16384(us)36舉例:設單片機晶振頻率為6 MHz,使用定時器1以方式0產(chǎn)生周期為500 us的等寬正方波連續(xù)脈沖,并由P1.0輸出。以查詢方式完成。1計算計數(shù)初值欲產(chǎn)生500us的等寬正方波連續(xù)脈沖,只需在P1.0端以250us為周期交替輸出高低電平即可實現(xiàn)。為此定時時間應為250us。使用6 MHz晶振,則一個機器周期為2us。方式0為13位

29、計數(shù)結構。設待求的計數(shù)初值為X,則:(213X) 2 10-6=25010-6求解得:X=8067。二進制數(shù)表示為1111110000011B。十六進制表示,高8位為0FCH,低5位為03H。其中高8位放入TH1,即TH1=0FCH;低5位放入TL1,即TL1=03H。2.TMOD寄存器初始化為把定時器/計數(shù)器1設定為方式0,則M1M0=00;為實現(xiàn)定時功能,應使C/T=0;為實現(xiàn)定時器/計數(shù)器1的運行控制,則GATE=0.。定時器/計數(shù)器0不用,有關位設定為0.因此TMOD寄存器應初始化為00H。3.由定時控制器寄存器TCON中的TR1位控制定時的啟動和停止。37程序設計如下: MOV TM

30、OD,#00H ;設置T1為工作方式0 MOV TH1,#0FCH ;設置計數(shù)初值 MOV TL1,#03H MOV IE,#00H ;禁止中斷 LOOP: SETB TR1 ;啟動定時 JBC TF1,LOOP1 ;查詢計數(shù)溢出 AJMP LOOPLOOP1: MOV TH1,#0FCH ;重新設置計數(shù)初值 MOV TL1,#03H CLR TF1 ;計數(shù)溢出標志位清0 CPL P1.0 ;輸出取反 AJMP LOOP ;重復循環(huán)382工作方式1 ( M1M0=01 ,16位定時器/計數(shù)器) 由TH0和TL0構成16位加1計數(shù)器,其他特性與工作方式0相同。39方式0和方式1的區(qū)別僅在于計數(shù)器

31、的位數(shù)不同,方式0為13位,而方式1則為16位,由TH0作為高8位,TL0為低8位,有關控制狀態(tài)字(GATA、C/T、TF0、TR0)和方式0相同。在工作方式1下,計數(shù)器的計數(shù)值范圍是:165536(216)當為定時工作方式1時,定時時間的計算公式為:216計數(shù)初值)晶振周期12或(216計數(shù)初值)機器周期其時間單位與晶振周期或機器周期相同。如果單片機的晶振選為6.000MHz,則最小定時時間為:216(2161)1/610-612=210-6(s)=2(us)最大定時時間為:(2160)1/610-612=13107210-6(s)=131072(us) 403工作方式2 ( M1M0=10

32、 ,自動重裝計數(shù)初值的8位定時器/計數(shù)器) 16位定時器/計數(shù)器被拆成兩個8位寄存器TH0和TL0,CPU在對它們初始化時必須裝入相同的定時器/計數(shù)器初值。以TL0作計數(shù)器,而TH0作為預置寄存器。當計數(shù)滿溢出時,TF0置“1”,同時TH0將計數(shù)初值以硬件方法自動裝入TL0。這種工作方式很適合于那些重復計數(shù)的應用場合(如串行數(shù)據(jù)通信的波特率發(fā)生器)。41方式2舉例:設單片機晶振頻率為6 MHz,使用定時器0以方式2產(chǎn)生100 us定時,并由P1.0輸出200us連續(xù)正方波脈沖。1計算計數(shù)初值使用6 MHz晶振,則一個機器周期為2us。以TH0作為重裝載的預置寄存器,TL0作為8位計數(shù)器,假設計

33、數(shù)初值為X,則:(28X) 2 10-6=10010-6求解得:X=206。二進制數(shù)表示為11001110B=0CEH。,即TH0=0CEH; TL0=0CEH。2.TMOD寄存器初始化為把定時器/計數(shù)器0設定為方式2,則M1M0=10;為實現(xiàn)定時功能,應使C/T=0;為實現(xiàn)定時器/計數(shù)器0的運行控制,則GATE=0.。定時器/計數(shù)器1不用,有關位設定為0.因此TMOD寄存器應初始化為02H。3.由定時控制器寄存器TCON中的TR0位控制定時的啟動和停止。42程序設計如下: MOV IE,#00H ;禁止中斷 MOV TMOD,#02H ;設置T1為工作方式0 MOV TH1,#0CEH ;設

34、置計數(shù)初值 MOV TL1,#0CEH SETB TR0 ;啟動定時LOOP:JBC TF0,LOOP1 ;查詢計數(shù)溢出 AJMP LOOPLOOP1: CPL P1.0 ;輸出取反 AJMP LOOP ;重復循環(huán)由于方式2具有自動重裝載功能,因此計數(shù)初值只需設置一次,以后不再需要軟件重置。434工作方式3 ( M1M0=11 , 2個8位定時器/計數(shù)器,僅適用于T0)TL0:8位定時器/計數(shù)器,使用T0原有控制資源TR0和TF0,其功能和操作與方式0或方式1完全相同。TH0:只能作為8位定時器,借用T1的控制位TR1和TF1,只能對片內(nèi)機器周期脈沖計數(shù)。 在方式3模式下,定時器/計數(shù)器0可以

35、構成兩個定時器或者一個定時器和一個計數(shù)器。 T0方式3下的T1方式2,因定時初值能自動恢復,用作波特率發(fā)生器更為合適。44定時工作方式3 45 定時器/計數(shù)器可按片內(nèi)機器周期定時,也可對由T0/T1引腳輸入一個負脈沖進行加法計數(shù)。在應用時,其工作方式和工作過程均可通過程序設定和控制,因此,定時器/計數(shù)器在工作前必須先對其進行初始化,計算和設置初值。 (1)在已經(jīng)開放T0/T1中斷允許且已被啟動的前提下,T0/T1加1計滿溢出時 TF0/TF1標志位自動置“1” ; (2)CPU 檢測到TCON中TF0/TF1變“1”后,將產(chǎn)生指令:LCALL 000BH/LCALL 001BH 執(zhí)行中斷服務程

36、序;(3)TF0/TF1標志位由硬件自動清“0”。3.3.3 課程總結-定時器/計數(shù)器的應用 462. 定時器/計數(shù)器初始化的步驟 (1)寫TMOD,設置定時器/計數(shù)器的工作方式; (2)計算定時器/計數(shù)器的初值,寫入TH0/TH1、TL0/TL1。 (3)設置IE、IP,以開放相應的中斷和設定中斷優(yōu)先級。 3. 定時器/計數(shù)器的定時器/計數(shù)器范圍 (1)工作方式0:13位定時器/計數(shù)器方式 最大計數(shù)值= 213 = 8192 (2)工作方式1:16位定時器/計數(shù)器方式 最大計數(shù)值= 216 = 65536 (3)工作方式2和工作方式3:8位的定時器/計數(shù)器方式因此, 最大計數(shù)值= 28 =

37、256 473. 計數(shù)器初值的計算 方法:用最大計數(shù)量減去需要的計數(shù)次數(shù)。即: TC=MC 其中:TC計數(shù)器需要預置的初值; M計數(shù)器的模值(最大計數(shù)值); 方式0時,M=213;方式1時,M=216;方式2, 3時,M=28; C計數(shù)器計滿回0所需的計數(shù)值,即設計任務要求的計數(shù)值。例如:流水線上一個包裝是12盒,要求每到12盒就產(chǎn)生一個動作,用單片機的工作方式0來控制,則應當預置的初值為: TC = M C = 213 12=8180484. 定時器初值的計算 定時時間的計算公式為: T=(MTC)T0 (或TC=MT/T0 )其中:T定時器的定時時間,即設計任務要求的定時時間; T0計數(shù)器

38、計數(shù)脈沖的周期,即單片機系統(tǒng)主頻周期的12倍; M計數(shù)器的最大值; TC定時器需要預置的初值。 若設初值TC=0,則定時器定時時間為最大。若設單片機系統(tǒng)主頻為12MHz,則各種工作方式定時器的最大定時時間為:工作方式0: Tmax=2131s=8.192ms工作方式1: Tmax=2161s=65.536ms工作方式2和3:Tmax=281s=0.256ms495. 定時器/計數(shù)器應用舉例 例題1 設一只發(fā)光二極管LED和8051的P1.0腳相連。當P1.0腳是高電平時,LED發(fā)亮;當P1.0腳是低電平時,LED不亮。編制程序用定時器來實現(xiàn)發(fā)光二極管LED的閃爍功能,設置LED每1s閃爍一次。已知單片機系統(tǒng)主頻為12MHz。解:定時器/計數(shù)器的最長的定時是65.536ms,無法實現(xiàn)1s的定時??梢圆捎密浖嫈?shù)器來進行設計。50設計思想:定義一個軟件計數(shù)器單元30H,先用定時器/計數(shù)器0做一個50ms的定時器,定時時間到了以后將軟件計數(shù)器中的值加1,如果軟件計數(shù)器計到了20,取反P1.0,并清掉軟件計數(shù)器中的值,否則直接返回。則完成了20次定時中斷才取反一次P1.0,因此定時時間就為2050=1000ms=1s。定時器/計數(shù)器0采用工作方式1,其初值為: 21650ms/1s=6553650000=15536=3CB0H電路圖如下:51程序如下: ORG 0000H AJ

溫馨提示

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

評論

0/150

提交評論