第5章80C51的中斷系統(tǒng)及定時計數(shù)器(2)定時計數(shù)器_第1頁
第5章80C51的中斷系統(tǒng)及定時計數(shù)器(2)定時計數(shù)器_第2頁
第5章80C51的中斷系統(tǒng)及定時計數(shù)器(2)定時計數(shù)器_第3頁
第5章80C51的中斷系統(tǒng)及定時計數(shù)器(2)定時計數(shù)器_第4頁
第5章80C51的中斷系統(tǒng)及定時計數(shù)器(2)定時計數(shù)器_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第5 5章章 80C5180C51的中斷系統(tǒng)及定時的中斷系統(tǒng)及定時/ /計數(shù)器計數(shù)器2022-5-3180C51單片機的單片機的中斷系統(tǒng)中斷系統(tǒng)5.180C5180C51單片機的單片機的中斷處理過程中斷處理過程5.280C5180C51單片機的單片機的定時定時/ /計數(shù)器計數(shù)器5.380C5280C52的定時的定時/ /計數(shù)器計數(shù)器2(2(不講不講) )5.4提出要求:提出要求:1、有參與計數(shù)的實體(計數(shù)長度可變)、有參與計數(shù)的實體(計數(shù)長度可變)2、 有計數(shù)脈沖的引入,有溢出位有計數(shù)脈沖的引入,有溢出位3、可以置入初值、可以置入初值溢出溢出計數(shù)脈沖計數(shù)脈沖置入初值置入初值計數(shù)長度為計數(shù)長度

2、為n的計數(shù)器的計數(shù)器溢出溢出計數(shù)脈沖計數(shù)脈沖CP置入初值置入初值長度為長度為n的計數(shù)器的計數(shù)器長度為長度為n的計數(shù)器的計數(shù)器定時器定時器/計數(shù)器可計數(shù)器可由觸發(fā)器構成由觸發(fā)器構成計數(shù)狀態(tài)滿足計數(shù)狀態(tài)滿足一定條件時有一定條件時有輸出輸出有置入初值有置入初值的途徑的途徑最大計數(shù)長度:最大計數(shù)長度:CPn個2最大定時時間:最大定時時間:CPTn2對于加對于加1計數(shù)器,若初值為計數(shù)器,若初值為x,則記錄,則記錄m個脈沖后溢出。個脈沖后溢出。xmn2結論:為實現(xiàn)結論:為實現(xiàn)m個脈沖的計數(shù),則需置入初值個脈沖的計數(shù),則需置入初值x,mxn22 2、定時(延時)、定時(延時)t t1 1、計數(shù)、計數(shù)m m個

3、脈沖個脈沖任務的類型:任務的類型:計算:計算: 置入初值。置入初值。mxn2計算:計算: 置入初值。置入初值。mxTtmCPn25.3 80C51單片機的定時單片機的定時/計數(shù)器計數(shù)器2022-5-355.3.1 5.3.1 定時定時/ /計數(shù)器的結構和工作原理計數(shù)器的結構和工作原理 2種工作模式種工作模式:(1)計數(shù)器工作模式)計數(shù)器工作模式(2)定時器工作模式)定時器工作模式4種工作方式種工作方式(方式方式0-方式方式3)。由圖看到:由圖看到:1、兩個可編程的定時器、兩個可編程的定時器/計數(shù)器計數(shù)器T1、T0。2、出現(xiàn)的、出現(xiàn)的SFR有:有: TH0、TL0、TH1、TL1 TMOD、TC

4、ON借助于借助于SFR,實現(xiàn):,實現(xiàn):兩種不同的計數(shù)脈沖的引兩種不同的計數(shù)脈沖的引入,并借助于入,并借助于TMOD用于用于區(qū)分模式。區(qū)分模式。用用TMOD來安排來安排工作方式。工作方式。2022-5-37v定時定時/ /計數(shù)器的工作原理計數(shù)器的工作原理實質是實質是1616位加位加1 1計數(shù)器計數(shù)器v 定時器模式時,是對內部定時器模式時,是對內部機器周期機器周期計數(shù)。計數(shù)值乘以機計數(shù)。計數(shù)值乘以機器周期就是定時時間器周期就是定時時間 v 計數(shù)器模式時,是對計數(shù)器模式時,是對外部事件外部事件計數(shù)。脈沖由計數(shù)。脈沖由T0T0(P3.4P3.4)或或T1T1( (P3.5P3.5) )引腳輸入。引腳輸

