51モノリシックマシンアセンブリ簡易クロック作成
1775 ワード
51モノリシックマシンアセンブリ簡易クロック作成
SEC EQU 41H
MINU EQU 42H
HOUR EQU 43H
BELL EQU P1.5
LC EQU P2.4 ; 138 C,B,A
LB EQU P2.3
LA EQU P2.2
LED EQU P0 ;P0 8
ORG 0000H
AJMP MAIN
ORG 000BH ; 0
LJMP INT_0
MAIN:
MOV R1,#14H ;
CLR A
MOV 41H,A ;
MOV MINU,A ;
MOV HOUR,A ;
SETB EA ;
SETB ET0 ; 0
MOV TCON,#01H ;
MOV TH0,#3CH
MOV TL0,#0B0H ;
SETB TR0 ;
LOOP:
MOV A,SEC ; A
LCALL DEAL ;
CLR LA ;
CLR LB
CLR LC
MOV A,45H ;
LCALL DISPLAY
LCALL DELAY500US
MOV LED,#00H ;
SETB LA ;
CLR LB
CLR LC
MOV A,46H ;
LCALL DISPLAY
LCALL DELAY500US
MOV LED,#00H ;
MOV A,MINU ; A
LCALL DEAL
CLR LA
SETB LB
CLR LC
MOV A,45H
LCALL DISPLAY
LCALL DELAY500US
MOV LED,#00H ;
SETB LA
SETB LB
CLR LC
MOV A,46H
LCALL DISPLAY
LCALL DELAY500US
MOV LED,#00H ;
MOV A,HOUR ;
LCALL DEAL
CLR LA
CLR LB
SETB LC
MOV A,45H
LCALL DISPLAY
LCALL DELAY500US
MOV LED,#00H ;
SETB LA
CLR LB
SETB LC
MOV A,46H
LCALL DISPLAY
LCALL DELAY500US
MOV LED,#00H ;
SJMP LOOP
INT_0:
PUSH PSW ;
PUSH Acc
MOV TH0,#3CH
MOV TL0,#0B0H ;
DJNZ R1,RETURN
MOV R1,#14H ;
INC SEC
MOV A,SEC
DA A
MOV SEC,A
CJNE A,#60H,RETURN
MOV SEC,#00H
INC MINU ;
MOV A,MINU
DA A
MOV MINU,A
CJNE A,#60,RETURN
MOV MINU,00H
INC HOUR ;
MOV A,HOUR
DA A
MOV HOUR,A
CJNE A,#24,RETURN
MOV HOUR,#00H ; 0
DEAL:
MOV 44H,#00H ;R0
MOV R0,#44H
XCHD A,@R0 ;R0 A
RL A ;
RL A
RL A
RL A
MOV 45H,44H ;
MOV 46H,A ;
RET
DISPLAY:
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV LED,A
RET
DELAY500US: ;@11.0592MHz
NOP
PUSH 30H
PUSH 31H
MOV 30H,#5
MOV 31H,#72
NEXT:
DJNZ 31H,NEXT
DJNZ 30H,NEXT
POP 31H
POP 30H
RET
RETURN:
POP Acc
POP PSW
RETI
TAB:
DB 3fH,06H,5bH,4fH,66H
DB 6dH,7dH,07H,7fH,6fH
END