C的中斷系統(tǒng)及定時計數(shù)器定時計數(shù)器概要實用PPT學習教案_第1頁
C的中斷系統(tǒng)及定時計數(shù)器定時計數(shù)器概要實用PPT學習教案_第2頁
C的中斷系統(tǒng)及定時計數(shù)器定時計數(shù)器概要實用PPT學習教案_第3頁
C的中斷系統(tǒng)及定時計數(shù)器定時計數(shù)器概要實用PPT學習教案_第4頁
C的中斷系統(tǒng)及定時計數(shù)器定時計數(shù)器概要實用PPT學習教案_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、會計學1C的中斷系統(tǒng)及定時計數(shù)器定時計數(shù)器概的中斷系統(tǒng)及定時計數(shù)器定時計數(shù)器概要實用要實用復習數(shù)電中的計數(shù)器、定時器提出要求:提出要求:1、有參與計數(shù)的實體(計數(shù)長度可變)、有參與計數(shù)的實體(計數(shù)長度可變)2、 有計數(shù)脈沖的引入,有溢出位有計數(shù)脈沖的引入,有溢出位3、可以置入初值、可以置入初值溢出溢出計數(shù)脈沖計數(shù)脈沖置入初值置入初值計數(shù)長度為計數(shù)長度為n的計數(shù)器的計數(shù)器第1頁/共49頁溢出溢出計數(shù)脈沖計數(shù)脈沖CP置入初值置入初值長度為n的計數(shù)器長度為n的計數(shù)器定時器/計數(shù)器可由觸發(fā)器構成計數(shù)狀態(tài)滿足一定條件時有輸出有置入初值的途徑最大計數(shù)長度:CPn個2最大定時時間:CPTn2對于加1計數(shù)器,

2、若初值為x,則記錄m個脈沖后溢出。xmn2結論:為實現(xiàn)m個脈沖的計數(shù),則需置入初值x,mxn2第2頁/共49頁2 2、定時(延時)、定時(延時)t t1 1、計數(shù)、計數(shù)m m個脈沖個脈沖任務的類型:計算: 置入初值。mxn2計算: 置入初值。mxTtmCPn2第3頁/共49頁2021-9-455.3.1 定時/計數(shù)器的結構和工作原理 第4頁/共49頁2種工作模式:(1)計數(shù)器工作模式(2)定時器工作模式4種工作方式(方式0-方式3)。由圖看到:1、兩個可編程的定時器/計數(shù)器T1、T0。2、出現(xiàn)的SFR有: TH0、TL0、TH1、TL1 TMOD、TCON借助于SFR,實現(xiàn):兩種不同的計數(shù)脈沖

3、的引入,并借助于TMOD用于區(qū)分模式。用TMOD來安排工作方式。第5頁/共49頁2021-9-47定時/計數(shù)器的工作原理實質是16位加1計數(shù)器定時器模式時,是對內部機器周期計數(shù)。計數(shù)值乘以機器周期就是定時時間 計數(shù)器模式時,是對外部事件計數(shù)。脈沖由T0(P3.4)或T1(P3.5)引腳輸入。 注意:(若計數(shù)值為m,計數(shù)初值為X)溢出信號使TF0或TF1置1,并發(fā)出中斷請求,16位時有: m=65536-X,或X=65536-m12MHz晶振時,計數(shù)頻率低于0.5MHz 第6頁/共49頁GATEC/ TM1M0GATEM1C/ TM0定時器定時器T1定時器定時器T0TMOD(89H) D7 D6

4、 D5 D4 D3 D2 D1 D0第7頁/共49頁2021-9-49M1M0M1M0工作方式工作方式說說 明明0000方式方式0 01313位定時位定時/ /計數(shù)器計數(shù)器0101方式方式1 11616位定時位定時/ /計數(shù)器計數(shù)器1010方式方式2 28 8位自動重裝定時位自動重裝定時/ /計數(shù)器計數(shù)器1111方式方式3 3T0T0分成兩個獨立的分成兩個獨立的8 8位定時位定時/ /計數(shù)器;計數(shù)器;T1T1此此方式停止計數(shù)方式停止計數(shù)注意:TMOD不能進行位尋址 第8頁/共49頁2021-9-410控制寄存器TCON 76543210TCONTF1TR1TF0TR0字節(jié)地址:字節(jié)地址:88H