5、入。 注意注意:(:(若若計數(shù)值計數(shù)值為為m m, ,計數(shù)初值計數(shù)初值為為X X) )溢出信號使溢出信號使TF0TF0或或TF1TF1置置1 1,并,并發(fā)出中斷請求發(fā)出中斷請求,1616位時有:位時有: m=65536-Xm=65536-X,或,或X=65536-mX=65536-m12MHz12MHz晶振時,計數(shù)頻率低于晶振時,計數(shù)頻率低于0.5MHz 0.5MHz GATE C/ T M1 M0 GATEM1C/ TM0定時器定時器T1定時器定時器T0TMOD(89H) D7 D6 D5 D4 D3 D2 D1 D02022-5-39M1M0工作方式說 明00方式013位定時/計數(shù)器01方

6、式116位定時/計數(shù)器10方式28位自動重裝定時/計數(shù)器11方式3T0分成兩個獨立的8位定時/計數(shù)器;T1此方式停止計數(shù)注意:注意:TMODTMOD不能進行位尋址不能進行位尋址 2022-5-310v控制寄存器控制寄存器TCONTCON 76543210TCONTF1TR1TF0TR0字節(jié)地址:88H2022-5-3115.3.3 5.3.3 定時定時/ /計數(shù)器的工作方式計數(shù)器的工作方式T0T0有方式有方式0 0、1 1、2 2、3 3;T1T1有方式有方式0 0、1 1、2 2。以。以T0T0為例說明。為例說明。v方式方式0 0:1313位方式位方式 2022-5-312 C/T=1 C/

7、T=1時,則為計數(shù)模式,有:時,則為計數(shù)模式,有: X= 2X= 21313-m= 8192-m-m= 8192-m C/T=0 C/T=0時,則為定時模式,有:時,則為定時模式,有: X= 2X= 21313-m = 8192-m-m = 8192-m,m=m=t t/Tcy/Tcy【例例5-35-3】若計數(shù)個數(shù)若計數(shù)個數(shù)m m 為為2 2,求計數(shù)初值。,求計數(shù)初值。 X= 8192 X= 81922=8190=1FFEH2=8190=1FFEH= 1 1111 1111 1110B= 1 1111 1111 1110B 初值計算:初值計算:上述初值如何分配給上述初值如何分配給TH0、TL0

8、注意注意:方式:方式0的計數(shù)初值高的計數(shù)初值高8位和低位和低5位確定麻煩位確定麻煩 ,實際,實際應用中常由應用中常由16位的方式位的方式1取代。取代。2022-5-313v方式方式1 1:1616位方式位方式 v X=2X=21616-m =65536-m -m =65536-m 計數(shù)范圍:計數(shù)范圍:1 16553665536v 計數(shù)初值要計數(shù)初值要分成分成2 2個字節(jié)個字節(jié)分別送入分別送入TH0TH0、TL0TL02022-5-314【例例5-45-4】若要求定時器若要求定時器T0T0工作于方式工作于方式1 1,定時時間為,定時時間為1ms1ms,當晶振為當晶振為6 MHz6 MHz時,求送

9、入時,求送入TH0TH0和和TL0TL0的計數(shù)初值各為多少?的計數(shù)初值各為多少?應怎樣送入應怎樣送入TH0TH0和和TL0TL0?由于晶振為由于晶振為6 MHz6 MHz,所以機器周期,所以機器周期TcyTcy為為2 2S S,因此:,因此:m =t/Tcym =t/Tcy=1=11010-3-3/2/21010-6-6500500X X2 21616-m -m 65536-50065536-5006503665036FE0CH FE0CH 也可以利用以下也可以利用以下2 2條指令完成:條指令完成:v MOV TL0,#(65536-500) MOV TL0,#(65536-500)MODMO

10、D 256 ; 256 ;余數(shù)余數(shù)為計數(shù)初值的為計數(shù)初值的低字節(jié)低字節(jié)v MOV TH0,#(65536-500) MOV TH0,#(65536-500)/ /256 ; 256 ; 商商為計數(shù)初值的為計數(shù)初值的高字節(jié)高字節(jié)用傳送指令分別將用傳送指令分別將FEHFEH送入送入TH0TH0中,中,0CH0CH送入送入TL0TL0中即可。中即可。舉例舉例2022-5-315v方式方式2 2:8 8位自動重裝方式位自動重裝方式 v X=2X=28 8-m =256-m -m =256-m 計數(shù)范圍:計數(shù)范圍:1 1256256v 特別適合與脈沖信號發(fā)生器特別適合與脈沖信號發(fā)生器2022-5-316

