基于单片机实现的数字钟
org 0000h
jmp start
org 0bh
jmp tim0
start:
mov sp,#70h
mov 24h,#0ffh
mov 23h,#0ffh
mov 22h,#0ffh
mov 21h,#0ffh
mov 2ch,#00
mov 2bh,#00
mov 2ah,#12
mov tmod,#01h
mov th0,#(65536-10000)/256
mov tl0,#(65536-10000)mod 256
mov ie,#10000010b
mov r4,#170
mov dptr ,#0ffech
setb tr0
loop:
jb p3.5, n2
call delay
clr p1.7
mov a,2bh
add a,#01h
mov 2bh,a
cjne a,#60,n1
mov 2bh,#00
n1:
jnb p3.5,$
setb p1.7
call delay
n2: jb p3.4,n4
call delay
clr p1.0
mov a,2ah
add a,#01h
mov 2ah,a
cjne a,#24,n3
mov 2ah,#00
n3: jnb p3.4,$
setb p1.0
call delay
n4:
jmp loop
tim0:
setb p1.4
mov th0,#(65536-10000)/256
mov tl0,#(65536-10000)mod 256
push acc
push psw
djnz r4,x2
mov r4,170
call clock
call disp
x2: call x3
pop psw
pop acc
reti
x3:
mov dptr,#0ffefh
mov a,21h
movx @dptr,a
mov dptr,#0ffeeh
mov a,22h
movx @dptr,a
mov dptr,#0ffedh
mov a,23h
movx @dptr,a
mov dptr,#0ffech
mov a,24h
movx @dptr,a
ret
clock:
mov a,2ch
add a,#1
mov 2ch,a