5、第9頁/共49頁2021-9-4115.3.3 定時/計數(shù)器的工作方式T0有方式0、1、2、3;T1有方式0、1、2。以T0為例說明。方式0:13位方式 第10頁/共49頁2021-9-412 C/T=1時,則為計數(shù)模式,有: X= 213-m= 8192-m C/T=0時,則為定時模式,有: X= 213-m = 8192-m,m=t/Tcy【例5-3】若計數(shù)個數(shù)m 為2,求計數(shù)初值。 X= 81922=8190=1FFEH= 1 1111 1111 1110B 初值計算:上述初值如何分配給TH0、TL0注意:方式0的計數(shù)初值高8位和低5位確定麻煩 ,實際應用中常由16位的方式1取代。第11

6、頁/共49頁2021-9-413方式1:16位方式 X=216-m =65536-m 計數(shù)范圍:165536 計數(shù)初值要分成2個字節(jié)分別送入TH0、TL0第12頁/共49頁2021-9-414【例5-4】若要求定時器T0工作于方式1,定時時間為1ms,當晶振為6 MHz時,求送入TH0和TL0的計數(shù)初值各為多少?應怎樣送入TH0和TL0?由于晶振為6 MHz,所以機器周期Tcy為2S,因此:m =t/Tcy=110-3/210-6500X216-m 65536-50065036FE0CH 也可以利用以下2條指令完成: MOV TL0,#(65536-500)MOD 256 ;余數(shù)為計數(shù)初值的低

7、字節(jié) MOV TH0,#(65536-500)/256 ; 商為計數(shù)初值的高字節(jié)用傳送指令分別將FEH送入TH0中,0CH送入TL0中即可。舉例第13頁/共49頁2021-9-415方式2:8位自動重裝方式 X=28-m =256-m 計數(shù)范圍:1256 特別適合與脈沖信號發(fā)生器第14頁/共49頁2021-9-416方式3:(僅T0有此方式,T1的方式3將停止計數(shù)) TL0進行8位定時/計數(shù) TH0進行8位定時(T1方式2時,可出借TR1、TF1)第15頁/共49頁2021-9-4175.3.4 定時/計數(shù)器用于外部中斷擴展例:用T0擴展一個外部中斷源。將T0設置為計數(shù)器方式,按方式2工作,T

8、H0、TL0的初值均為0FFH,T0允許中斷,CPU開放中斷。其初始化程序如下: MOV TMOD,#06H ;置T0為計數(shù)器方式2 MOV TL0,#0FFH ;置計數(shù)初值 MOV TH0,#0FFH SETB TR0 ;啟動T0工作 SETB EA ;CPU開中斷 SETB ET0 ;允許T0中斷 T0外部引腳上出現(xiàn)一個下降沿信號時,TL0計數(shù)加1,產生溢出,將TF0置1,向CPU發(fā)出中斷請求 第16頁/共49頁2021-9-4185.3.5 定時/計數(shù)器應用舉例初始化程序應完成:對TMOD賦值,以確定T0和T1的工作方式;求初值,并寫入TH0、TL0或TH1、TL1;使TR0或TR1置位

9、,啟動定時/計數(shù)器工作。初始化程序設計 (四條指令)MOV TMOD,#01H ;設置T0為方式1MOV TH0,#0FEH ;T0置初值MOV TL0,# 0CHSETB TR0第17頁/共49頁2021-9-419中斷方式:(常用)查詢方式:1、在主程序中進行中斷初始化2、計數(shù)(定時)結束后該做的事情放在中斷服務程序中1、反復查詢是否溢出,如JNB TF0,$2、一旦發(fā)現(xiàn)溢出,及時清除溢出標志3、然后安排計數(shù)(定時)結束后該做的事情第18頁/共49頁2021-9-420計數(shù)應用【例5-5】有一包裝流水線,產品每計數(shù)24瓶時發(fā)出一個包裝控制信號。試編寫程序完成這一計數(shù)任務。用T0完成計數(shù),用

10、P1.0發(fā)出控制信號。確定方式字:T0在計數(shù)的方式2時:M1M0=10,GATE=0 ,C/T=1方式控制字為06H 求計數(shù)初值X:N=24X=256-24=232=E8H應將E8H送入TH0和TL0中 第19頁/共49頁2021-9-421 ORG 0000H LJMP MAIN ORG 000BH LJMP DVT0 ORG 0100HMAIN:MOV TMOD,#06H ;置T0計數(shù)方式2 MOV TH0,#0E8H;裝入計數(shù)初值 MOV TL0,#0E8H SETB ET0 ;T0開中斷 SETB EA ;CPU開中斷 SETB TR0 ;啟動T0 SJMP $ ;等待中斷DVT0:S