11、v方式方式3 3:(僅(僅T0T0有此方式,有此方式,T1T1的方式的方式3 3將停止計數(shù))將停止計數(shù)) v TL0 TL0進行進行8 8位定時位定時/ /計數(shù)計數(shù)v TH0 TH0進行進行8 8位定時(位定時(T1T1方式方式2 2時,可出借時,可出借TR1TR1、TF1TF1)2022-5-3175.3.4 5.3.4 定時定時/ /計數(shù)器用于外部中斷擴展計數(shù)器用于外部中斷擴展例:用例:用T0T0擴展一個外部中斷源。將擴展一個外部中斷源。將T0T0設置為計數(shù)器方式,設置為計數(shù)器方式,按方式按方式2 2工作,工作,TH0TH0、TL0TL0的初值均為的初值均為0FFH0FFH,T0T0允許中

12、斷,允許中斷,CPUCPU開放中斷。其初始化程序如下:開放中斷。其初始化程序如下: MOV TMOD,#06H ;MOV TMOD,#06H ;置置T0T0為計數(shù)器方式為計數(shù)器方式2 2 MOV TL0,#0FFH ; MOV TL0,#0FFH ;置計數(shù)初值置計數(shù)初值 MOV TH0,#0FFHMOV TH0,#0FFH SETB TR0 ; SETB TR0 ;啟動啟動T0T0工作工作 SETB EA ;CPUSETB EA ;CPU開中斷開中斷 SETB ET0 ;SETB ET0 ;允許允許T0T0中斷中斷 T0T0外部引腳上出現(xiàn)一個下降沿信號時,外部引腳上出現(xiàn)一個下降沿信號時,TL0

13、TL0計數(shù)加計數(shù)加1 1,產生,產生溢出,將溢出,將TF0TF0置置1 1,向,向CPUCPU發(fā)出中斷請求發(fā)出中斷請求 2022-5-3185.3.5 5.3.5 定時定時/ /計數(shù)器應用舉例計數(shù)器應用舉例初始化程序應完成:初始化程序應完成:v對對TMODTMOD賦值,以確定賦值,以確定T0T0和和T1T1的工作方式;的工作方式;v求初值求初值, ,并寫入并寫入TH0TH0、TL0TL0或或TH1TH1、TL1TL1;v使使TR0TR0或或TR1TR1置位,啟動定時置位,啟動定時/ /計數(shù)器工作。計數(shù)器工作。初始化程序設計初始化程序設計 (四條指令)(四條指令)MOV TMOD,#01HMOV

14、 TMOD,#01H ;設置;設置T0T0為方式為方式1 1MOV TH0,#0FEH MOV TH0,#0FEH ;T0T0置初值置初值MOV TL0,# 0CHMOV TL0,# 0CHSETB TR0SETB TR0兩種方式對溢出作出反應:查詢、中斷兩種方式對溢出作出反應:查詢、中斷2022-5-319中斷方式中斷方式:(常用):(常用)查詢方式:查詢方式:1 1、在主程序中進行中斷初始化、在主程序中進行中斷初始化2 2、計數(shù)(定時)結束后該做的事情放在中斷服務、計數(shù)(定時)結束后該做的事情放在中斷服務程序中程序中1 1、反復查詢是否溢出,如、反復查詢是否溢出,如JNB TF0JNB T

15、F0,$ $2 2、一旦發(fā)現(xiàn)溢出,及時清除溢出標志、一旦發(fā)現(xiàn)溢出,及時清除溢出標志3 3、然后安排計數(shù)(定時)結束后該做的事情、然后安排計數(shù)(定時)結束后該做的事情2022-5-320v計數(shù)應用計數(shù)應用【例例5-55-5】有一包裝流水線,產品每計數(shù)有一包裝流水線,產品每計數(shù)2424瓶時發(fā)出一個包瓶時發(fā)出一個包裝控制信號。試編寫程序完成這一計數(shù)任務。用裝控制信號。試編寫程序完成這一計數(shù)任務。用T0T0完成計數(shù),完成計數(shù),用用P1.0P1.0發(fā)出控制信號。發(fā)出控制信號。確定方式字:確定方式字:T0T0在計數(shù)的方式在計數(shù)的方式2 2時:時:M1M0=10M1M0=10,GATE=0 GATE=0 ,

16、C/T=1C/T=1方式控制字為方式控制字為06H06H 求計數(shù)初值求計數(shù)初值X:X:N=24N=24X=256-24=232=E8HX=256-24=232=E8H應將應將E8HE8H送入送入TH0TH0和和TL0TL0中中 2022-5-321 ORG 0000H ORG 0000H LJMP MAIN LJMP MAIN ORG 000BH ORG 000BH LJMP DVT0 LJMP DVT0 ORG 0100HORG 0100HMAIN:MOV TMOD,#06H ;MAIN:MOV TMOD,#06H ;置置T0T0計數(shù)方式計數(shù)方式2 2 MOV TH0,#0E8H; MOV

17、TH0,#0E8H;裝入計數(shù)初值裝入計數(shù)初值 MOV TL0,#0E8H MOV TL0,#0E8H SETB ET0 ;T0 SETB ET0 ;T0開中斷開中斷 SETB EA ;CPUSETB EA ;CPU開中斷開中斷 SETB TR0 ;SETB TR0 ;啟動啟動T0T0 SJMP $ ; SJMP $ ;等待中斷等待中斷DVT0:SETB P1.0 DVT0:SETB P1.0 NOP NOP NOP NOP CLR P1.0 CLR P1.0 RETI RETI END END主程序主程序 中斷服務程序中斷服務程序 2022-5-322v定時應用定時應用v 定時時間較小時(小于

18、定時時間較小時(小于65ms65ms)??芍苯硬捎梅绞健?芍苯硬捎梅绞? 1完成定時完成定時任務。任務。 兩種方式對溢出作出反應:查詢、中斷兩種方式對溢出作出反應:查詢、中斷v系統(tǒng)時鐘為系統(tǒng)時鐘為6MHz6MHz時,時,各種方式下的最長定時的計算:各種方式下的最長定時的計算:由最長定時由最長定時=2nTcp ,而而Tcp= 2 s 方式方式0最長可定時最長可定時16.384ms; 方式方式1最長可定時最長可定時131.072ms; 方式方式2最長可定時最長可定時512 s。v晶振為晶振為12 MHz12 MHz時,時,TcyTcy為為1 1S S。最長可定時最長可定時65ms65ms2022-

19、5-323確定方式字:確定方式字:T0T0在定時的方式在定時的方式1 1時:時:M1M0=01M1M0=01,GATE=0 GATE=0 ,C/T=0C/T=0方式控制字為方式控制字為0101H H 求計數(shù)初值求計數(shù)初值X:X:TcyTcy為為1 1S S N=10ms/1N=10ms/1S=10S=10 000000X=65536-10000=D8F0HX=65536-10000=D8F0H應將應將D8D8送送TH0, F0HTH0, F0H送送TL0TL0 舉例舉例2022-5-324 ORG 0000H ORG 0000H LJMP MAIN LJMP MAIN ORG 000BH OR

20、G 000BH LJMP DVT0 LJMP DVT0 ORG 0100HORG 0100HMAIN:MOV TMOD,#01H ;MAIN:MOV TMOD,#01H ;置置T0T0方式方式1 1 MOV TH0,#0D8H; MOV TH0,#0D8H;裝入計數(shù)初值裝入計數(shù)初值 MOV TL0,#0F0H MOV TL0,#0F0H SETB ET0 ;T0SETB ET0 ;T0開中斷開中斷 SETB EA ;CPUSETB EA ;CPU開中斷開中斷 SETB TR0 ;SETB TR0 ;啟動啟動T0T0 SJMP $ ; SJMP $ ;等待中斷等待中斷DVT0:CPL P1.0

21、DVT0:CPL P1.0 MOV TH0,#0D8H MOV TH0,#0D8H MOV TL0,#0F0H MOV TL0,#0F0H RETI RETI END END主程序主程序中斷方式中斷方式 中斷服務程序中斷服務程序 數(shù)數(shù)源程序的數(shù)數(shù)源程序的四要素四要素注意重裝初值,注意重裝初值,為什么?為什么?數(shù)數(shù)中斷的四數(shù)數(shù)中斷的四要素要素2022-5-325 ORG 0000H ORG 0000H LJMP MAIN LJMP MAIN ORG 0100H ORG 0100HMAIN:MOV TMOD,#01H ;MAIN:MOV TMOD,#01H ;置置T0T0方式方式1 1LOOP:M

22、OV TH0,#0D8HLOOP:MOV TH0,#0D8H; ;裝入計數(shù)初值裝入計數(shù)初值 MOV TL0,#0F0H MOV TL0,#0F0H SETB TR0 SETB TR0 ; ;啟動啟動T0T0 JNB TF0, $ JNB TF0, $ ;查詢;查詢TF0TF0標志標志 CLR TF0 CLR TF0 ;T0T0溢出,清標志溢出,清標志 CPL P1.0 CPL P1.0 ;P1.0P1.0的狀態(tài)求反的狀態(tài)求反 SJMP LOOPSJMP LOOP END END主程序主程序查詢方式查詢方式 2022-5-326v 定時時間較大時(大于定時時間較大時(大于65ms65ms)。實現(xiàn)

23、方法:。實現(xiàn)方法:v一是采用一是采用1 1個定時器定時一定的間隔(如個定時器定時一定的間隔(如20ms20ms),然后用軟件),然后用軟件進行計數(shù);進行計數(shù);v二是采用二是采用2 2個定時器級聯(lián),其中一個定時器用來產生周期信號個定時器級聯(lián),其中一個定時器用來產生周期信號(如(如20ms20ms為周期),然后將該信號送入另一個計數(shù)器的外部脈為周期),然后將該信號送入另一個計數(shù)器的外部脈沖輸入端進行脈沖計數(shù)。沖輸入端進行脈沖計數(shù)。 【例例5-7】2022-5-327編寫程序,實現(xiàn)用定時編寫程序,實現(xiàn)用定時/ /計數(shù)器計數(shù)器T0T0定時,使定時,使P1.7P1.7引腳輸出周引腳輸出周期為期為2s2s

24、的方波。設系統(tǒng)的晶振頻率為的方波。設系統(tǒng)的晶振頻率為12MHz12MHz。求計數(shù)初值求計數(shù)初值X:X:TcyTcy為為1 1S S N=20ms/1N=20ms/1S=20S=20 000000X=65536-20000=4E20HX=65536-20000=4E20H應將應將4EH4EH送送TH0, 20HTH0, 20H送送TL0TL0 采用定時采用定時20ms20ms,然后再計數(shù),然后再計數(shù)5050次的方法實現(xiàn)次的方法實現(xiàn)-用用DJNZDJNZ指令指令 確定方式字:確定方式字:T0T0在定時的方式在定時的方式1 1時:時:M1M0=01M1M0=01,GATE=0 GATE=0 ,C/T

25、=0C/T=0方式控制字為方式控制字為0101H H 2022-5-328 ORG 0000H ORG 0000H LJMP MAIN LJMP MAIN ORG 000BH ORG 000BH LJMP DVT0 LJMP DVT0 ORG 0030HORG 0030HMAIN:MOV TMOD,#01H;MAIN:MOV TMOD,#01H;置置T0T0方式方式1 1 MOV TH0,#4EH ; MOV TH0,#4EH ;裝入計數(shù)初值裝入計數(shù)初值 MOV TL0,#20H ;MOV TL0,#20H ;首次計數(shù)值首次計數(shù)值 MOV R7,#50MOV R7,#50 ; ;計數(shù)計數(shù)505

26、0次次 SETB ET0 ;T0 SETB ET0 ;T0開中斷開中斷 SETB EA ;CPUSETB EA ;CPU開中斷開中斷 SETB TR0 ;SETB TR0 ;啟動啟動T0T0 SJMP $ ; SJMP $ ;等待中斷等待中斷DVT0:DJNZ R7,NT0DVT0:DJNZ R7,NT0 MOV R7,#50 MOV R7,#50 CPL P1.7 CPL P1.7 NT0:MOV TH0,#4EH NT0:MOV TH0,#4EH MOV TL0,#20H MOV TL0,#20H ;SETB TR0SETB TR0 RETI RETI END END主程序主程序 中斷服務

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

28、 TF0,LOOP1 ;查詢;查詢TF0標志標志CLR TF0 ;T0溢出,清標志溢出,清標志MOV TL0,#0B0H ;T0溢出后溢出后,重裝初值,重裝初值MOV TH0,#3CH ; DJNZ B,LOOP1 ;滿;滿10次了嗎?次了嗎?CPL P1.0 ;P1.0的狀態(tài)求反的狀態(tài)求反MOV B,#0AH ;設循環(huán)次數(shù);設循環(huán)次數(shù)10次次SJMP LOOP1END ORG 0000HRESET: LJMP MAIN ;上電,轉主程序入口;上電,轉主程序入口MAIN ORG 1000H MAIN: MOV SP,#60H ;設堆棧指針;設堆棧指針 MOV TMOD,#01H ;設;設T0工

29、作在方式工作在方式1 SETB TR0 ;啟動;啟動T0CLR P1.0LOOP1:LCALL DEL1SCPL P1.0 ;P1.0的狀態(tài)求反的狀態(tài)求反SJMP LOOP1DEL1S: MOV B,#0AH ;設循環(huán)次數(shù);設循環(huán)次數(shù)10次次LOOP11:MOV TL0,#0B0H ;T0溢出后溢出后,重裝初值,重裝初值MOV TH0,#3CH ;JNB TF0, $ ;查詢;查詢TF0標志標志CLR TF0 ;T0溢出,清標志溢出,清標志DJNZ B,LOOP11 ;滿;滿10次了嗎?次了嗎?RETEND當當T0T0(P3.4P3.4)引腳上發(fā)生負跳變時,從)引腳上發(fā)生負跳變時,從P1.0P

30、1.0引腳上輸出一引腳上輸出一個周期為個周期為1ms1ms的方波的方波, ,如圖所示。(系統(tǒng)時鐘為如圖所示。(系統(tǒng)時鐘為6MHz6MHz)舉例舉例1 1、有定時,有計數(shù)、有定時,有計數(shù)2 2、方式、方式2 2的應用(免重裝初值)的應用(免重裝初值)3 3、兩個中斷源、兩個中斷源本題分析:本題分析:1 1、 T0T0為方式為方式1 1計數(shù),初值計數(shù),初值 0FFFFH0FFFFH,即外部計數(shù)輸入端,即外部計數(shù)輸入端T0T0(P3.4P3.4)發(fā)生一次負跳變時,)發(fā)生一次負跳變時,T0T0加加1 1且溢出,溢出標且溢出,溢出標志志TF0TF0置置“1”1”,發(fā)中斷請求。,發(fā)中斷請求。2 2、 T1

31、T1定義為方式定義為方式2 2定時。在定時。在T0T0腳發(fā)生一次負跳變后,啟腳發(fā)生一次負跳變后,啟動動T1T1每每500500 s s產生一次中斷,在中斷服務程序中對產生一次中斷,在中斷服務程序中對P1.0P1.0求反,使求反,使P1.0P1.0產生周期產生周期1ms1ms的方波。的方波。本題特點:本題特點:(1)T0、T1工作方式的確定工作方式的確定 MOV TMOD, #00100101B ;各位的含義各位的含義(2)計算)計算T1初值初值 已知機器周期為已知機器周期為2 s,定時為定時為500 s 設設T1的初值為的初值為X: 則則 (28-X)210-6=510-4 S X=28-25

32、0=6=06H(3)主程序的設計)主程序的設計 完成兩個定時器的初始化及中斷的初始化完成兩個定時器的初始化及中斷的初始化 注意根據(jù)題意,在注意根據(jù)題意,在合適的時刻合適的時刻啟動定時和開啟中斷啟動定時和開啟中斷 需要完成下列任務:需要完成下列任務:ORG 0000HRESET: LJMP MAIN ;復位入口轉主程序;復位入口轉主程序 ORG 000BH LJMP IT0P ;轉;轉T0中斷服務程序中斷服務程序 ORG 001BH LJMP IT1P ;轉;轉T1中斷服務程序中斷服務程序 ORG 0100HMAIN: MOV SP,#60H MOV TMOD,#25H ;T1為方式為方式2定時

33、,定時,T0為方式為方式1計數(shù)計數(shù) MOV TL0,#0FFH ;T0置初值置初值 MOV TH0,#0FFH SETB TR0 ;啟動;啟動T0MOV TL1,#06H ;T1置初值置初值 MOV TH1,#06HSETB ET0 ;允許;允許T0中斷中斷SETB EAHERE: AJMP HERE IT0P: CLR TR0 ;T0中斷服務程序,停止中斷服務程序,停止T0計數(shù)計數(shù)SETB TR1 ;啟動;啟動T1 SETB ET1 ;允許;允許T1中斷中斷 RETIIT1P: CPL P1.0;T1中斷服務,中斷服務,P1.0位取反位取反RETIEND 兩個中斷服務主程序的設計:兩個中斷服

34、務主程序的設計:要求:畫出流程圖。要求:畫出流程圖。在在T1定時中斷服務程序定時中斷服務程序IT1P中,省去了中,省去了T1中斷服務中斷服務程序中重新裝入初值程序中重新裝入初值06H的指令。的指令。 GATE0GATE0可使定時器可使定時器/ /計數(shù)器計數(shù)器T0T0的的啟動計數(shù)啟動計數(shù)受受INT0INT0* *的控的控制,可測量引腳制,可測量引腳INT0INT0* *(P3.2P3.2)上正脈沖的寬度)上正脈沖的寬度(可理(可理解為定時器的第三種工作方式解為定時器的第三種工作方式“計時計時”)。)。門控制位門控制位GATEGATE的應用的應用測量脈沖寬度測量脈沖寬度A00AINTGATEINT

