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