org 0000h ajmp main org 000bh ljmp inti0 org 001bh ljmp inti1 org 0030h main:mov tmod,#11h mov ie,#8ah mov th0,#4ch mov tl0,#00h mov th1,#4ch mov tl1,#00h mov sp,#60h mov r0,#20 mov 31h,#00 mov 32h,#00 mov 33h,#00 mov 38h,#00 mov 39h,#00 setb tr0 setb tr1 loop:lcall display lcall key lcall keynz ajmp loop inti0:push psw push acc clr ea mov th0,#4ch mov tl0,#00h djnz r0,out mov r0,#20 inc 31h cpl p2.2 mov a,31h cjne a,#60,out mov 31h,#00 inc 32h mov a,32h cjne a,#60,out mov 32h,#00 inc 33h mov a,33h cjne a,#24,out mov 33h,#00 out: setb ea pop acc pop psw reti inti1:push psw push acc clr ea mov th1,#4ch mov tl1,#00h inc 3ah mov a,3ah cjne a,#20,out1 mov 3ah,#00 mov a,32h cjne a,38h,out1 mov a,33h cjne a,39h,out1 clr p1.0 out1: setb ea pop acc pop psw reti display:mov a,31h mov b,#10 div ab mov 20h,a mov 21h,b disp1: mov a,20h mov dptr,#table movc a,@a+dptr mov p0,a clr p2.0 lcall del1ms setb p2.0 disp2: mov a,21h mov dptr,#table movc a,@a+dptr mov p0,a clr p2.1 lcall del1ms setb p2.1 disp3: mov a,32h mov b,#10 div ab mov 22h,a mov 23h,b disp4: mov a,22h mov dptr,#table movc a,@a+dptr mov p0,a clr p2.6 lcall del1ms setb p2.6 disp5: mov a,23h mov dptr,#table movc a,@a+dptr mov p0,a clr p2.7 lcall del1ms setb p2.7 disp6: mov a,33h mov b,#10 div ab mov 24h,a mov 25h,b disp7: mov a,24h mov dptr,#table movc a,@a+dptr mov p0,a clr p2.4 lcall del1ms setb p2.4 disp8: mov a,25h mov dptr,#table movc a,@a+dptr mov p0,a clr p2.5 lcall del1ms setb p2.5 ret display1:mov a,38h mov b,#10 div ab mov 26h,a mov 27h,b dispnz1:mov a,26h mov dptr,#table movc a,@a+dptr mov p0,a clr p2.6 lcall del1ms setb p2.6 dispnz2:mov a,27h mov dptr,#table movc a,@a+dptr mov p0,a clr p2.7 lcall del1ms setb p2.7 dispnz3:mov a,39h mov b,#10 div ab mov 28h,a mov 29h,b dispnz4:mov a,28h mov dptr,#table movc a,@a+dptr mov p0,a clr p2.4 lcall del1ms setb p2.4 dispnz5:mov a,29h mov dptr,#table movc a,@a+dptr mov p0,a clr p2.5 lcall del1ms setb p2.5 ret table:db 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H del1ms:mov r7,#10 del1: mov r6,#50 del2:djnz r6,del2 djnz r7,del1 ret del20ms:mov r5,#40 del3:mov r4,#250 del4:djnz r4,del4 djnz r5,del3 ret key:jnb p3.2,key1 jnb p3.3,key2 sjmp keyout key1:lcall del20ms jb p3.2,keyout jnb p3.2,$ inc 32h mov a,32h cjne a,#60,keyout mov 32h,#00 sjmp keyout key2:lcall del20ms jb p3.3,keyout jnb p3.3,$ inc 33h mov a,33h cjne a,#24,keyout mov 33h,#00 sjmp keyout keyout:ret keynz:jnb p3.4,keynz1 jnb p3.5,keynz2 jnb p3.6,keynz3 jnb p3.7,keynz4 sjmp nzout nz1:lcall display1 jnb p3.5,keynz2 jnb p3.6,keynz3 keynz1:jnb p3.4,nz1 sjmp nzout keynz2:lcall del20ms jb p3.5,nzout jnb p3.5,$ inc 38h mov a,38h cjne a,#60,nzout mov 38h,#00 sjmp nzout keynz3:lcall del20ms jb p3.6,nzout jnb p3.6,$ inc 39h mov a,39h cjne a,#24,nzout mov 39h,#00 sjmp nzout keynz4:jb p3.7,nzout jnb p3.7,$ setb p1.0 sjmp nzout nzout:ret end |