35、2022-5-337v門控位的應用門控位的應用【例例5-85-8】 測量測量INT0INT0引腳上出引腳上出現(xiàn)的正脈沖寬度,并將結果現(xiàn)的正脈沖寬度,并將結果(以機器周期的形式)存放在(以機器周期的形式)存放在30H30H和和31H31H兩個單元中。兩個單元中。v 將將T0T0設置為方式設置為方式1 1的定的定時方式,且時方式,且GATE=1GATE=1,計數(shù),計數(shù)器初值為器初值為0 0,將,將TR0TR0置置1 1。 vINT0INT0引腳上出現(xiàn)高電平引腳上出現(xiàn)高電平時,加時,加1 1計數(shù)器開始對機計數(shù)器開始對機器周期計數(shù)。器周期計數(shù)。 vINT0INT0引腳上信號變?yōu)橐_上信號變?yōu)榈碗娖綍r,

36、停止計數(shù)低電平時,停止計數(shù) v然后讀出然后讀出TH0TH0、TL0TL0的值的值 T0設置為定時還是設置為定時還是計數(shù)?計數(shù)?2022-5-338 ORG 0000H ORG 0000H AJMP MAIN AJMP MAIN ORG 0200H ORG 0200H MAIN:MOV TMOD,#09H ; MAIN:MOV TMOD,#09H ;置置T0T0為定時器方式為定時器方式1 1,GATE=1GATE=1 MOV TH0,#00H ; MOV TH0,#00H ;置計數(shù)初值置計數(shù)初值 MOV TL0,#00HMOV TL0,#00H MOV R0,#31H ; MOV R0,#31H

