利用單片機(jī)STC89C52設(shè)計(jì)制作電子表匯編_第1頁(yè)
利用單片機(jī)STC89C52設(shè)計(jì)制作電子表匯編_第2頁(yè)
利用單片機(jī)STC89C52設(shè)計(jì)制作電子表匯編_第3頁(yè)
利用單片機(jī)STC89C52設(shè)計(jì)制作電子表匯編_第4頁(yè)
利用單片機(jī)STC89C52設(shè)計(jì)制作電子表匯編_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 . . . 利用單片機(jī)STC89C52設(shè)計(jì)制作電子表電路圖源程序全局思路:定時(shí)模塊單獨(dú)工作, 按鍵掃描模塊 和 顯示模塊分時(shí)輪流執(zhí)行 一、 定時(shí)模塊單片機(jī)啟動(dòng)后,首先啟動(dòng)定時(shí)器 機(jī)器周期是1um,所以定時(shí)器計(jì)數(shù)500000是半秒,1000000次是一秒 將1000000分成256份,每份是3906,定時(shí)器每次計(jì)數(shù)3906。使定時(shí)器0工作在方式1,每完成一次計(jì)數(shù)產(chǎn)生一次中斷使R2自加1,R2初值是0,則當(dāng)R2=128時(shí)是半秒,當(dāng)R2=0時(shí)是一秒 計(jì)數(shù)初值:65536-3906=61630=F0BEH 所以TH0值為F0H,TL0值為BEH二、按鍵掃描模塊(KT)定時(shí)器啟動(dòng)后,程序轉(zhuǎn)入 按鍵掃描

2、 和 LED顯示 的循環(huán),首先是按鍵掃描按鍵S0按下,使標(biāo)志R5加1。R5的值代表顯示模塊的顯示模式,加1表示模式的切換 R5=X 對(duì)應(yīng) 模式X按鍵S1按下,使標(biāo)志R6的值為1按鍵S2按下,使標(biāo)志R7的值為1 在時(shí)調(diào)整、分調(diào)整中,S1表示加1,S2表示減1;在鬧鈴調(diào)整中,S1表示時(shí)加1,S2表示分加1按鍵S3按下,使R5的值為0,即返回模式0三、鬧鐘模塊在這個(gè)模塊中,程序判斷DSHI和SHI是否相等 以與DFEN和FEN是否相等,如果兩個(gè)判斷都相等就使P2.0清0,驅(qū)動(dòng)蜂鳴器發(fā)聲;有任意一個(gè)判斷不相等都使P2.0置1,蜂鳴器不工作四、顯示模塊 一共4個(gè)LED管,采用分時(shí)掃描顯示顯示分為不同的模

3、式:模式0、模式1、模式2、模式3、模式4,對(duì)應(yīng)的標(biāo)志R5的值為0、1、2、3、4模式0,正常模式,顯示為“時(shí):分”模式1,正常模式,顯示為“分:秒”模式2,時(shí)調(diào)整模式,顯示為“時(shí):分”,并且“分”正常顯示,“時(shí)”一閃一閃模式3,分調(diào)整模式,顯示為“時(shí):分”,并且“時(shí)”正常顯示,“分”一閃一閃模式4,鬧鈴調(diào)整模式,顯示為“時(shí):分”,并且“時(shí)”、“分”全部一閃一閃在此模塊,程序根據(jù)R5的值進(jìn)入對(duì)應(yīng)模式。在模式0和模式1,只顯示,不能調(diào)整;在模式2(模式3)可以通過(guò)按鍵S1、S2對(duì)時(shí)(分)進(jìn)行加減操作;在模式4,可以通過(guò)S1、S2對(duì)鬧鈴的時(shí)、分進(jìn)行加操作(沒(méi)有減的操作)各個(gè)模式下,按鍵S0使模式號(hào)

