sda equ p3.7
scl equ p3.6
xybz equ f0
buf equ 30h
p_adr equ 00h
org 0000h
ajmp rd24c
org 0001h
ajmp rd24c
org 001bh
ajmp time1
org 000bh
ajmp time
org 0013h
ajmp main
org 80h
rd24c: mov 20h,#00h
mov 40h,#150
mov 45h,#00h
mov 46h,#00h
mov 47h,#00h
mov dptr,#p_adr
rd24c1: clr ea
acall fbzm
acall csxy
jb xybz,rd24c1
acall fdpl
acall fjsm
mov a,r3
acall fsmw
acall csxy
jb xybz,rd24c1
mov r0,#buf
mov r2,#00h
rd24c2: mov r1,#08h
rd24c3: setb scl
setb sda
mov c,sda
rlc a
clr scl
djnz r1,rd24c3
mov @r0,a
inc r0
inc r2
cjne r2,#04h,ww
acall fjsm
mov tmod,#26h
mov th1,#0c8h
mov tl1,#0c8h
mov th0,#0fbh
mov tl0,#0fbh
mov ip,#04h
mov ie,#86h
mov tcon,#18h
mov sp,#70h
next: lcall disp
lcall key
lcall ankey
sjmp next
nop
nop
nop
ww: acall fyd
ajmp rd24c2
fbzm: setb sda
setb scl
mov a,dph
clr c
rlc a
anl a,#0fh
orl a,#0a0h
mov r3,a
inc r3
fsmw: clr sda
fsmw1: mov r1,#08h
fsmw2: clr scl
rlc a
mov sda,c
setb scl
djnz r1,fsmw2
clr scl
ret
csxy: setb sda
setb scl
clr xybz
jnb sda,csxy1
setb xybz
csxy1: clr scl
ret
fyd: clr sda
setb scl
nop
clr scl
setb sda
ret
fjsm: clr sda
setb scl
nop
setb sda
ret
fdpl: mov a,dpl
facc: acall fsmw1
acall csxy
ret
time: push acc
push psw
setb p2.7
inc 20h
mov a,20h
cjne a,#0ah,reti2
mov 20h,#00h
mov a,32h
add a,#01h
mov 32h,a
cjne a,#64h,reti1
mov 32h,#00h
mov a,33h
add a,#01h
mov 33h,a
cjne a,#64h,reti1
mov 33h,#00h
reti1: mov a,33h
mov a,30h
mov a,31h
mov a,32h
cjne a,30h,reti2
mov a ,33h
cjne a,31h,reti2
clr p2.7
ljmp reti3
nop
reti3: lcall delay1
ljmp main
nop
nop
reti2: pop psw
pop acc
reti
nop
nop
disp: mov dptr,#table
loop1: mov b,#10
mov a,32h
div ab
mov 79h,b
mov 7ah,a
mov b,#10
mov a,33h
div ab
mov 7bh,b
mov 7ch,a
mov a,79h
movc a,@a+dptr
mov p0,a
clr p1.0
acall delay1
setb p1.0
mov a,7ah
add a,#0ah
movc a,@a+dptr
mov p0,a
clr p1.1
acall delay1
setb p1.1
mov a,7bh
movc a,@a+dptr
mov p0,a
clr p1.2
acall delay1
setb p1.2
mov a,7ch
movc a,@a+dptr
mov p0,a
clr p1.3
acall delay1
setb p1.3
ret
nop
nop
table: db 05h,0bdh,26h,34h
db 9ch,54h,44h,3dh
db 04h,14h,01h,0b9h
db 22h,30h,98h,50h
db 40h,39h,00h,10h
nop
nop
key: jnb p2.0,rete
jnb p2.4,rete
ret
nop
nop
rete: lcall disp
reti
ankey: clr ea
mov 40h,#150
lx: mov a,40h
dec a
jz l9
mov 40h,a
lcall de10ms
jnb p2.0,l1
jnb p2.1,l6
jnb p2.4,l7
lcall disp
ajmp lx
nop
nop
lx2: lcall disp
mov a,44h
mov 34h,a
mov a,43h
mov 33h,a
mov a,42h
mov 32h,a
ljmp l6
l7: ljmp l71
l21: mov a,32h
mov 30h,a
mov a,33h
mov 31h,a
mov a,43h
mov 33h,a
mov a,42h
mov 32h,a
l6: jnb p2.1,l25
l9: setb ea
ljmp next
l25: lcall disp
ajmp l21
nop
l1: jnb p2.0,l11
mov a,33h
mov 43h,a
mov a,32h
mov 42h,a
mov a,30h
mov 32h,a
mov a,31h
mov 33h,a
lcall disp
l31: mov 41h,#1bh
mov 40h,#180
l32: mov a,40h
dec a
jz lx2
mov 40h,a
lcall de10ms
jnb p2.2,l311
jnb p2.3,l5
jnb p2.1,l21
lcall disp
ajmp l32
nop
nop
l11: lcall disp
ajmp l1
nop
L313:dec a
mov 41h,a
AJMP L12
l5: mov a,41h
cjne a,#02h,L313
l12: lcall de10ms
mov a,32h
add a,#01h
mov 32h,a
cjne a,#64h,l312
mov 32h,#00h
mov a,33h
add a,#01h
mov 33h,a
cjne a,#64h,l312
mov 33h,#00h
l312: jnb p2.2,l311
ljmp l31
nop
nop
L51:dec a
mov 41h,a
AJMP L55
l5: mov a,41h
cjne a,#02h,l51
l55: lcall de10ms
mov a,32h
dec a
mov 32h,a
cjne a,#0ffh,l51
mov 32h,#63h
mov a,33h
dec a
mov 33h,a
cjne a,#0ffh,l51
mov 33h,#63h
l51: jnb p2.3,l5
ljmp l31
nop
nop
l70: clr tr0
setb tr1
time2: lcall disp
ajmp time2
time1: mov a,45h
add a,#01h
mov 45h,a
cjne a,#32h,time2
mov 45h,#00h
mov a,46h
add a,#01h
mov 46h,a
cjne a,#64h,time2
mov 46h,#00h
mov a,47h
add a,#01h
mov 47h,a
cjne a,#32h,time2
mov 47h,#00h
clr tr1
setb tr0
ajmp l71
nop
nop
l71: jnb p2.4,l73
mov 32h,#00h
mov 33h,#00h
l72: ljmp l6
l73: lcall disp
ajmp l71
main: mov dptr,#p_adr
wr24c1: clr ea
acall fbzm
acall csxy
jb xybz,wr24c1
acall fdpl
mov r0,#buf
mov r2,#00h
wr24c2: mov a,@r0
acall facc
inc r0
inc r2
cjne r2,#04h,wr24c2
acall fjsm
acall de10ms
setb ea
ljmp l70
nop
de10ms: mov a,41h
mov r7,a
nop
loop2: lcall disp
djnz r7,loop2
ret
nop
delay1: mov r6,#80h
djnz r6,$
ret
nop
nop
end
;第二处
L5: MOV A , 41H
CJNE A , #02H , L51
;两处调用,有同名字
;且CJNE 这行标点是汉字的标点,不是西文的,不知道怎么编译通过的
;没看程序