37、 ;置地址指針初值(指向低字節(jié))置地址指針初值(指向低字節(jié)) L1:JB P3.2,L1 ;L1:JB P3.2,L1 ;高電平等待高電平等待 SETB TR0 ;SETB TR0 ;當當INT0INT0由高變低時使由高變低時使TR0=1TR0=1,準備好,準備好 L2:JNB P3.2,L2 ;L2:JNB P3.2,L2 ;等待等待INT0INT0變高變高 L3:JB P3.2,L3 ; L3:JB P3.2,L3 ;已變高,啟動定時,直到已變高,啟動定時,直到INT0INT0變低變低 CLR TR0 ;INT0 CLR TR0 ;INT0由高變低,停止定時由高變低,停止定時 MOV R0

38、,TL0 ;MOV R0,TL0 ;存結果存結果 DEC R0DEC R0 MOV R0,TH0 MOV R0,TH0 SJMP $ SJMP $ END END ORG ORG 0000H ;MUSIC0000H ;MUSIC LJMP START LJMP START ORG 000BH ORG 000BH LJMP INTT0 LJMP INTT0START: MOV SP,#50HSTART: MOV SP,#50H MOV TH0,#0D8H MOV TH0,#0D8H MOV TL0,#0EFH MOV TL0,#0EFH MOV TMOD,#01H MOV TMOD,#01H M

