版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、第06章 單片機定時計數(shù)器6.1 定時/計數(shù)器結(jié)構(gòu)6.2 定時/計數(shù)器工作方式6.2.1 工作方式06.2.2 工作方式16.2.3 工作方式26.2.4 工作方式36.3 全自動洗衣機定時控制Proteus仿真計數(shù)器的溢出空間可隨計數(shù)初值改變定時時間tt =(計數(shù)器最大值-計數(shù)初值)機器周期 =(2n-a)12/fosc (微秒)基本工作原理:定時時間定時時間t與與n、x、fosc三個因素有關(guān)三個因素有關(guān)TFx(X = 0、1)6.1 定時/計數(shù)器結(jié)構(gòu)1 1工作方式寄存器(工作方式寄存器(TMOD 89H)TMOD 89H)位位D7D6D5D4D3D2D1D0位符號位符號GATEC/C/T
2、TM1M0GATEC/C/T TM1M0T1方式字段方式字段T0方式字段方式字段 GATE:門控位。GATE = 0 啟動不受 /INT0或 /INT1的控制;GATE = 1 啟動受 /INT0 或 /INT1 的控制。C/ : 外部計數(shù)器 / 定時器方式選擇位。C/ = 0 定時方式;C/ = 1 計數(shù)方式。 TTTTM1M0:工作模式選擇位。 M1 M0工作方式 方式說明 0 0方式013位定時器/計數(shù)器 0 1方式116位定時器/計數(shù)器 1 0方式2具有自動重裝初值的8位定時器/計數(shù)器 1 1方式3T0為兩個獨立的8位計數(shù)器,T1為波特率發(fā)生器定時定時/ /計數(shù)器控制寄存器(計數(shù)器控制
3、寄存器(TCON 88H)TCON 88H) 位位D7D6D5D4D3D2D1D0位符號位符號TF1TR1TF0TR0IE1IT1IE0IT0TR0:定時 / 計數(shù)器0運行控制位。軟件置位/復位。與GATE有關(guān)分兩種情況: GATE = 0 時:若TR0 = 1,開啟T0;若TR0 = 0,停止T0。 GATE = 1 時:若TR0 = 1 且/INT0 = 1時,開啟T0; 若TR0 = 1 但 /INT0 = 0,則不能開啟T0。 若TR0 = 0, 停止T0計數(shù)。6.2 6.2 定時器定時器/ /計數(shù)器的工作方式計數(shù)器的工作方式6.2.6.2.工作方式工作方式 M1M0=00M1M0=0
4、0 工作方式0:13位計數(shù)。TH的8位和TL的低5位1-81921-8192在工作方式在工作方式0 0下,計數(shù)器的計數(shù)值由下式確定:下,計數(shù)器的計數(shù)值由下式確定:2 21313-X=8192-X-X=8192-X計數(shù)值范圍是:計數(shù)值范圍是: 1 181928192(2 21313)定時器的定時值由下式確定:定時器的定時值由下式確定:T=NT=N* *Tcy=(8192-X)Tcy=(8192-X)* *TcyTcy 【例例6.2-16.2-1】LEDLED指示指示/ /提示燈。提示燈。在大多數(shù)單片機應用系統(tǒng)中,都需要用在大多數(shù)單片機應用系統(tǒng)中,都需要用LEDLED的點亮或的點亮或熄滅做狀態(tài)指示
5、,用熄滅做狀態(tài)指示,用LEDLED的閃爍做狀態(tài)提示的閃爍做狀態(tài)提示, ,如圖如圖6.2-6.2-2 2所示。所示。LEDLED的點亮時間、熄滅時間都可以用定時器的點亮時間、熄滅時間都可以用定時器控制。編寫程序控制控制。編寫程序控制P1.7P1.7引腳上的引腳上的LEDLED閃爍,閃爍周閃爍,閃爍周期為期為600s600s。計算計數(shù)初值。欲產(chǎn)生周期為計算計數(shù)初值。欲產(chǎn)生周期為600s600s的等寬方波脈的等寬方波脈沖,只需在沖,只需在P1.7P1.7端交替輸出端交替輸出300s300s的高低電平即可,的高低電平即可,因此定時時間應為因此定時時間應為300s300s。設計數(shù)初值為。設計數(shù)初值為X
6、X,則有:,則有:(213-X213-X)2 210-6=30010-6=30010-610-6X=7892=1ED4HX=7892=1ED4H0001111011010100B0001111011010100B將將X X的低的低5 5位位01010B01010B寫入寫入TL1TL1的低的低5 5位,因位,因TL1TL1有有8 8位,其高位,其高3 3位填位填0 0,即,即TL1=11010100B=1EHTL1=11010100B=1EH。將。將NN的高的高8 8位位00011110B=D4H00011110B=D4H寫入寫入TH1TH1。TMODTMOD初始化。題目要求定時器初始化。題目要
7、求定時器/ /計數(shù)器計數(shù)器1 1為工作方為工作方式式0 0,所以,所以M1M0=00M1M0=00;為實現(xiàn)定時功能應使;為實現(xiàn)定時功能應使C/=0C/=0;為實現(xiàn)定時器內(nèi)啟動,應使為實現(xiàn)定時器內(nèi)啟動,應使GATE=0GATE=0。此題目不涉。此題目不涉及定時器及定時器/ /計數(shù)器計數(shù)器0 0,為方便起見,設其各控制位均,為方便起見,設其各控制位均為為0 0。則工作方式控制寄存器。則工作方式控制寄存器TMOD=00HTMOD=00H。 啟動和停止控制。因為定時器啟動和停止控制。因為定時器/ /計數(shù)器計數(shù)器1 1為內(nèi)啟動,為內(nèi)啟動,故當故當TR1=1TR1=1時,啟動計數(shù);當時,啟動計數(shù);當TR1
8、=0TR1=0時,停止計數(shù)。時,停止計數(shù)。 中斷的開放中斷的開放/ /禁止。題目中要求用查詢方式檢查禁止。題目中要求用查詢方式檢查T1T1的計數(shù)溢出狀態(tài),故設置的計數(shù)溢出狀態(tài),故設置IE=00HIE=00H,以關(guān)中斷。,以關(guān)中斷。ORG 0000H ORG 0000H LJMP START LJMP START ; ;轉(zhuǎn)移到主程序轉(zhuǎn)移到主程序ORG 0100H ORG 0100H ; ;主程序從主程序從0100H0100H開始開始START: MOV TCON,#00H START: MOV TCON,#00H MOV TMOD,#00H MOV TMOD,#00H ; ;工作方式設定工作方式
9、設定MOV TH1,#0FBH MOV TH1,#0FBH ; ;計數(shù)初值設定計數(shù)初值設定MOV TL1,#0AHMOV TL1,#0AHMOV IE,#00H MOV IE,#00H ; ;關(guān)中斷關(guān)中斷SETB TR1 SETB TR1 ; ;啟動計數(shù)器啟動計數(shù)器1 1LOOP0:JBC TF1,LOOP1 LOOP0:JBC TF1,LOOP1 ; ;查詢是否溢出查詢是否溢出SJMP LOOP0SJMP LOOP0; ;無溢出,查詢等待無溢出,查詢等待LOOP1:MOV TH1,#0FBH LOOP1:MOV TH1,#0FBH ; ;重設初值重設初值 MOV TL1,#0AHMOV TL
10、1,#0AH CPL P1.7 CPL P1.7 ; ;輸出取反輸出取反 SJMP LOOP0SJMP LOOP0ENDEND 6.2.2.6.2.2.定時定時/ /計數(shù)器工作方式計數(shù)器工作方式1 1 M1M0=01M1M0=01 P3.4P3.21-65536在工作方式在工作方式1 1下,計數(shù)器的計數(shù)值由下式確定:下,計數(shù)器的計數(shù)值由下式確定:2 21616-X=65536-X-X=65536-X計數(shù)值范圍是:計數(shù)值范圍是: 1 16553665536(2 21616) 定時時間長定時器的定時值由下式確定:定時器的定時值由下式確定:T=NT=N* *Tcy=(65536-X)Tcy=(655
11、36-X)* *TcyTcy 【例例6.2-26.2-2】聲音報警。聲音報警。(1)(1)計算計數(shù)初值。欲產(chǎn)生周期為計算計數(shù)初值。欲產(chǎn)生周期為1000s1000s的等寬方波的等寬方波脈沖,只需在脈沖,只需在P1.7P1.7端交替輸出端交替輸出500s500s的高低電平即可,的高低電平即可,因此定時時間應為因此定時時間應為500s500s。設計數(shù)初值為。設計數(shù)初值為X X,則有:,則有:(216-X216-X)2 210-6=50010-6=50010-610-6X=65536-500=65036X=65536-500=65036FE0CHFE0CH將將X X的低的低8 8位位0CH0CH寫入寫
12、入TL1TL1,將,將NN的高的高8 8位位FEHFEH寫入寫入TH1TH1。(2)TMOD(2)TMOD初始化。題目要求定時器初始化。題目要求定時器/ /計數(shù)器計數(shù)器1 1為工作為工作方式,所以方式,所以M1M0=01M1M0=01;為實現(xiàn)定時功能應使;為實現(xiàn)定時功能應使C/=0C/=0;為實現(xiàn)定時器內(nèi)啟動,應使為實現(xiàn)定時器內(nèi)啟動,應使GATE=0GATE=0。此題目不涉及。此題目不涉及定時器定時器/ /計數(shù)器計數(shù)器0 0,為方便起見,設其各控制位均為,為方便起見,設其各控制位均為0 0。則工作方式控制寄存器則工作方式控制寄存器TMOD=10HTMOD=10H。(3)(3)啟動和停止控制。因
13、為定時器啟動和停止控制。因為定時器/ /計數(shù)器計數(shù)器1 1為內(nèi)啟動,為內(nèi)啟動,故當故當TR1=1TR1=1時,啟動計數(shù);當時,啟動計數(shù);當TR1=0TR1=0時,停止計數(shù)。時,停止計數(shù)。(4)(4)中斷的開放中斷的開放/ /禁止。題目中要求用查詢方式檢查禁止。題目中要求用查詢方式檢查T1T1的計數(shù)溢出狀態(tài),故設置的計數(shù)溢出狀態(tài),故設置IE=00HIE=00H,以關(guān)中斷。,以關(guān)中斷。ORG 0000H ORG 0000H ; ;在在0000H0000H單元存放轉(zhuǎn)移指令單元存放轉(zhuǎn)移指令LJMP START LJMP START ; ;轉(zhuǎn)移到主程序轉(zhuǎn)移到主程序ORG 0100H ORG 0100H
14、; ;主程序從主程序從0100H0100H開始開始START:MOV TCON,#00H START:MOV TCON,#00H MOV TMOD,#10H MOV TMOD,#10H ; ;工作方式工作方式1 1設定設定 MOV TH1,#0FEH MOV TH1,#0FEH MOV TL1,#0CHMOV TL1,#0CH MOV IE,#00H MOV IE,#00H ; ;關(guān)中斷關(guān)中斷 SETB TR1 SETB TR1 ; ;啟動計數(shù)器啟動計數(shù)器1 1LOOP0:JBC TF1,LOOP1 LOOP0:JBC TF1,LOOP1 ; ;查詢是否溢出查詢是否溢出 SJMP LOOP0S
15、JMP LOOP0; ;無溢出,查詢等待無溢出,查詢等待LOOP1:CLR TF1LOOP1:CLR TF1MOV TH1,#0FEH MOV TH1,#0FEH ; ;重設初值重設初值 MOV TL1,#0CHMOV TL1,#0CH CPL P1.7 CPL P1.7 ; ;輸出取反輸出取反 SJMP LOOP0SJMP LOOP0; ;返回狀態(tài)查詢返回狀態(tài)查詢ENDEND 6.2.36.2.3定時定時/ /計數(shù)器工作方式計數(shù)器工作方式2 2 M1M0=10M1M0=101 1256256工作在方式下,計數(shù)器的計數(shù)值由下式確定:工作在方式下,計數(shù)器的計數(shù)值由下式確定: 2 28 8-X=2
16、56-X-X=256-X 計數(shù)范圍為計數(shù)范圍為: : 1 1256256 定時準確定時準確定時器的定時值由下式確定:定時器的定時值由下式確定: T=NT=N* *Tcy=(256-X)Tcy=(256-X)* *TcyTcy 【例例6.2-36.2-3】數(shù)字秒表。利用單片機數(shù)字秒表。利用單片機定時定時0-90-9秒,一位數(shù)碼管顯示。秒,一位數(shù)碼管顯示。計算計數(shù)初值計算計數(shù)初值X, X, 定時定時250us250us(28-X28-X)1 110-6=25010-6=25010-610-6 X=6=06H X=6=06HTMODTMOD初始化。工作方式初始化。工作方式2 2時,時,M1M0=10
17、M1M0=10,實現(xiàn),實現(xiàn)定時功能定時功能C/=0C/=0,內(nèi)啟動,內(nèi)啟動,GATE=0GATE=0。定時器。定時器1 1不用,不用,無關(guān)位設定為無關(guān)位設定為0 0,可得,可得TMOD=02HTMOD=02H。啟動和停止定時器。啟動:啟動和停止定時器。啟動:TR0=1TR0=1,停止:,停止:TR0=0TR0=0。中斷的開放中斷的開放/ /禁止。設置禁止。設置EA=0, ET0=0EA=0, ET0=0,以禁止,以禁止T0T0中斷。中斷。ORG 0000HORG 0000H; ;在在0000H0000H單元存放轉(zhuǎn)移指令單元存放轉(zhuǎn)移指令LJMP STARTLJMP START; ;轉(zhuǎn)移到主程序轉(zhuǎn)
18、移到主程序 ORG 000BH ORG 000BH; ;定時器定時器/ /計數(shù)器計數(shù)器T0T0入口地址入口地址 LJMP TIMER0 LJMP TIMER0; ;轉(zhuǎn)移到中斷服務程序轉(zhuǎn)移到中斷服務程序 ORG 0030H ORG 0030H; ;主程序從主程序從0030H0030H開始開始START: MOV SP,#5FHSTART: MOV SP,#5FH ; ;重置堆棧重置堆棧MOV TCON,#00HMOV TCON,#00H; ;清清T0T0溢出標志,停止溢出標志,停止計數(shù)計數(shù)MOV TMOD,#02HMOV TMOD,#02H;T0;T0定時方式定時方式1 1MOV TH0,#06
19、HMOV TH0,#06H;T0;T0計數(shù)初值計數(shù)初值,50ms,50msMOV TL0,#06HMOV TL0,#06HMOV IE,#82HMOV IE,#82H;cpu;cpu、T0T0中斷開放中斷開放MOV R4,#200MOV R4,#200;50ms;50ms循環(huán)次數(shù)循環(huán)次數(shù)MOV R1,#20 MOV R1,#20 ;1;1秒秒MOV R0,#00MOV R0,#00; ;數(shù)碼管顯示的初值數(shù)碼管顯示的初值SETB TR0SETB TR0; ;啟動啟動T0T0定時定時 MAIN: LCALL DISDPMAIN: LCALL DISDP; ;調(diào)用顯示程序調(diào)用顯示程序 SJMP MA
20、IN SJMP MAIN; ;返回到返回到mainmain主程序主程序DISDP: MOV A,R0DISDP: MOV A,R0;R0;R0的值存放在的值存放在A A中中MOV DPTR,#TABMOV DPTR,#TAB; ;置共陽字段碼表首址置共陽字段碼表首址 MOVC A,A+DPTR MOVC A,A+DPTR; ;查段碼表查段碼表MOV P2,AMOV P2,A; ;在在P2P2口輸出顯示代碼口輸出顯示代碼 RET RET; ;子程序返回子程序返回TIMER0: PUSH ACCTIMER0: PUSH ACC; ;保護現(xiàn)場保護現(xiàn)場 PUSH PSW PUSH PSWDJNZ R4
21、,EXITDJNZ R4,EXIT; ;判斷是否到了判斷是否到了1 1秒秒MOV R4,#200MOV R4,#200; ;重新賦值初值重新賦值初值DJNZ R1,EXITDJNZ R1,EXITMOV R1,#20MOV R1,#20INC R0INC R0 CJNE R0,#0AH,EXIT CJNE R0,#0AH,EXIT; ;判斷是否到了第判斷是否到了第9 9秒秒 MOV R0,#00H MOV R0,#00H; ;重新開始計時顯示重新開始計時顯示EXIT: POP PSWEXIT: POP PSW; ;恢復現(xiàn)場恢復現(xiàn)場 POP ACC POP ACC RETI RETI; ;中斷程
22、序返回中斷程序返回TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H ; 0 1 2 3 4 5 6 ; 0 1 2 3 4 5 6 7 7 對應內(nèi)容對應內(nèi)容 DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH ; 8 9 A B C D E F ; 8 9 A B C D E FEND ;END ;匯編結(jié)束匯編結(jié)束6.2.6.2.定時定時/ /計數(shù)器工作方式計數(shù)器工作方式
23、 功能多功能多波波特特率率發(fā)發(fā)生生器器【例例6.2-46.2-4】假設有一個用戶系統(tǒng),已經(jīng)使用了兩個假設有一個用戶系統(tǒng),已經(jīng)使用了兩個外部中斷源外部中斷源, , 并置定時器并置定時器 T1T1于方式于方式2, 2, 作串行口波特率作串行口波特率發(fā)生器用(計數(shù)初值為發(fā)生器用(計數(shù)初值為0FDH0FDH)?,F(xiàn)要求再增加一個)?,F(xiàn)要求再增加一個外部中斷源外部中斷源, , 中斷一次,計數(shù)器加一,數(shù)碼管顯示;中斷一次,計數(shù)器加一,數(shù)碼管顯示;并由并由P0.4 P0.4 口輸出一個口輸出一個5kHz5kHz的方波,設晶振頻率為的方波,設晶振頻率為 6 6 MHzMHz。(1)(1)計算計數(shù)初值計算計數(shù)初值
24、由由P0.4P0.4輸出輸出5kHz5kHz的方波(周期為的方波(周期為200s200s),即每隔),即每隔100s100s使使P0.4P0.4的電平發(fā)生一次變化。設的電平發(fā)生一次變化。設TH0TH0的初始值的初始值為為X X,則有:,則有:(28-X28-X)2 210-6=10010-6=10010-610-6X=256-100/2=206X=256-100/2=206。引腳引腳T0T0端作擴展的外部中斷輸入端,故端作擴展的外部中斷輸入端,故TL0=0FFHTL0=0FFH。T1T1工作于定時方式工作于定時方式2, 2, 作串行口波特率發(fā)生器,初值作串行口波特率發(fā)生器,初值為為0FDH0F
25、DH,故,故TL1=TH1=0FDHTL1=TH1=0FDH。(2)TMOD(2)TMOD初始化初始化定時器定時器/ /計數(shù)器計數(shù)器1 1工作于定時方式工作于定時方式2 2,M1M0=10M1M0=10,作波特率發(fā)生,作波特率發(fā)生器,啟動后自動運行。但器,啟動后自動運行。但TH0TH0作定時器,作定時器,C/=0C/=0,TH0TH0內(nèi)啟動,內(nèi)啟動,GATE=0GATE=0,TH0TH0的啟動、停止由的啟動、停止由TR1TR1控制??刂?。定時器定時器/ /計數(shù)器計數(shù)器0 0工作于方式工作于方式3 3,M1M0=11M1M0=11,TL0TL0計數(shù)方式,計數(shù)方式,C/=1C/=1,內(nèi)部啟動,內(nèi)部
26、啟動,GATE=0GATE=0。TL0TL0的啟動、停止由的啟動、停止由TR0TR0控制??刂啤>C上可得綜上可得TMOD=27HTMOD=27H。(3)(3)啟動和停止定時器啟動和停止定時器因為因為TL0TL0作內(nèi)部啟動計數(shù)器,故設作內(nèi)部啟動計數(shù)器,故設TR0=1,TR0=1,當當T0T0引腳有下降沿時,引腳有下降沿時,計數(shù)器加計數(shù)器加1 1。因為因為TH0TH0作內(nèi)部啟動定時器,故當作內(nèi)部啟動定時器,故當TR1=1TR1=1時,定時開始。時,定時開始。定時器定時器/ /計數(shù)器計數(shù)器1 1作波特率發(fā)生器,對機器周期計數(shù),機器啟動后作波特率發(fā)生器,對機器周期計數(shù),機器啟動后就開始工作。就開始工作
27、。綜上可得綜上可得TCON=50HTCON=50H。(4)(4)中斷的開放中斷的開放/ /禁止禁止設置設置IE=9FH, IE=9FH, 開放所有中斷。中斷響應一次,計數(shù)器加一,并開放所有中斷。中斷響應一次,計數(shù)器加一,并通過通過P2P2口驅(qū)動數(shù)碼管顯示計數(shù)值??隍?qū)動數(shù)碼管顯示計數(shù)值。ORG 0000H ORG 0000H ; ;在在0000H0000H單元存放轉(zhuǎn)移指令單元存放轉(zhuǎn)移指令LJMP START LJMP START ; ;轉(zhuǎn)移到主程序轉(zhuǎn)移到主程序ORG 000BH ORG 000BH ; ;計數(shù)計數(shù)/ /定時器定時器T0T0的中斷入口地址的中斷入口地址LJMP TL0INT LJM
28、P TL0INT ; ;轉(zhuǎn)到中斷服務程序轉(zhuǎn)到中斷服務程序TH0INTTH0INTORG 001BH ORG 001BH ; ;計數(shù)計數(shù)/ /定時器定時器T1T1的中斷入口地址的中斷入口地址LJMP TH0INT LJMP TH0INT ; ;轉(zhuǎn)到中斷服務程序轉(zhuǎn)到中斷服務程序TL0INTTL0INTORG 0100H ORG 0100H ; ;主程序從主程序從0100H0100H開始開始START:MOV R0,#00HSTART:MOV R0,#00HMOV TL0, #0FFH MOV TL0, #0FFH ;T0;T0(P3.4P3.4)做擴展中斷源)做擴展中斷源 MOV TH0, #20
29、6 MOV TH0, #206 ; ;送定時送定時100s100s的初值的初值 MOV TL1, #0FDH MOV TL1, #0FDH ; ;波特率常數(shù)設置波特率常數(shù)設置 MOV TH1, #0FDHMOV TH1, #0FDHMOV TMOD, #27H MOV TMOD, #27H ; ;置置T0T0方式方式3,TL03,TL0計數(shù)器;計數(shù)器;TH0TH0定時器定時器 MOV TCON, #50H MOV TCON, #50H ; ;啟動定時器啟動定時器T0T0、T1T1MOV IE, #9FH MOV IE, #9FH ; ;開放全部中斷開放全部中斷LOOP1:LCALL DISPA
30、LYLOOP1:LCALL DISPALY; ;調(diào)用顯示程序調(diào)用顯示程序LJMP LOOP1LJMP LOOP1; ;循環(huán)等待循環(huán)等待ORG 0200H ORG 0200H ;TL0;TL0中斷服務程序中斷服務程序TL0INT:MOV TL0,#0FFH TL0INT:MOV TL0,#0FFH ; ;中斷響應后重新設置初值中斷響應后重新設置初值INC R0INC R0; ;顯示的變量顯示的變量RETIRETI; ;中斷返回中斷返回ORG 0300H ORG 0300H ;TH0;TH0中斷服務程序,處理中斷服務程序,處理5kHz5kHz方方波波TH0INT:MOV TH0,#206 TH0I
31、NT:MOV TH0,#206 ; ;中斷響應后重新設置初值中斷響應后重新設置初值 CPL P0.4 CPL P0.4 ;P0.4;P0.4口取反口取反RETI RETI ; ;中斷返回中斷返回DISPALY:MOV DPTR,#LABDISPALY:MOV DPTR,#LAB; ;置共陽字段碼表首址置共陽字段碼表首址MOV A,R0MOV A,R0;R0;R0中的值存入中的值存入A A中中MOVC A,A+DPTRMOVC A,A+DPTR; ;查段碼表查段碼表MOV P2,AMOV P2,A; ;在在P2P2口輸出顯示代碼口輸出顯示代碼LCALL DELAYLCALL DELAY; ;調(diào)用
32、延時程序調(diào)用延時程序RETRETDELAY:MOV R5,#10DELAY:MOV R5,#10; ;延時程序延時程序DELAY1:MOV R6,#1DELAY1:MOV R6,#1DELAY2:MOV R7,#20DELAY2:MOV R7,#20DJNZ R7,$DJNZ R7,$DJNZ R6,DELAY2DJNZ R6,DELAY2DJNZ R5,DELAY1DJNZ R5,DELAY1RETRETLAB:DB LAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H ;0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H ;段段碼表碼
33、表 ; 0 1 ; 0 1 2 3 4 5 6 8 2 3 4 5 6 8 對應內(nèi)容對應內(nèi)容 DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EHDB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH ; 8 9 A B C D E F ; 8 9 A B C D E FEND END 在使用定時在使用定時/ /計數(shù)器時,應做好計數(shù)器時,應做好4件事:設置設置TMODTMOD以選擇工作方式;以選擇工作方式;計算并設置計數(shù)初值計算并設置計數(shù)初值THX,TLXTHX,TLX;設置設置IEIE、IPIP以規(guī)定中斷的開放以規(guī)定中斷的開放/ /禁止及優(yōu)先級;禁止及優(yōu)
34、先級;設置設置TCONTCON以啟動以啟動/ /停止定時停止定時/ /計數(shù)器的工作計數(shù)器的工作??偨Y(jié)總結(jié)6.46.4全自動洗衣機定時控制全自動洗衣機定時控制ProteusProteus仿真仿真洗衣機中所需的定時功能并不復雜,可以利用單片機洗衣機中所需的定時功能并不復雜,可以利用單片機提供的定時器方便實現(xiàn)。設洗衣機有三段定時時間,提供的定時器方便實現(xiàn)。設洗衣機有三段定時時間,分別為:進水階段定時分別為:進水階段定時2 2秒,洗滌階段定時秒,洗滌階段定時4 4秒,甩干秒,甩干階段定時階段定時2 2秒。并分別用三個秒。并分別用三個LEDLED發(fā)光二極管表示進發(fā)光二極管表示進水、洗滌、甩干三個環(huán)節(jié)的工
35、作狀態(tài)。其中如果發(fā)光水、洗滌、甩干三個環(huán)節(jié)的工作狀態(tài)。其中如果發(fā)光二極管二極管A A亮,表示進水工作正在進行;發(fā)光二極管亮,表示進水工作正在進行;發(fā)光二極管B B亮,亮,表示洗滌工作正在進行;發(fā)光二極管表示洗滌工作正在進行;發(fā)光二極管C C亮,表示甩干亮,表示甩干工作正在進行。發(fā)光二極管熄滅時,說明相應的定時工作正在進行。發(fā)光二極管熄滅時,說明相應的定時已到,工作停止。圖已到,工作停止。圖5-75-7給出了給出了ProteusProteus仿真電路圖。仿真電路圖。圖圖5-65-6中,中,S S表示洗衣機啟動開關(guān),開關(guān)表示洗衣機啟動開關(guān),開關(guān)按下洗衣機開始工作。首先是進水定時按下洗衣機開始工作。
36、首先是進水定時控制,表示正在進水的控制,表示正在進水的LEDLED發(fā)光二極管發(fā)光二極管A A點亮。當進水控制的定時時間到時,點亮。當進水控制的定時時間到時,進水工作停止,發(fā)光二極管進水工作停止,發(fā)光二極管A A滅燈;接滅燈;接著開始洗滌工作定時,發(fā)光二極管著開始洗滌工作定時,發(fā)光二極管B B點點亮;洗滌工作結(jié)束后,開始甩干工作定亮;洗滌工作結(jié)束后,開始甩干工作定時,發(fā)光二極管時,發(fā)光二極管C C點亮。當洗衣功能結(jié)點亮。當洗衣功能結(jié)束時,三個指示燈都熄滅,表示洗衣工束時,三個指示燈都熄滅,表示洗衣工作結(jié)束,并接通蜂鳴器作結(jié)束,并接通蜂鳴器LS1LS1鳴聲提醒。鳴聲提醒。匯編語言參考程序匯編語言參
37、考程序ORG 0000H ORG 0000H ; ;在在0000H0000H單元存放轉(zhuǎn)移指令單元存放轉(zhuǎn)移指令 LJMP MAIN LJMP MAIN ; ;轉(zhuǎn)移到主程序轉(zhuǎn)移到主程序ORG 000BH ORG 000BH ; ;計數(shù)計數(shù)/ /定時器定時器T0T0的中斷入口地址的中斷入口地址LJMP Time0 LJMP Time0 ; ;轉(zhuǎn)到中斷子程序轉(zhuǎn)到中斷子程序Time0Time0ORG 0100H ORG 0100H ; ;主程序從主程序從0100H0100H開始開始MAIN: JB P2.0,MAIN ;MAIN: JB P2.0,MAIN ;判按鍵是否按下判按鍵是否按下 LACLL D
38、ISPLY ;LACLL DISPLY ;有鍵按下,延時去抖動有鍵按下,延時去抖動 JB P2.0,MAIN JB P2.0,MAIN ; ;再判有鍵按下再判有鍵按下 MOV P1,#0EH MOV P1,#0EH ; ;確定鍵按下,確定鍵按下,A A燈亮,開始放水燈亮,開始放水定時定時 MOV R0,#00H MOV R0,#00H ;R0;R0放放3 3個階段的工作標志個階段的工作標志 MOV R1,#00H MOV R1,#00H ; ;R1R1放定時器的中斷計數(shù)放定時器的中斷計數(shù) SETB EA SETB EA ; ;開中斷總開關(guān)開中斷總開關(guān) SETB ET0 SETB ET0 ; ;
39、開定時器開定時器T0T0的中斷開關(guān)的中斷開關(guān) MOV TMOD,#01H MOV TMOD,#01H ; ;設定時器設定時器T0T0工作方式工作方式1 1 MOV TH0,#3CH MOV TH0,#3CH ; ;定時定時50ms50ms高高8 8位初值位初值 MOV TL0,#0B0H MOV TL0,#0B0H ; ;定時定時50ms50ms低低8 8位初值位初值 SETB TR0 SETB TR0 ; ;允許計數(shù)允許計數(shù) SIMP $ SIMP $ ; ;循環(huán)等待循環(huán)等待Time0: Time0: ; ;定時器定時器T0T0中斷子程序中斷子程序 CJNE R0,#00H,L1 CJNE
40、R0,#00H,L1 ; ;若若R0=0R0=0,執(zhí)行第,執(zhí)行第1 1階段定時(放水功能)階段定時(放水功能) INC R1 INC R1 ;R1;R1內(nèi)容加內(nèi)容加1 1 CJNE R1,#40,L4 ; CJNE R1,#40,L4 ;若累計滿若累計滿4040次,即計時滿次,即計時滿2s2s MOV P1,#0DH MOV P1,#0DH ;A;A燈滅,結(jié)束放水,燈滅,結(jié)束放水,B B燈亮,開始洗滌燈亮,開始洗滌 MOV R1,#00H MOV R1,#00H ;R1;R1內(nèi)容清內(nèi)容清0 0,重新從,重新從0 0開始計數(shù)開始計數(shù) INC R0 INC R0 ;R0;R0內(nèi)容加內(nèi)容加1 1,準
41、備第,準備第2 2階段的定時階段的定時 SJMP L4 SJMP L4 ; ;轉(zhuǎn)轉(zhuǎn)L4L4,送初值,中斷返回,送初值,中斷返回L1: CJNE R0,#01H,L2 L1: CJNE R0,#01H,L2 ; ;若若R0=1R0=1,執(zhí)行第,執(zhí)行第2 2階段定時(洗滌階段定時(洗滌功能)功能) INC R1 INC R1 ;R1;R1內(nèi)容加內(nèi)容加1 1 CJNE R1,#80,L4 CJNE R1,#80,L4 ; ;若累計滿若累計滿8080次,即計時滿次,即計時滿4s4s MOV P1,#0BH MOV P1,#0BH ;B ;B燈滅,結(jié)束洗滌,燈滅,結(jié)束洗滌,C C燈亮,開始甩干燈亮,開始
42、甩干 MOV R1,#00H MOV R1,#00H ;R1;R1內(nèi)容清內(nèi)容清0 0,重新從,重新從0 0開始計數(shù)開始計數(shù) INC R0 INC R0 ;R0;R0內(nèi)容加內(nèi)容加1 1,準備第,準備第3 3階段的定時階段的定時SJMP L4 SJMP L4 ; ;轉(zhuǎn)轉(zhuǎn)L4L4,送初值,中斷返回,送初值,中斷返回L2: CJNE R0,#02H,L3 ;L2: CJNE R0,#02H,L3 ;若若R0=2R0=2,執(zhí)行第,執(zhí)行第3 3階段定時(甩干功能)階段定時(甩干功能) INC R1 INC R1 ;R1;R1內(nèi)容加內(nèi)容加1 1 CJNE R1,#40,L4 CJNE R1,#40,L4 ;
43、 ;若累計滿若累計滿4040次,即計時滿次,即計時滿2s2s MOV R1,#00H MOV R1,#00H ; ;將將CountorCountor清清0 0,重新從,重新從0 0開始計數(shù)開始計數(shù) INC R0 INC R0 ;R0;R0內(nèi)容加內(nèi)容加1 1,準備第,準備第4 4階段的工作階段的工作L3: MOV P1,#07H L3: MOV P1,#07H ; ;燈全滅,洗衣機結(jié)束工作燈全滅,洗衣機結(jié)束工作 CPL P3.7 CPL P3.7 ; ;蜂鳴器提醒蜂鳴器提醒L4: MOV TH0,#3CH ;L4: MOV TH0,#3CH ;定時器定時器T 1T 1的高的高8 8位重新賦初值位重新賦初值 MOV TL0,#0B0H MOV TL0,#0B0H ; ; 定時器定時器T1T1的低的低8 8位重新賦初值位重新賦初值 RETI RETI ; ;中斷返回中斷返回ENDEND單片機音樂單片機音樂 聲音的頻譜范圍為聲音的頻譜范圍為20Hz-200KHz20Hz-200KHz,人的耳朵,人的耳朵能辨別的聲音頻率大概在能辨別的聲音頻率大概在200Hz-20KHz200Hz-20KHz。音符音符 1 2 3 4 5 6 71 2 3 4 5 6 7節(jié)拍節(jié)拍
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 17715:2025 EN Flour from wheat (Triticum aestivum L.) - Amperometric method for starch damage measurement
- 2025-2030年中國智慧養(yǎng)老服務行業(yè)商業(yè)模式創(chuàng)新戰(zhàn)略制定與實施研究報告
- 2025-2030年中國汽車后市場行業(yè)開拓第二增長曲線戰(zhàn)略制定與實施研究報告
- 2025-2030年中國控制線纜組件行業(yè)資本規(guī)劃與股權(quán)融資戰(zhàn)略制定與實施研究報告
- 收看《反腐為人民》心得體會:弘揚清風正氣筑牢廉潔根基
- 年產(chǎn)xxx新型建材新型墻體材料項目可研報告模板
- 廣西河池市環(huán)江縣2021-2022學年五年級上學期英語期末試卷
- 商品加工知識培訓課件
- 學校消防安全知識培訓
- 債券價格的敏感性第五章
- 2023年長沙市中考數(shù)學真題試卷及答案
- 《電力設備消防典型準則》(DL5027-2022)
- 米吳科學漫畫奇妙萬象篇
- 河南省鄭州市金水區(qū)2022-2023學年三年級上學期期末數(shù)學試卷
- XXX酒店開辦費POB預算
- Z矩陣、Y矩陣、A矩陣、S矩陣、T矩陣定義、推導及轉(zhuǎn)換公式
- 中美歐規(guī)范樁基承載力計算設計對比
- 外科洗手操作考核評分表
- 復旦大學外國留學生入學申請表
- 長安汽車發(fā)動機水溫高故障案例分析處置
- 瞬時單位線法計算洪水
評論
0/150
提交評論