org 00h jmp config
config: mov r0,#0 mov r1,#0 mov r2,#0 mov r3,#0 mov r4,#0 mov r5,#0 mov r6,#0 mov r7,#0 clr 40h clr 41h clr 42h clr 43h
jmp main main: call k0 call k1 call k2 call k3 call bg call js call d1 call d2 inc r7 cjne r7,#4 ,main mov r7,#0 jmp main
k0:setb p3.1 jb p3.1,k01 djnz 56h,$ jb p3.1,k01 setb 30h setb 40h jmp k02 k01:clr 30h k02: jb 30h,k0end djnz 56h,$ jb 30h,k0end jnb 40h,k0end djnz 56h,$ jnb 40h,k0end clr 40h mov r6,#0 mov r5,#0 k0end:ret
k1:setb p3.0 jb p3.0,k11 djnz 56h,$ jb p3.0,k11 setb 31h setb 41h jmp k12 k11:clr 31h k12: jb 31h,k1end djnz 56h,$ jb 31h,k1end jnb 41h,k1end djnz 56h,$ jnb 41h,k1end clr 41h mov r4,#0 mov r3,#0 k1end:ret
k2:setb p3.7 jb p3.7,k21 djnz 56h,$ jb p3.7,k21 setb 32h setb 42h jmp k22 k21:clr 32h k22: jb 32h,k2end djnz 56h,$ jb 32h,k2end jnb 42h,k2end djnz 56h,$ jnb 42h,k2end clr 42h inc r6;这才是按键的功能 cjne r6,#100,k2end mov r6,#0 inc r5 cjne r5,#100,k2end mov r5,#0
k2end:ret
k3:setb p3.6 jb p3.6,k31 djnz 56h,$ jb p3.6,k31 setb 33h setb 43h jmp k32 k31:clr 33h k32: jb 33h,k3end djnz 56h,$ jb 33h,k3end jnb 43h,k3end djnz 56h,$ jnb 43h,k3end clr 43h inc r4;这才是按键的功能 cjne r4,#100,k3end mov r4,#0 inc r3 cjne r3,#100,k3end mov r3,#0 k3end:ret
bg: mov 38h,r5 mov a,r3 cjne a,38h,bg1 mov 38h,r6 mov a,r4 cjne a,38h,bg1
bg1:jc bgend setb p3.5 clr p3.4 ret
bgend: setb p3.4 clr p3.5 ret
js: mov a,r6 mov b,#10 div ab ;将秒计算后送入显示缓存 mov 37h,b mov 36h,a
mov a,r5 mov b,#10 div ab ;将分计算后送入显示缓存 mov 35h,b mov 34h,a
mov a,r4 mov b,#10 div ab ;将小时计算后送入显示缓存 mov 33h,b mov 32h,a
mov a,r3 mov b,#10 div ab ;将小时计算后送入显示缓存 mov 31h,b mov 30h,a
ret
d1: mov p2,#0ffh anl p0,#11110000b ds0:cjne r7,#0,ds1 setb p0.3 mov a,30h jmp ledtab ds1:cjne r7,#1,ds2 setb p0.2 mov a,31h jmp ledtab ds2:cjne r7,#2,ds3 setb p0.1 mov a,32h jmp ledtab ds3:cjne r7,#3,ed1 setb p0.0 mov a,33h jmp ledtab ed1:ret ledtab: mov dptr,#table movc a,@a+dptr cpl a mov p2,a jmp ed1
d2: mov p1,#0ffh anl p0,#00001111b ds20:cjne r7,#0,ds21 setb p0.7 mov a,34h jmp ledtab1 ds21:cjne r7,#1,ds22 setb p0.6 mov a,35h jmp ledtab1 ds22:cjne r7,#2,ds23 setb p0.5 mov a,36h jmp ledtab1 ds23:cjne r7,#3,ed2 setb p0.4 mov a,37h jmp ledtab1 ed2:ret ledtab1: mov dptr,#table movc a,@a+dptr cpl a mov p1,a jmp ed2
table:db 00111111b,00000011b,01101101b,01100111b,01010011b,01110110b,01111110b,00100011b,01111111b,01110111b end
|