加載程序后數(shù)碼管,無顯示,30--32H存放秒。分。時(shí)。經(jīng)BCD轉(zhuǎn)化,秒數(shù)值放在40H,41H。分放在43,44.時(shí)放在46,47H。//42H,45H
放#10,對(duì)應(yīng)表格DB第十一個(gè)數(shù),數(shù)碼管顯示——,K1 ,K1調(diào)分和時(shí)
K1 BIT P1.0
K2 BIT P1.1
ORG 0000H
AJMP START
ORG 000BH
AJMP DS0
ORG 0030H
START: CLR A
MOV R1,#7FH //初始化清零
CL: MOV @R1,A
DJNZ R1,CL
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB EA //開定時(shí)中斷0
SETB ET0
SETB TR0
MOV R2,#14H //計(jì)時(shí)次數(shù)
MOV 42H,#0AH // 顯示--的DB位置
MOV 45H,#0AH // 顯示--的DB位置
MAIN: LCALL KEY
LCALL ZH //轉(zhuǎn)化
LCALL DIS //調(diào)顯示
AJMP MAIN
KEY: JNB K1,KEY1 //分。時(shí)調(diào)時(shí)
JNB K2,KEY2
RET
KEY1: LCALL DEL
JB K1,KEYEND //分加一
INC 31H
MOV A,31H
CJNE A,#3CH,KEYEND
MOV 31H,#00H
KEYEND: RET
KEY2: LCALL DEL
JB K2,KEYEND //時(shí)加一
INC 32H
MOV A,32H
CJNE A,#18H,KEYEND
MOV 32H,#00H
RET
DIS: MOV R0,#40H //顯示放置初地址
MOV 36H,#7FH //秒鐘位碼地址
MOV R4,#08H //顯示次數(shù)
DIS1: MOV A,@R0
MOV DPTR,#DUAN
MOVC A,@A+DPTR
MOV P0,A
SETB P2.2
CLR P2.2
MOV A,36H
MOV P0,A
SETB P2.3
//LCALL DEL
CLR P2.3
LCALL DEL
INC R0
RR A
MOV 36H,A
DJNZ R4,DIS1
RET
ZH: MOV R0,#30H
MOV R3,#03H //時(shí)分秒轉(zhuǎn)化,秒鐘由30H轉(zhuǎn)到40 41,分由31轉(zhuǎn)到43 44,
MOV R1,#40H //時(shí)由32H轉(zhuǎn)到46H 47H
ZH1: MOV A,@R0
MOV B,#10
DIV AB
XCH A,B
MOV @R1,A
INC R1
MOV @R1,B
INC R0
INC R1
INC R1
DJNZ R3 ,ZH1
RET
DS0: PUSH ACC
PUSH PSW
//CLR ET0
CLR TR0
MOV TH0,#3CH
MOV TL0,#0B3H
SETB TR0
DJNZ R2,TC
MOV R2,#14H
INC 30H
MOV A,30H
CJNE A,#3CH,TC
MOV 30H,#00H
INC 31H
MOV A,31H
CJNE A,#3CH,TC
MOV 31H,#00H
INC 32H
MOV A,32H
CJNE A,#18H,TC
MOV 32H,#00H
MOV 31H,#00H
MOV 30H,#00H
TC: POP PSW
POP ACC
RETI
DUAN: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H
DEL: MOV R7,#50
DEL1: MOV R6,#100
DJNZ R6,$
DJNZ R7,DEL1
RET
END
|