4、增加,按鍵S3使任何模式返回模式0五、總結(jié)1本實(shí)驗(yàn)選用了共陰極LED顯示器,而STC89C52的高電平驅(qū)動(dòng)能力很差,所以需要使用晶體管放大,段碼信號(hào)從基極輸入。又因?yàn)檫x用了PNP型晶體管,所以要Sn和段碼信號(hào)都是低電平才能使LED發(fā)光,致使共陰極的LED需要共陽(yáng)極的代碼來(lái)驅(qū)動(dòng)。2由于STC89C52的高電平驅(qū)動(dòng)能力很差,一般都不做為驅(qū)動(dòng),所以以后的實(shí)驗(yàn)應(yīng)盡量選擇共陽(yáng)極LED,因?yàn)檫@樣可以減少晶體管的數(shù)目(本實(shí)驗(yàn)用了7個(gè),如果使用共陽(yáng)極LED則可以只用4個(gè))。3由于定時(shí)器的工作與程序的循環(huán)查詢(xún)時(shí)分開(kāi)的,所以誤差主要來(lái)源于單片機(jī)的自身頻率和定時(shí)器初值的設(shè)定,即:理論的初值只適合于標(biāo)準(zhǔn)的12MHz,

5、現(xiàn)實(shí)的單片機(jī)頻率可能不是標(biāo)準(zhǔn)值??梢酝ㄟ^(guò)具體的誤差反算出正確的初值。附:電路圖配套源程序: ORG 0000H AJMP MAIN ORG 000BH AJMP INT10 ORG 0030HMAIN: MOV SP,#53H MOV R5,#00H ;初始模式設(shè)置為模式0 SHI EQU 20H FEN EQU 21H MIAO EQU 22H DSHI EQU 27H ;鬧鈴 時(shí) DFEN EQU 28H ;鬧鈴 分 XIANSHI EQU 29H ;顯示標(biāo)志,當(dāng)為全0時(shí)顯示,全1不顯示 MOV 2AH,#00H CPL P2.7 MOV SHI,#00H MOV FEN,#00H MOV

6、 MIAO,#00H MOV DSHI,#10 ;默認(rèn)10:30鬧鈴 MOV DFEN,#30 MOV XIANSHI,#00H ;默認(rèn)為顯示 MOV R2,#00H MOV R6,#00H ;按鍵1(加)標(biāo)志 MOV R7,#00H ;按鍵2(減)標(biāo)志 MOV TMOD,#01H MOV TL0,#0BEH MOV TH0,#0F0H SETB EA SETB ET0 SETB TR0LOOP: AJMP AA3 ;鍵盤(pán)掃描 與 LED顯示 入口INT10: MOV TL0,#0BEH MOV TH0,#0F0H INC R2 CJNE R2,#128,INT11 ACALL AA1 ;半秒

7、中斷入口INT11: CJNE R2,#0,INT2 ACALL AA2 ;一秒中斷入口INT2: RETIAA1: CPL P2.7 ;半秒中斷服務(wù) P2.7取反,使兩點(diǎn)閃動(dòng) MOV 2AH,#0FFH RETAA2: CPL P2.7 ;一秒中斷服務(wù) P2.7取反,使兩點(diǎn)閃動(dòng) MOV 2AH,#00H INC MIAO MOV R0,#22H CJNE R0,#60,AA22 MOV MIAO,#00H INC FEN DEC R0 CJNE R0,#60,AA22 MOV FEN,#00H INC SHI DEC R0 CJNE R0,#24,AA22 MOV SHI,#00HAA22:

8、 RETAA3: ACALL KT ;調(diào)用鍵盤(pán)掃描程序 ;返回:K0閉合則模式號(hào)加1 ;K1閉合則R6=#01H ;K2閉合則R7=#01H ;K3閉合則模式號(hào)置1,即返回模式0AA5: PUSH ACC MOV A,SHI ;鬧鐘 CJNE A,DSHI,AA55 MOV A,FEN CJNE A,DFEN,AA55 CLR P2.0 POP ACC AJMP AA4 AA55: SETB P2.0 POP ACCAA4: MOV A,R5 ;LED顯示 ,模式標(biāo)志位R5 RL A MOV DPTR,#MODTAB JMP A+DPTRMODTAB: AJMP MOD0 ;時(shí)分式 AJMP

9、MOD1 ;分秒式 AJMP MOD2 ;時(shí)調(diào)整 AJMP MOD3 ;分調(diào)整 AJMP MOD4 ;鬧鈴設(shè)置模式 AJMP MOD5 ; 預(yù)留擴(kuò)展模式(未定義) AJMP MOD6 ; 預(yù)留擴(kuò)展模式(未定義)MOD0: MOV XIANSHI,#00H ;開(kāi)顯示 MOV R3,#3 ;模式0(正常模式) 時(shí)分式 ,標(biāo)志R5=0 MOV A,FEN ;顯示S3 MOV B,#10 DIV AB SWAP A ADD A,B MOV 24H,A ANL 24H,#0FH MOV R4,24H PUSH ACC ACALL PRT DEC R3 ;顯示S2 POP ACC SWAP A ANL A

10、,#0FH MOV R4,A ACALL PRT DEC R3 ;顯示S1 MOV A,SHI MOV B,#10 DIV AB SWAP A ADD A,B MOV 24H,A ANL 24H,#0FH MOV R4,24H PUSH ACC ACALL PRT DEC R3 ;顯示S0 POP ACC SWAP A ANL A,#0FH MOV R4,A ACALL PRT AJMP LOOP ;轉(zhuǎn)回鍵盤(pán)掃描MOD1: MOV XIANSHI,#00H;開(kāi)顯示 MOV R3,#3 ;模式1 分秒式 ,標(biāo)志R5=1 MOV A,MIAO ;顯示S3 MOV B,#10 DIV AB SWAP

11、 A ADD A,B MOV 24H,A ANL 24H,#0FH MOV R4,24H PUSH ACC ACALL PRT DEC R3 ;顯示S2 POP ACC SWAP A ANL A,#0FH MOV R4,A ACALL PRT DEC R3 ;顯示S1 MOV A,FEN MOV B,#10 DIV AB SWAP A ADD A,B MOV 24H,A ANL 24H,#0FH MOV R4,24H PUSH ACC ACALL PRT DEC R3 ;顯示S0 POP ACC SWAP A ANL A,#0FH MOV R4,A ACALL PRT AJMP LOOP ;轉(zhuǎn)

12、回鍵盤(pán)掃描MOD2: MOV XIANSHI,#00H ;開(kāi)顯示 MOV R0,#SHI CJNE R6,#01H,MOD21 ;模式2,時(shí)調(diào)整,標(biāo)志:R5=2 INC SHI CJNE R0,#24,MOD23 MOV SHI,#00H MOD23:MOV R6,#00H MOV R7,#00H SJMP MOD22 MOD21:CJNE R7,#01H,MOD22 CJNE R0,#00H,MOD24 MOV SHI,#23 SJMP MOD25 MOD24:DEC SHI MOD25:MOV R6,#00H MOV R7,#00H MOD22:MOV R3,#3 MOV A,FEN ;顯

13、示S3 MOV B,#10 DIV AB SWAP A ADD A,B MOV 24H,A ANL 24H,#0FH MOV R4,24H PUSH ACC ACALL PRT DEC R3 ;顯示S2 POP ACC SWAP A ANL A,#0FH MOV R4,A ACALL PRT DEC R3 ;顯示S1 MOV A,SHI MOV B,#10 DIV AB SWAP A ADD A,B MOV 24H,A ANL 24H,#0FH MOV R4,24H PUSH ACC MOV A,2AH ;判斷顯示與否 ;關(guān)顯示,產(chǎn)生一閃一閃的效果 并且與兩點(diǎn)同步 ORL XIANSHI,A

