?? 數碼時鐘.asm
字號:
;*****本時鐘是通過四位數碼管顯示的,所以只能顯示時和分中間為秒
;*****可以通個3和7進行時和分的連續時間調整.(時間顯示很精確的喔)
DI_DA DATA 20H ;計數
SEC DATA 21H ;秒
MIN DATA 22H ;分
HOUR DATA 23H ;時
MIN_ BIT P1.1 ;時間調整,可以修改口
HOUR_ BIT P1.0
ORG 0000H
AJMP MAIN
ORG 000BH ;50ms定時入口 (T0)
LJMP CLOCK ;50ms定時中斷程序入口地址
ORG 0030H
MAIN: MOV SP,#60H
MOV TMOD,#01H
MOV TL0,#0B0H
MOV TH0,#3CH
MOV DI_DA,#00H
MOV SEC,#00H
MOV MIN,#00H
MOV HOUR,#00H
SETB ET0
SETB TR0
MOV 7FH,#00H
MOV 7EH,#00H
MOV 7DH,#00H
MOV 7CH,#00H
SETB EA
BEGIN: MOV P1,#0FH
MOV A,P1
CJNE A,#0FH,NEXT
JB 2FH.0,QUIT1 ;2FH.0判斷秒閃爍標致位
MOV P2,#81H
MOV P0,#80H
JMP QUIT2
QUIT1: MOV P2,#81H
MOV P0,#00H
QUIT2: ACALL DEL8MS
ACALL CONV ;調用計時轉換
ACALL ITX ;調用顯示
AJMP BEGIN
NEXT: ACALL KEY
AJMP BEGIN
;*******鍵盤
KEY: ACALL DEL8MS
ACALL DEL8MS
MIN_KEY: JB MIN_,HOUR_KEY
MIN_ADJ: CLR C
MOV A,MIN
INC A
DA A
CJNE A,#60H,X1
CLR A
X1: MOV MIN,A
MOV 2EH,#30 ;按鍵延時刷新
QUIT3: ACALL ITX
DJNZ 2EH,QUIT3
MOV P1,#0FH
JNB MIN_,MIN_ADJ
HOUR_KEY: JB HOUR_,X2
HOUR_ADJ: CLR C
MOV A,HOUR
INC A
DA A
CJNE A,#24H,X3
CLR A
X3: MOV HOUR,A
MOV 2EH,#30 ;按鍵延時刷新
QUIT4: ACALL ITX
DJNZ 2EH,QUIT4
ACALL ITX
X2: MOV P1,#0FH
JNB HOUR_,HOUR_ADJ
RET
;*******計時轉換*******
CONV: MOV A,DI_DA
CJNE A,#14H,DONE
MOV DI_DA,#00H
MOV A,SEC
ADD A,#01H
DA A
MOV SEC,A
CPL 2FH.0
CJNE A,#60H,DONE
MOV SEC,#00H
MOV A,MIN
ADD A,#01H
DA A
MOV MIN,A
CJNE A,#60H,DONE
MOV MIN,#00H
MOV A,HOUR
ADD A,#01H
DA A
MOV HOUR,A
CJNE A,#24H,DONE
MOV HOUR,#00H
DONE: RET
D0: MOV A,HOUR
ANL A,#0FH
MOV 7EH,A
MOV A,HOUR
SWAP A
ANL A,#0FH
MOV 7FH,A
MOV A,MIN
ANL A,#0FH
MOV 7CH,A
MOV A,MIN
SWAP A
ANL A,#0FH
MOV 7DH,A
RET
ITX: ACALL D0
MOV DPTR,#TAB
MOV P2,#80H
MOV A,7FH
MOVC A,@A+DPTR
MOV P0,A
ACALL DEL8MS
MOV P2,#81H
MOV A,7EH
MOVC A,@A+DPTR
MOV P0,A
ACALL DEL8MS
MOV P2,#82H
MOV A,7DH
MOVC A,@A+DPTR
MOV P0,A
ACALL DEL8MS
MOV P2,#83H
MOV A,7CH
MOVC A,@A+DPTR
MOV P0,A
ACALL DEL8MS
RET
CLOCK: MOV TL0,#0B0H
MOV TH0,#3CH
INC DI_DA
RETI
DEL8MS: MOV R7,#04H
DEL1: MOV R6,#0FFH
DJNZ R6,$
DJNZ R7,DEL1
RET
TAB: DB 0c0H,0f9H,0a4H,0a0H,99H,92H,82H,0f8H
DB 80H,90H,88H,83H,0b6H,0a1H,86H,8eH
DB 0FFH,00H ;全亮/全滅(#16/#17)
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -