|
圖片1.png (195.3 KB, 下載次數(shù): 59)
下載附件
2017-12-26 13:22 上傳
- /*************************************************
- *文件名:電子時(shí)鐘
- *說 明:通過T0方式1定時(shí)時(shí)時(shí)更新,晶振:6MHZ
- *************************************************/
- ORG 0000H
- AJMP MAIN
- ORG 000BH
- AJMP IT0P
- ORG 0100H
- MAIN: MOV DPTR,#TAB
- MOV TMOD,#01H ;設(shè)T0為方式一,定時(shí)
- MOV 30H,#0AH ;裝入中斷次數(shù)
- MOV 42H,#55 ;顯示55秒位
- MOV 41H,#59 ;顯示59分位
- MOV 40H,#23 ;顯示23時(shí)位
- MOV TH0,#3CH ;給T0裝入初值
- MOV TL0,#0B0H
- SETB ET0 ;允許T0申請(qǐng)中斷
- SETB TR0 ;啟動(dòng)T0
- SETB EA ;開總中斷
- HERE: MOV R3,42H ;調(diào)顯示子程序(等待中斷)
- MOV R2,#00
- ACALL DISPLAY
- MOV R3,41H
- MOV R2,#02
- ACALL DISPLAY
- MOV R3,40H
- MOV R2,#04
- ACALL DISPLAY
- AJMP HERE
- ;******1S定時(shí)子程序(并顯示)******
- IT0P: PUSH PSW ;現(xiàn)場保護(hù)
- PUSH Acc
- MOV TH0,#3CH ;重裝初值
- MOV TL0,#0B0H
- DJNZ 30H,RETURN ;1秒未到,返回
- MOV 30H,#0AH ;重置中斷次數(shù)
- ;******顯示秒*********
- MOV A,42H ;"秒"單元加1
- INC A
- MOV 42H,A ;“秒”的BCD碼返回“秒”單元
- CJNE A,#60,RETURN ;是否到60秒,未到則返回
- MOV 42H,#00H ;計(jì)滿60秒,“秒”單元清零
- ;******顯示分*********
- MOV A,41H ;"分"單元加1
- INC A
- MOV 41H,A ;“分”的BCD碼返回“分”單元
- CJNE A,#60,RETURN ;是否到60分,未到則返回
- MOV 41H,#00H ;計(jì)滿60分,“分”單元清零
- ;******顯示時(shí)*********
- MOV A,40H ;"時(shí)"單元加1
- INC A
- MOV 40H,A ;“時(shí)”的BCD碼返回“時(shí)”單元
- CJNE A,#24,RETURN ;是否到24小時(shí),未到則返回
- MOV 40H,#00H ;計(jì)滿24小時(shí),“時(shí)”單元清零
- RETURN: POP Acc ;恢復(fù)現(xiàn)場
- POP PSW
- RETI
- ;******顯示子程序(分兩屏顯示)******
- DISPLAY:MOV A,R3 ;R3存要顯示的兩位數(shù)字
- MOV B,#0AH
- MOV P2,R2
- DIV AB ;A為商,表十位;B為余數(shù),表個(gè)位
- MOV R3,A
- MOV A,B ;顯示個(gè)位
- MOVC A,@A+DPTR
- MOV P0,A
- ACALL DELY
- INC R2 ;顯示十位
- MOV P2,R2
- MOV A,R3
- MOVC A,@A+DPTR
- MOV P0,A
- ACALL DELY
- RET
- ;******延時(shí)0.5MS子程序******
- DELY: MOV R7,#10
- DEL1: MOV R6,#100
- DJNZ R6,$
- DJNZ R7,DEL1 ;(100*2+2+1)*10+2+1
- RET
- TAB: DB 3FH,06H,5BH,4FH,66H ;七段共陰顯示碼
- DB 6DH,7DH,07H,7FH,6FH,3FH
- END
復(fù)制代碼 全部資料51hei下載地址:
電子時(shí)鐘.zip
(182.92 KB, 下載次數(shù): 27)
2017-12-26 13:18 上傳
點(diǎn)擊文件名下載附件
仿真可用 下載積分: 黑幣 -5
|
|