




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 4.1 定時器/計數器 MCS-51單片機內部共有兩個16位可編程的定時器/計數器,即 定時器T0和定時器T1它們既有定時功能又有計數功能。4.4.1 結構 定時器/計數器的基本結構如圖4.1所示。基本部件是兩個8位計 數器(其中TH1和TL1是T1的計數器,TH0和TL0是T0的計數器)。80511TH1TL0TH0TLTMODTCON1T0T)1(T5.3P)T(P04.3圖4.1 定時器/計數器結構 在作定時器使用時,輸入的時鐘脈沖是由晶體振蕩器的輸出 經12分頻后得到的。 當它用作對外部事件計數時,接相應的外部輸入引腳T0(P3.4) 或T1(P3.5)。4.1.2 控制寄存器1.
2、定時器控制寄存器(TCON) 各位定義:位地址8FH8EH8DH8CH8BH8AH89H88H位符號TF1TR1TF0TR0IE1IT1IE0IT0 TF0/TF1: 查詢方式:禁止中斷,軟件查詢TF0的值,軟件清“0” 中斷方式:硬件查詢TF0的值,硬件自動清“0”2. 工作方式寄存器(TMOD) 功能:確定定時器的工作方式及功能選擇。 不能位尋址,TMOD各位的定義: T/C1M0MD7D6D5D4D3D2D1D0GATEGATET/C1M0M GATE:門控位 0:定時器/計數器僅受TR的控制 1:只有 INT 為高電平,且TR=1時,定時器/計數器才工作 T/C:功能選擇位 0:定時功
3、能 1:計數功能 1M0M:工作方式選擇位 00 方式001 方式110 方式211 方式33. 中斷允許控制寄存器(1E)0AFH0AEH0ADH0ACH0ABH0AAH0A9H0A8HEA/ESET1EX1ET0EX0 每一位的內容在前面已作詳細介紹,在此不作贅述。 查詢方式時:關閉中斷,使用軟件查詢TF0/TF1 中斷方式時:開放中斷,使用硬件自動查詢TF0/TF14.1.3 工方式 MCS-51的定時器/計數器共有四種工作方式。工作在方式0、方式1和方式2時,定時器/計數器0和定時器/計數器1的工作原理完全一樣,現以定時器/計數器0為例介紹前三種工作方式。1. 方式0(M1M0=00)
4、(1)電路邏輯結構 方式0是13位計數結構的工作方式,其計數器由TH0全部8位和TL0的低5位構成。TL0高三位棄之不用。圖4.2 是定時器/計數器0工作在方式0的邏輯結構。晶體振蕩器0M1MTCGATE120T1TC0TC0INT00THTL0TF0TR供中斷或查詢使用+低五位高八位 圖4.2 定時器/計數器方式0邏輯結構當 0T/C時,多 路 轉換開關接通 振 蕩 脈沖的12分頻輸出, 13位計數器以此作為計數 脈沖,這時實現定時功能當 1T/C 時, 多路換開關接通計數引腳(T0),計 數 脈沖由外部引入,當計數 脈沖發生負跳變時,計數器加1,這時實現計數功能。不管哪種功 能,當13位計
5、數 發生溢 出時,硬件自動把13位清零,同時硬件置 位溢出標志位TF0。 在這里需要說明門控位(GATE)的用途,當GATE = 0時,或輸出的高電平與 0INT無關,此時與門的輸出只受運行控制位T R0控 制。如果TR0=0,則與門輸出為低電平,則模 擬開關斷開,定時器/計數 器不工作。如果TR01,則與門輸出為高電平,則模 擬開關閉合,定時器/計數器工作。 當GATE=1時,只有TR0和 0INT 同時為高電平,定時器/計數 器才工作,否則,定時器/計數器不工作。(2)定時和計數的應用 計數范圍:1213 計數計算公式:計數值213計數初值 定時范圍:1機器周期213機器周期 定時計算公式
6、:定時時間(213定時初值)機器周期 如果晶振頻率為6MHz ,則最大定時時間為: 2131/6MHz12214( )2. 方式1(M1M0=01) 方式1是16位計數結構的工作方式,其計數器由TH0全部8位和TL0的全部8位構成。其邏輯電路和工作情況與方式0完全相同,所不同的只是計數 器的位數。MCS-51單片機之所以設置幾乎完全一 樣 的方式0和方式1,是出于與 MCS-48單片機兼容的要求。因為,MCS48單片機的定時器/計數器是13位的計數結構。s 定時和計數的應用 計數范圍:1216 計數計算公式:計數值216計數初值 定時范圍:1機器周期216機器周期 定時計算公式:定時時間(21
7、6定時初值)機器周期 如果晶振頻率為6MHz ,則最大定時時間為: 2161/6MHz12217( )s【例4-1】設單片機晶振頻率為6MHZ,使用T1以工作方式1,產生周 期為500s的等寬正方波,并由0 . 1P輸出,以中斷方式編程。分析:題目的要求可用下圖來表示。0.1P250s 250s 8051 由上圖可以看出只要使0 . 1P 的電位每隔250s取一次反即可。所s。以定時時間應取250 。 1)計算計數初值 設計數初值為x,由定時計算公式知:H83TL,FFH0THH83FF0 xB0110,1000,1111,1111xD65411xs250s2)x2(1116 2)專用寄存器的
8、初始化T/C1M0MTC /1M0MD7D6D5D4D3D2D1D0GATEGATE 所以,TMOD應設置為:10H 開放定時器/計數器1中斷,所以IE應設置為:88H 3) 編寫程序ORG0000HSJMPMAINORG001BHAJMPORGINTT13000HMAIN:MOVTMOD, #10HMOVIE,#88HMOVTH1, #0FFHMOVTL1, #83H;初始化LOOP:SETBTR1;啟動HERE:SJMPHERE;等待中斷AJMPLOOPINTT1:MOVTH1, #0FFH;中斷響應程序MOVTL1, #83HCPLP1.0RETI;中斷返回3. 方式2(M1M0=10)
9、 (1)電路邏輯結構 電路邏輯結構如圖6.5所示,由圖可以總結出方式2具有以下特點:晶體振蕩器0M1MTCGATE120T1TC0TC0INT0TL0TF0TR中斷查詢0TH重新裝入控制+ 圖4.3 定時器/計數器方式0邏輯結構 8位計數器 TL0作計數器,TH0作預置寄存器使用,計數溢出時,TH0中的 計數初值自動裝入TL0,即TL0是一個自動恢復初值的8位計數器。 在使用時,要把計數初值同時裝入TL0和TH0中。 優點是提高定時精度,減少了程序的復雜程度。(2)定時和計數的應用 計數范圍:128 計數計算公式:計數值28計數初值 定時范圍:1機器周期28機器周期 定時計算公式:定時時間(2
10、8定時初值)機器周期【例6-2】 用定時器1以工作方式2實現計數,每計數100,累加器進行加1操作,以查詢方式編寫程序。解:1)計算計數初值CH9TLTHCH9D156x100 x21182)專用寄存器初始化T/C1M0MT/C1M0MD7D6D5D4D3D2D1D0GATEGATE0 1 1 0 0 0 0 0所以,TMOD60H使用查詢方式,所以關閉中斷,即IE=00H3) 程序設計MOVIE,#00H;禁止中斷MOVTMOD,#60H;T1工作在方式2,計數功能MOVTH1,#9CHMOVTL1,#9CH;裝載計數初值START:SETBTR1;啟動DEL:JBCTF1, LOOPAJM
11、PDELLOOP:INCA;溢出響應程序AJMPSTART4. 4. 方式方式3 3(M M1 1M M0 0=11=11) 前面介紹的三種工作方式對兩個定時器/計數器而言,工作原理是完全一樣的。但在工作方式3下,兩個定時器工作原理卻完全不同,因此要分開介紹。(1)工作方式3下的定時器/計數器0 在方式3下,定時器/計數器0被拆為兩個獨立的8位的計數器TL0和TH0。其中TL0 既可以作為計數功能使用,又可以作定時功能使用,享用定時器/ 計數器0的運行控制位TR0和溢出標志位TF0。對于TH0,只能作定時器使用,由于定時器/ 計數器0的運行控制位TR0和溢出標志位TF0已被TL0占用,因此TH
12、0占用了定時器/計數器1的運行控制位TR1和溢出標志位TF1。即定時的啟動和停止受TR1的狀態控制,而計數溢出時則置位TF1。(2)工作方式3下的定時器/計數器1 當定時器/計數器0工作在方式3時,定時器/計數器1只能工作在方式0、方式1和方式2。在這種情況下定時器/計數器1只能作波特率發生器使用,以確定串行通信的速率。作波特率發生器使用時,只要設置好工作方式,便可自動運行。如果要停止工作,只需要把定時器/計數器1設置在工作方式3就可以了。因為定時器/計數器1不能工作在方式3下,如果硬把它設置在方式3,它就會停止工作。例4.3用T0作50ms內部定時,每50ms在T1引角產生一脈沖供T1計數器
13、作記數脈沖,若T1計數器為20,便可得到定時1秒的定時程序:MOV TMOD,#61H;T0為16位定時, T1為8位自動重載 MOV DPTR,#15536;設定定時或記數初值MOV TL0,DPL;T0為50ms內定時 MOV TH0,DPH MOV TL1,#236;T1計數初值 MOV TH1,#236 SETB TR0 SETB TR1LOOP:JNB TF0,$ CLR TF0 MOV DPTR,#15536 MOV TL0,DPLMOV TH0,DPHCLR P3.5SETB P3.5JNB TF1,LOOPCLR TF1+5V2K0.1P80515 定時器舉例【例6-4】 通過
14、定時器1來產生中斷,控制P1.0線上的脈沖輸出,并經三極管驅動揚聲器,發出音調信號。1) 電路設計2) 程序設計ORG0000HLJMPMAINORG001BH;中斷入口地址CPLP1.0RETIORG1000HMAIN: MOVR1, #00HMOVR0, #23HMOVTMOD, #20H;定時器1工作方式2MOVIE, #88H;定時器1允許中斷L1:MOVDPTR, #3FFFHMOVA, R0;取數INCR0;修改指針MOVCA, A+PC;查表JZMAINMOVR1, A;計算計數初值MOVA, #0FFHCLRCSUBBA, R1RLAMOVTH1, A;置計數初值SETBTR1
15、;開始計數L2:CLRCMOVA, DPL;延時SUBBA, #01HMOVDPL, AMOVA, DPHSUBBA, #00HMOVDPH, AORLA, DPLJNZL2CLRTR1SJMPL1ENDORG1031H;歌曲“送別”編碼DB 33H,33H,3DH,33H,26HDB 26H, 26H, 26H,2DH,2DHDB 26H,2DH,33H,33H,33HDB 33H, 33H,33H,4DH,45HDB 45H, 45H45H, 45H, 45HDB 45H, 45H,33H,33H,3DHDB 33H,26H,26H,26H, 28HDB 2DH, 2DH, 26H,26H
16、,33HDB 33H,33H,33H,45H,3DH 4.2 4.2 中斷中斷系統系統 單片機在某一時刻只能處理一個任務,當多個任務同時要求單片機處理時,這一要求應該怎么實現呢?通過中斷可以實現多個任務的資源共享。 所謂的中斷就是,當CPU正在處理某項事務的時候,如果外界或者內部發生了緊急事件,要求CPU暫停正在處理工作而去處理這個緊急事件,待處理完后,再回到原來中斷的地方,繼續執行原來被中斷的程序,這個過程稱作中斷。 從中斷的定義我們可以看到中斷應具備中斷源、中斷響應、中斷返回這樣三個要素。中斷源發出中斷請求,單片機對中斷請求進行響應,當中斷響應完成后應進行中斷返回,返回被中斷的地方繼續執行
17、原來被中斷的程序。 4.2.1 中斷源與入口地址 1. 外部中斷源 外部中斷0( 2 . 3P3 . 3P):來自 引腳,采集到低電平或者下降 沿時,產生中斷請求。 外部中斷1( 0INT):來自 引腳,采集到低電平或者下降 沿時,產生中斷請求。1INT 2.2. 內部中斷源定時器計數器0(0T ):定 時功能時,計數 脈沖來自片內; 計數功能時,計數脈沖來自片外4 . 3P引腳。發生溢出時,產生中定時器計數器1(1T ):定時功能 時,計數 脈 沖來自片內; 計數功能時,計數脈沖來自片外5 . 3P引腳。發生溢出時,產生中 串行口:為完成串行數據傳送而設置。單片機完成接受或發 送 一組數據時
18、,產生中斷請求。 斷請求。斷請求 IE0和IE1外中斷請求標志位當CPU采樣到 0INT(或 1INT)端出現有效中斷請求時,IE0 (IE1)位由硬件置“1”。當中斷響應完成轉向中斷服務程序時,由硬件把IE0(或IE1)清零。 TF0和TF1計數溢出標志位 當計數器產生計數溢出時,相應的溢出標志位由硬件置“1”。 當轉向中斷服務時,再由硬件自動清“0”。計數溢出標志位 的使用有兩種情況:采用中斷方式時,作中斷請求標志位 來使用;采用查詢方式時,作查詢狀態位來使用。3 中斷請求標志位 TI串行口發送中斷請求標志位 當發送完一幀串行數據后,由硬件置“1”;在轉向中斷服務 程序 后,用軟件清“0”
19、。 RI串行口接收中斷請求標志位 當接收完一幀串行數據后,由硬件置“1”;在轉向中斷服務 程序后,用軟件清“0”。串行中斷請求由TI和RI的邏輯或得 到。4 中斷入口地址 當CPU查詢到中斷請求時,由硬件自動產生一條LCALL指令,LCALL指令執行時,首先將PC內容壓入堆棧進行斷點保護,再把中斷入口地址裝入PC,使程序轉向相應的中斷區入口地址。LCALL指令的形式如下:LCALL addr16 ;addr16:中斷入口地址 入口地址已由系統設定,如下: 中斷源 入口地址 0003H T0000BH 0013H T1 001BH S 0023H 1INT0INT4.2.2中斷允許控制寄存器(I
20、E)中斷優先級寄存器(IP)進行字節操作時,寄存器地址為0A8H。按位操作時,各位的地址為0A8H0AFH。寄存器的內容及位地址表示如下: 位地址0AFH0AEH0ADH0ACH0ABH 0AAH 0A9H0A8H位符號EA/ESET1EX1ET0EX0 1 中斷允許控制寄存器(IE) 其中與中斷有關的控制位共6位: EA中斷允許總控制位EA0 中斷總禁止,禁止所有中斷EA1 中斷總允許,總允許后中斷的禁止或允許由各中斷源的中斷允許控制位進行設置。 EX0和EX1外部中斷允許控制位EX0(EX1)0 禁止外部中斷EX0(EX1)1 允許外部中斷 ET0和ET1定時器/計數器中斷允許控制位ET0
21、(ET1)0 禁止定時器/計數器中斷ET0(ET1)0 允許定時器/計數器中斷 ES串行中斷允許控制位ES=0 禁止串行中斷ES=1 允許串行中斷2. 中斷優先級控制寄存器(IP)IP寄存器地址0B8H,位地址為0BFH0B8H。寄存器的內容 及位地址表示如下: 位地址0BFH0BEH 0BDH 0BCH 0BBH 0BAH0B9H0B8H位符號/PSPT1PX1PT0PX0 其中: PX0外部中斷0優先級設定位; PT0定時中斷0優先級設定位; PX1外部中斷1優先級設定位; PT1定時中斷1優先級設定位; PS串行中斷優先級設定位。 以上各位設置為“0”時,則相應的中斷源為低優先級;設置為
22、 “1”時,則相應的中斷源為高優先級。優先級的控制原則是: 低優先級中斷請求不能打斷高優先級的中斷服務;但 高優先級 中斷請求可以打斷低優先級的中斷服務,從而實現中斷嵌套。 如果一個中斷請求已被響應,則同級的其它中斷服務將被禁止。即同級不能嵌套。 如果同級的多個中斷同時出現,則按CPU查詢次序確定哪個中斷請求被響應。其查詢次序為:外部中斷0定時中斷外部中斷定時中斷串行中斷。 上述四個專用寄存器的用途可以用圖6.1說明。源碼源碼0INT1INT0TF1TFTIRI0IE1IE0EX0ET1EX1ETESEAIP優先級查詢電路高優先級中斷請求低優先級中斷請求中斷程序入口中斷程序入口源允許總允許圖4
23、.2.2 MCS-51中斷系統4.2.3 中斷響應過程1. 中斷采樣 電平觸發方式的外中斷請求(IT0/IT10)采樣到高電平時,表 明沒有中斷請求,IE0或IE1繼續為“0”。采樣到低電平時,IE0/IE1 由硬件自動置“1”,表明有外中斷請求發生。 脈沖觸發式的外中斷請求(IT0/IT11)在相鄰的機器周期采樣 到的電平由高電平變為低電平時,則IE0/IE1由硬件自動置“1”, 否則為“0”。2. 中斷查詢 由CPU測試TCON和SCON中的各個中斷標志位的狀態,確定有那個中斷源發生請求,查詢時按 優先級 順序進行查詢,即先詢高優先級查詢低優先級。 如果查詢到有標志位為“1”,表明有中斷請
24、求發生,接著 就從相鄰的下一機器周期開始進行中斷響應。3. 中斷響應 當CPU查詢到中斷請求時,由硬件自動產生一條LCALL指令,LCALL指令執行時,首先將PC內容壓入堆棧進行斷點保護,再把中斷入口地址裝入PC,使程序轉向相應的中斷區入口地址。LCALL指令的形式如下:LCALL addr16 ;addr16:中斷入口地址 入口地址已由系統設定,如下: 中斷源 入口地址 0003H T0000BH 0013H T1 001BH S 0023H 1INT0INT編寫中斷服務程序的格式一般如下: ORG 0000H SJMP MAIN ORG 0003H AJMP 1NJERRVP MAIN:
25、HERE: SJMP HERE 1NJERRVP: ;中斷響應程序 RETI 并不是所有的請求都被響應,當遇到下列情況之一時不響應這些中斷請求:(1)CPU正在處理一個同級或者高級的中斷服務(2)當前指令還沒有執行完畢(3)當前指令是RET、RETI或者是訪問IP、IE的指令,執行完 這些指令后,還必須再執行一條指令,才響應中斷請求。 4 中斷請求的撤銷 1. 定時中斷請求的撤銷硬件自動把TF0(TF1)清0,不需要用戶參與。2. 串行中斷請求的撤銷需要軟件清零。3. 外部中斷請求的撤銷(1)脈沖觸發方式的外中斷請求撤銷中斷標志位的清零是自動的,脈沖信號過后就不存在了,因此其撤銷是自動的。(2
26、)電平觸發方式的外中斷請求撤銷 中斷標志位的清零是自動的,但是如果低電平持續存在,在以后的機器周期采樣時,又會把中斷請求標志位(IE0/IE1)置位。為此,需要外加電路,把中斷請求信號從低電平強制為高電平。電路如圖6.2所示:QD0INT0 . 1P外部中斷請求信號8051CPdS圖4.2.3 電平觸發方式的外中斷請求撤銷 4.3 應用舉例4.3.1 外部中斷舉例【例1】使用外部中斷0,當每次響應中斷時,P1口依次輸出高電平,使8個發光二極管依次循環熄滅閃爍。1) 電路設計80512.3P0.1P7.1P+5VD0D7LED顯示單元 2) 程序設計ORG0000H LJMPMAIN;轉主程序ORG0003H;外部中斷0入口地址LJMPEXTER;轉中斷程序ORG1000H MAIN:SETBIT0;外部中斷0下降沿有效SETBEX0;外部中斷0允許SETBEA;總中斷允許LOOP:AJMPLOOP;等待中斷ORG1050H;中斷程序入口EXTER:MOVR2, #0FFH;置循環次數MOVA, #01H;燈亮初值FLASH:RRA;右移一位MOVR7, #0FFH;定時LOOP1:MOVR6, #0FFHLOOP2:NOPNOP
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 代理促銷活動方案
- 代購年底活動方案
- 以舊換新電視機活動方案
- 仲裁服務活動方案
- 企業保護環境活動方案
- 企業嚴控聚集性活動方案
- 企業俱樂部活動方案
- 企業反腐活動方案
- 企業團員青年活動方案
- 企業獎勵活動方案
- 2025年滬教新版七年級地理下冊階段測試試卷含答案
- 安徽省六安市2024-2025學年高一上學期期末考試數學試題(含解析)
- 鋰離子電池項目立項申請報告范文范本
- 《 城鎮燃氣設施運行、維護安全技術規程》
- 勞動合同法-終結性考核-國開(SC)-參考資料
- 機械工程技術訓練(北京航空航天大學)知到智慧樹章節答案
- 2023年北京市先農壇體育運動技術學校招聘筆試真題
- 國家漢語主題詞表
- 國家開放大學專科《機械制圖》形考任務1-4試題及答案
- 四年級下冊數學方程題100道及答案
- 小學數學小專題講座《數學教學生活化-》
評論
0/150
提交評論