11、ETB P1.0 NOP NOP CLR P1.0 RETI END主程序 中斷服務程序 第20頁/共49頁2021-9-422定時應用 定時時間較小時(小于65ms)??芍苯硬捎梅绞?完成定時任務。 系統(tǒng)時鐘為6MHz時,各種方式下的最長定時的計算:由最長定時=2nTcp ,而Tcp= 2s 方式0最長可定時16.384ms; 方式1最長可定時131.072ms; 方式2最長可定時512s。晶振為12 MHz時,Tcy為1S。最長可定時65ms第21頁/共49頁2021-9-423確定方式字:T0在定時的方式1時:M1M0=01,GATE=0 ,C/T=0方式控制字為01H 求計數(shù)初值X:T

12、cy為1S N=10ms/1S=10 000X=65536-10000=D8F0H應將D8送TH0, F0H送TL0 第22頁/共49頁2021-9-424 ORG 0000H LJMP MAIN ORG 000BH LJMP DVT0 ORG 0100HMAIN:MOV TMOD,#01H ;置T0方式1 MOV TH0,#0D8H;裝入計數(shù)初值 MOV TL0,#0F0H SETB ET0 ;T0開中斷 SETB EA ;CPU開中斷 SETB TR0 ;啟動T0 SJMP $ ;等待中斷DVT0:CPL P1.0 MOV TH0,#0D8H MOV TL0,#0F0H RETI END主

13、程序中斷方式 中斷服務程序 數(shù)數(shù)源程序的四要素注意重裝初值,為什么?數(shù)數(shù)中斷的四要素第23頁/共49頁2021-9-425 ORG 0000H LJMP MAIN ORG 0100HMAIN:MOV TMOD,#01H ;置T0方式1LOOP:MOV TH0,#0D8H;裝入計數(shù)初值 MOV TL0,#0F0H SETB TR0 ;啟動T0 JNB TF0, $ ;查詢TF0標志 CLR TF0 ;T0溢出,清標志 CPL P1.0 ;P1.0的狀態(tài)求反 SJMP LOOP END主程序查詢方式 第24頁/共49頁2021-9-426 定時時間較大時(大于65ms)。實現(xiàn)方法:一是采用1個定時

14、器定時一定的間隔(如20ms),然后用軟件進行計數(shù);二是采用2個定時器級聯(lián),其中一個定時器用來產生周期信號(如20ms為周期),然后將該信號送入另一個計數(shù)器的外部脈沖輸入端進行脈沖計數(shù)。 第25頁/共49頁2021-9-427編寫程序,實現(xiàn)用定時/計數(shù)器T0定時,使P1.7引腳輸出周期為2s的方波。設系統(tǒng)的晶振頻率為12MHz。求計數(shù)初值X:Tcy為1S N=20ms/1S=20 000X=65536-20000=4E20H應將4EH送TH0, 20H送TL0 采用定時20ms,然后再計數(shù)50次的方法實現(xiàn)-用DJNZ指令 確定方式字:T0在定時的方式1時:M1M0=01,GATE=0 ,C/T

15、=0方式控制字為01H 第26頁/共49頁2021-9-428 ORG 0000H LJMP MAIN ORG 000BH LJMP DVT0 ORG 0030HMAIN:MOV TMOD,#01H;置T0方式1 MOV TH0,#4EH ;裝入計數(shù)初值 MOV TL0,#20H ;首次計數(shù)值 MOV R7,#50 ;計數(shù)50次 SETB ET0 ;T0開中斷 SETB EA ;CPU開中斷 SETB TR0 ;啟動T0 SJMP $ ;等待中斷DVT0:DJNZ R7,NT0 MOV R7,#50 CPL P1.7 NT0:MOV TH0,#4EH MOV TL0,#20H ;SETB TR

16、0 RETI END主程序 中斷服務程序 1S到在哪里? 第27頁/共49頁 將上述例題改寫成查詢方式,并在P1.0上輸出周期為2秒的方波。 ORG 0000HRESET: LJMP MAIN ;上電,轉主程序入口MAIN ORG 1000H MAIN: MOV SP,#60H ;設堆棧指針 MOV B,#0AH ;設循環(huán)次數(shù)10次 MOV TMOD,#01H ;設T0工作在方式1 MOV TL0,#0B0H ;給T0設初值 MOV TH0,#3CH SETB TR0 ;啟動T0LOOP1: JNB TF0,LOOP1 ;查詢TF0標志CLR TF0 ;T0溢出,清標志MOV TL0,#0B0