39、OV IE,#82H MOV IE,#82HMUSIC0: NOPMUSIC0: NOP MOV DPTR,#DAT MOV DPTR,#DAT MOV 20H,#00H MOV 20H,#00HMUSIC1: NOPMUSIC1: NOP CLR A CLR A MOVC A,A+DPTR MOVC A,A+DPTR JZ END0 JZ END0 CJNE A,#0FFH,MUSIC5 CJNE A,#0FFH,MUSIC5 LJMP MUSIC3 LJMP MUSIC3MUSIC5: NOP ;MUSIC5: NOP ;正常播放音正常播放音樂樂 MOV R6,A MOV R6,A INC

40、 DPTR INC DPTR MOV A,#0 MOV A,#0 MOVC A,A+DPTR MOVC A,A+DPTR MOV R7,A MOV R7,A SETB TR0 SETB TR0T0定時時間=(216-D8EFH)*12/12MHz=10msv音樂播放音樂播放(C51music1.asm)2022-5-340MUSIC4: NOPMUSIC4: NOP MOV R3,#0FFH MOV R3,#0FFH LCALL DEL LCALL DEL DJNZ R2,MUSIC4 DJNZ R2,MUSIC4 INC DPTR INC DPTR LJMP MUSIC1 LJMP MUSI

