单片机AT89时钟电路

单片机AT89时钟电路,第1张

汇编程序:

单片机AT89时钟电路,第2张

TIME20 EQU 7DH
ORG 0000H
AJMP MAIN
ORG 000BH
AJMP INTT0
org 0040h
MAIN:
 mov p1,#55h
 mov 7eh,#01h     ;位选首地址
 mov 70h,#11H     ;寄存器
 mov 71h,#59H     ;分寄存器
 mov 72h,#50H     ;秒寄存器
 MOV IE,#82H
 MOV TH0,#3CH
 MOV TL0,#0B0H
 MOV TMOD,#01H
 SETB TR0
 MOV TIME20,#20
loop:
 mov r0,#70h
 mov 7eh,#1       ;位选首地址
 mov 7fh,#3       ;三个寄存器分成六个数码管显示.
 acall display
ajmp loop
;;;;;;;;;;;;;;;;;;;;
display:
 mov a,7eh
 mov dptr,#1F01h
 movx @dptr,a
 rl a
 mov 7eh,a             ;送位选
 mov dptr,#table
 mov a,@r0
 swap a
 anl a,#0fh
 movc a,@a+dptr
 mov dptr,#1F00h
 movx @dptr,a          ;送段选
 acall delay
 
 mov a,7eh
 mov dptr,#1F01h
 movx @dptr,a
 rl a
 mov 7eh,a             ;送位选
 mov dptr,#table
 mov a,@r0
 anl a,#0fh
 movc a,@a+dptr
 mov dptr,#1F00h
 movx @dptr,a          ;送段选
 acall delay
 
 inc r0
 djnz 7fh,display
ret

;;;;;;;;;;;;;;;;;;
delay:
 mov r7,#50
 del:mov r6,#50
 djnz r6,$
 djnz r7,del
ret
;;;;;;;;;;;;;;;;;;
INTT0:
 PUSH ACC
 PUSH PSW
 MOV TH0,#3CH
 MOV TL0,#0B0H
 DJNZ TIME20,OUT
 MOV TIME20,#20
 MOV A,72H
 ADD A,#01H      ;秒寄存器+1
 DA A
 MOV 72H,A
 CJNE A,#60H,OUT  ;秒到了60否?
 MOV 72H,#00H
 MOV A,71H   ;分寄存器+1
 ADD A,#01H
 DA A
 MOV 71H,A
 CJNE A,#60H,OUT  ;分到了60否?
 MOV 71H,#00H
 MOV A,70H   ;时寄存器+1
 ADD A,#01H
 DA A
 CJNE A,#12H,OUT  ;时到了12否?
 MOV 70H,#00H
OUT:
 POP PSW
 POP ACC
RETI

table:
db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h
end

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2433791.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-02
下一篇 2022-08-02

发表评论

登录后才能评论

评论列表(0条)

保存