17、H ;T0溢出后,重裝初值MOV TH0,#3CH ; DJNZ B,LOOP1 ;滿10次了嗎?CPL P1.0 ;P1.0的狀態(tài)求反MOV B,#0AH ;設循環(huán)次數(shù)10次SJMP LOOP1END第28頁/共49頁 ORG 0000HRESET: LJMP MAIN ;上電,轉主程序入口MAIN ORG 1000H MAIN: MOV SP,#60H ;設堆棧指針 MOV TMOD,#01H ;設T0工作在方式1 SETB TR0 ;啟動T0CLR P1.0LOOP1: LCALLDEL1SCPL P1.0 ;P1.0的狀態(tài)求反SJMP LOOP1DEL1S: MOV B,#0AH ;設

18、循環(huán)次數(shù)10次LOOP11: MOV TL0,#0B0H ;T0溢出后,重裝初值MOV TH0,#3CH ;JNB TF0, $ ;查詢TF0標志CLR TF0 ;T0溢出,清標志DJNZ B,LOOP11 ;滿10次了嗎?RETEND第29頁/共49頁當T0(P3.4)引腳上發(fā)生負跳變時,從P1.0引腳上輸出一個周期為1ms的方波,如圖所示。(系統(tǒng)時鐘為6MHz)舉舉例例第30頁/共49頁1、有定時,有計數(shù)2、方式2的應用(免重裝初值)3、兩個中斷源本題分析:1、 T0為方式1計數(shù),初值 0FFFFH,即外部計數(shù)輸入端T0(P3.4)發(fā)生一次負跳變時,T0加1且溢出,溢出標志TF0置“1”,

19、發(fā)中斷請求。2、 T1定義為方式2定時。在T0腳發(fā)生一次負跳變后,啟動T1每500s產生一次中斷,在中斷服務程序中對P1.0求反,使P1.0產生周期1ms的方波。本題特點:第31頁/共49頁(1)T0、T1工作方式的確定 MOV TMOD, #00100101B ;各位的含義(2)計算T1初值 已知機器周期為2s,定時為500s 設T1的初值為X: 則 (28-X)210-6=510-4 S X=28-250=6=06H(3)主程序的設計 完成兩個定時器的初始化及中斷的初始化 注意根據(jù)題意,在合適的時刻啟動定時和開啟中斷 需要完成下列任務:第32頁/共49頁ORG 0000HRESET: LJ

20、MP MAIN ;復位入口轉主程序 ORG 000BH LJMP IT0P ;轉T0中斷服務程序 ORG 001BH LJMP IT1P ;轉T1中斷服務程序 ORG 0100HMAIN: MOV SP,#60H MOV TMOD,#25H ;T1為方式2定時,T0為方式1計數(shù) MOV TL0,#0FFH ;T0置初值 MOV TH0,#0FFH SETB TR0 ;啟動T0MOV TL1,#06H ;T1置初值 MOV TH1,#06HSETB ET0 ;允許T0中斷SETB EAHERE: AJMP HERE第33頁/共49頁 IT0P: CLR TR0 ;T0中斷服務程序,停止T0計數(shù)S

21、ETB TR1 ;啟動T1 SETB ET1 ;允許T1中斷 RETIIT1P: CPL P1.0 ;T1中斷服務,P1.0位取反RETIEND 兩個中斷服務主程序的設計:要求:畫出流程圖。在T1定時中斷服務程序IT1P中,省去了T1中斷服務程序中重新裝入初值06H的指令。第34頁/共49頁 GATE0可使定時器/計數(shù)器T0的啟動計數(shù)受INT0*的控制,可測量引腳INT0*(P3.2)上正脈沖的寬度(可理解為定時器的第三種工作方式“計時”)。門控制位GATE的應用測量脈沖寬度A00AINTGATEINT第35頁/共49頁2021-9-437門控位的應用【例5-8】 測量INT0引腳上出現(xiàn)的正脈