41、C1END0: NOPEND0: NOP; ;音音樂樂播放完播放完 MOV R2,#0FFH MOV R2,#0FFHMUSIC6: MOV R3,#00HMUSIC6: MOV R3,#00H LCALL DEL LCALL DEL DJNZ R2,MUSIC6 DJNZ R2,MUSIC6 LJMP MUSIC0 LJMP MUSIC0MUSIC2: NOPMUSIC2: NOP CPL P1.5 CPL P1.5 MOV A,R6 MOV A,R6 MOV R3,A MOV R3,A LCALL DEL LCALL DEL MOV A,R7 MOV A,R7 CJNE A,20H,MUS

42、IC2 CJNE A,20H,MUSIC2 MOV 20H,#00H MOV 20H,#00H INC DPTR INC DPTR LJMP MUSIC1 LJMP MUSIC1MUSIC3: NOPMUSIC3: NOP; ;一小段音一小段音樂樂播放播放結結束,延束,延時時 CLR TR0 CLR TR0 MOV R2,#0DH MOV R2,#0DHv音樂播放音樂播放2022-5-341DAT:DAT:DB DB 18H,30H18H,30H,1CH,10H,1CH,10H, , 20H,40H,1CH,10H 20H,40H,1CH,10HDB 18H,10H,20H,10H,1CH,1

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

44、BH,20H,26H,20H,20HDB 20H,30H,80H,DB 20H,30H,80H,0FFH0FFH,20H,20H,1CH,10H,20H,20H,1CH,10HDB 18H,10H,20H,20H,26H,20H,2BH,20HDB 18H,10H,20H,20H,26H,20H,2BH,20HDB 30H,20H,2BH,40H,20H,20H,1CH,10HDB 30H,20H,2BH,40H,20H,20H,1CH,10HDB 18H,10H,20H,20H,26H,20H,2BH,20HDB 18H,10H,20H,20H,26H,20H,2BH,20HDB 30H,2

45、0H,2BH,40H,20H,30H,1CH,10HDB 30H,20H,2BH,40H,20H,30H,1CH,10HDB 18H,20H,15H,20H,1CH,20H,20H,20HDB 18H,20H,15H,20H,1CH,20H,20H,20HDB 26H,40H,20H,20H,2BH,20H,26H,20HDB 26H,40H,20H,20H,2BH,20H,26H,20HDB 20H,20H,30H,80H,20H,30H,1CH,10HDB 20H,20H,30H,80H,20H,30H,1CH,10HDEL: NOPDEL: NOPDEL3: MOV R4,#02HDEL

46、3: MOV R4,#02HDEL4: NOPDEL4: NOP DJNZ R4,DEL4 DJNZ R4,DEL4 NOP NOP DJNZ R3,DEL3 DJNZ R3,DEL3 RET RETINTT0: INC 20HINTT0: INC 20H MOV MOV TH0,#0D8HTH0,#0D8H MOV MOV TL0,#0EFHTL0,#0EFH RETI RETI2022-5-342DB 20H,10H,1CH,10H,20H,20H,26H,20H,2BH,20H,30H,20HDB 20H,10H,1CH,10H,20H,20H,26H,20H,2BH,20H,30H,2

47、0HDB 2BH,40H,20H,15H,1FH,05H,20H,10H, 1CH,10H,20H,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 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 18H,20H,15H,20H,1CH,20H,20H,20H,26H,40H

48、,20H,20HDB 2BH,20H,26H,20H,20H,20H,30H,30H,20H,30H,1CH,10HDB 2BH,20H,26H,20H,20H,20H,30H,30H,20H,30H,1CH,10HDB 18H,40H,1CH,20H,20H,20H,26H,40H,13H,60H,18H,20HDB 18H,40H,1CH,20H,20H,20H,26H,40H,13H,60H,18H,20HDB 15H,40H,13H,40H,18H,80H,DB 15H,40H,13H,40H,18H,80H,00H00HENDEND實時時鐘的設計實時時鐘的設計1、實時時鐘實現(xiàn)的基本思想、實時時鐘實現(xiàn)的基本思想2、程序設計、程序設計(1)主程序的設計)主程序的設計(2)中斷服務程序的設計)中斷服務程序的設計 涉及到的話題:涉及到的話題:(1)1秒鐘的實現(xiàn)秒鐘的實現(xiàn)(2)數(shù)據(jù)的規(guī)劃)數(shù)據(jù)的規(guī)劃-時、分、秒的數(shù)據(jù)存放時、分、秒的數(shù)據(jù)存放 (3)六十進制加法、二十四進制加法的實現(xiàn)、

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論