14、ACALL PRT DEC R3 ;顯示S0 MOV XIANSHI,#00H POP ACC SWAP A ANL A,#0FH MOV R4,A MOV A,2AH ;判斷顯示與否 ORL XIANSHI,A ACALL PRT AJMP LOOP ;轉(zhuǎn)回鍵盤(pán)掃描MOD3: MOV XIANSHI,#00H MOV R0,#FEN CJNE R6,#01H,MOD31 ;模式3,分調(diào)整,標(biāo)志:R5=3 INC FEN CJNE R0,#60,MOD33 MOV FEN,#00H MOD33:MOV R6,#00H MOV R7,#00H SJMP MOD32 MOD31:CJNE R7,#

15、01H,MOD32 CJNE R0,#00H,MOD34 MOV FEN,#59 SJMP MOD35 MOD34:DEC FEN MOD35:MOV R6,#00H MOV R7,#00H MOD32:MOV R3,#3 MOV A,FEN ;顯示S3 MOV B,#10 DIV AB SWAP A ADD A,B MOV 24H,A ANL 24H,#0FH MOV R4,24H PUSH ACC MOV A,2AH ORL XIANSHI,A ACALL PRT MOV XIANSHI,#00H DEC R3 ;顯示S2 POP ACC SWAP A ANL A,#0FH MOV R4,

16、A MOV A,2AH ORL XIANSHI,A ACALL PRT DEC R3 ;顯示S1 MOV XIANSHI,#00H MOV A,SHI MOV B,#10 DIV AB SWAP A ADD A,B MOV 24H,A ANL 24H,#0FH MOV R4,24H PUSH ACC ACALL PRT DEC R3 ;顯示S0 POP ACC SWAP A ANL A,#0FH MOV R4,A ACALL PRT AJMP LOOP ;轉(zhuǎn)回鍵盤(pán)掃描MOD4: CJNE R6,#01H,MOD41 INC DSHI MOV R0,#DSHI CJNE R0,#24,MOD41

17、 MOV DSHI,#00H MOD41:MOV R6,#00H CJNE R7,#01H,MOD42 INC DFEN MOV R0,#DFEN CJNE R0,#60,MOD42 MOV DFEN,#00H MOD42:MOV R7,#00H MOV R3,#3 MOV A,DFEN ;顯示S3 MOV B,#10 DIV AB SWAP A ADD A,B MOV 24H,A ANL 24H,#0FH MOV R4,24H PUSH ACC MOV XIANSHI,#00H MOV A,2AH ORL XIANSHI,A ACALL PRT DEC R3 ;顯示S2 POP ACC SW

18、AP A ANL A,#0FH MOV R4,A MOV XIANSHI,#00H MOV A,2AH ORL XIANSHI,A ACALL PRT DEC R3 ;顯示S1 MOV A,DSHI MOV B,#10 DIV AB SWAP A ADD A,B MOV 24H,A ANL 24H,#0FH MOV R4,24H PUSH ACC MOV XIANSHI,#00H MOV A,2AH ORL XIANSHI,A ACALL PRT DEC R3 ;顯示S0 POP ACC SWAP A ANL A,#0FH MOV R4,A MOV XIANSHI,#00H MOV A,2AH

19、 ORL XIANSHI,A ACALL PRT AJMP LOOPMOD5: MOV R5,#00H AJMP LOOPMOD6: MOV R5,#00H AJMP LOOPTABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;共陽(yáng)極段碼表TABLE1:DB 0F7H,0FBH,0FDH,0FEH ;S碼值DELAY: MOV 25H,#10 ;延時(shí)1ms DE1: MOV 26H,#49 DJNZ 26H,$ DJNZ 25H,DE1 RETDELAY15MS: MOV 25H,#150 ;延時(shí)15ms DE2: MOV 26H,#49 DJNZ 26H,$ DJNZ 25H,DE2 RETPRT: MOV A,R3 ;顯示程序,參數(shù)為R3,R4,前者表示Sn,后者表示待顯示

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論