22、沖寬度,并將結果(以機器周期的形式)存放在30H和31H兩個單元中。 將T0設置為方式1的定時方式,且GATE=1,計數(shù)器初值為0,將TR0置1。 INT0引腳上出現(xiàn)高電平時,加1計數(shù)器開始對機器周期計數(shù)。 INT0引腳上信號變?yōu)榈碗娖綍r,停止計數(shù) 然后讀出TH0、TL0的值 T0設置為定時還是計數(shù)?第36頁/共49頁2021-9-438 ORG 0000H AJMP MAIN ORG 0200H MAIN:MOV TMOD,#09H ;置T0為定時器方式1,GATE=1 MOV TH0,#00H ;置計數(shù)初值 MOV TL0,#00H MOV R0,#31H ;置地址指針初值(指向低字節(jié))

23、L1:JB P3.2,L1 ;高電平等待 SETB TR0 ;當INT0由高變低時使TR0=1,準備好 L2:JNB P3.2,L2 ;等待INT0變高 L3:JB P3.2,L3 ;已變高,啟動定時,直到INT0變低 CLR TR0 ;INT0由高變低,停止定時 MOV R0,TL0 ;存結果 DEC R0 MOV R0,TH0 SJMP $ END第37頁/共49頁 ORG 0000H ;MUSIC LJMP START ORG 000BH LJMP INTT0START: MOV SP,#50H MOV TH0,#0D8H MOV TL0,#0EFH MOV TMOD,#01H MOV

24、IE,#82HMUSIC0: NOP MOV DPTR,#DAT MOV 20H,#00HMUSIC1: NOP CLR A MOVC A,A+DPTR JZ END0 CJNE A,#0FFH,MUSIC5 LJMP MUSIC3MUSIC5: NOP ;正常播放音樂 MOV R6,A INC DPTR MOV A,#0 MOVC A,A+DPTR MOV R7,A SETB TR0T0定時時間=(216-D8EFH)*12/12MHz=10ms音樂播放(C51music1.asm)第38頁/共49頁2021-9-440MUSIC4: NOP MOV R3,#0FFH LCALL DEL D

25、JNZ R2,MUSIC4 INC DPTR LJMP MUSIC1END0: NOP;音樂播放完 MOV R2,#0FFHMUSIC6: MOV R3,#00H LCALL DEL DJNZ R2,MUSIC6 LJMP MUSIC0MUSIC2: NOP CPL P1.5 MOV A,R6 MOV R3,A LCALL DEL MOV A,R7 CJNE A,20H,MUSIC2 MOV 20H,#00H INC DPTR LJMP MUSIC1MUSIC3: NOP;一小段音樂播放結束,延時 CLR TR0 MOV R2,#0DH音樂播放第39頁/共49頁2021-9-441DAT:DB

26、 18H,30H,1CH,10H, 20H,40H,1CH,10HDB 18H,10H,20H,10H,1CH,10H,18H,40HDB 1CH,20H,20H,20H,1CH,20H,18H,20HDB 20H,80H,0FFH,20H,30H,1CH,10H,18HDB 20H,15H,20H,1CH,20H,20H,20H,26HDB 40H,20H,20H,2BH,20H,26H,20H,20HDB 20H,30H,80H,0FFH,20H,20H,1CH,10HDB 18H,10H,20H,20H,26H,20H,2BH,20HDB 30H,20H,2BH,40H,20H,20H,

27、1CH,10HDB 18H,10H,20H,20H,26H,20H,2BH,20HDB 30H,20H,2BH,40H,20H,30H,1CH,10HDB 18H,20H,15H,20H,1CH,20H,20H,20HDB 26H,40H,20H,20H,2BH,20H,26H,20HDB 20H,20H,30H,80H,20H,30H,1CH,10HDEL: NOPDEL3: MOV R4,#02HDEL4: NOP DJNZ R4,DEL4 NOP DJNZ R3,DEL3 RETINTT0: INC 20H MOV TH0,#0D8H MOV TL0,#0EFH RETI第40頁/共49

28、頁2021-9-442DB 20H,10H,1CH,10H,20H,20H,26H,20H,2BH,20H,30H,20HDB 2BH,40H,20H,15H,1FH,05H,20H,10H, 1CH,10H,20H,20HDB 26H,20H,2BH,20H, 30H,20H,2BH,40H,20H,30H,1CH,10H DB 18H,20H,15H,20H,1CH,20H,20H,20H,26H,40H,20H,20HDB 2BH,20H,26H,20H,20H,20H,30H,30H,20H,30H,1CH,10HDB 18H,40H,1CH,20H,20H,20H,26H,40H,13H,60H,18H,20HDB 15H,40H,13H,40H

溫馨提示

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

評論

0/150

提交評論