st5: jnc st0
jb p1.4,st6 clr c mov r0,#5 ;clr p1.7
;setb p1.4 ;setb p1.5 ; setb p1.6
call DisplayLED5;显示 jb p1.5,st0 clr c mov r0,#6 ;clr p1.7 st6: jnc st0
;setb p1.4 ;setb p1.5 ; setb p1.6
call DisplayLED6;显示 ljmp st0
Delay: ;延时子程序 mov r7,#0 DelayLoop: djnz r7,DelayLoop djnz r6,DelayLoop ret
DisplayLED0:
mov r2,#11111100b;从左边开始显示 Loop:
movdptr,#OUTBIT clr a
movx @dptr,a ;关所有八段管
movdptr,#LedMap
mov a,r0
movc a,@a+dptr ;数字转换成显示码
10
movdptr,#OUTSEG movx @dptr,a movdptr,#OUTBIT mov a,r2
movx @dptr,a ;显示一位八段管
mov r6,#01 call Delay ret
DisplayLED1:
mov r2,#10000000b;左边第一位开始显示 movdptr,#OUTBIT clr a
movx @dptr,a ;关所有八段管
movdptr,#LedMap
mov a,r0
movc a,@a+dptr ;数字转换成显示码 movdptr,#OUTSEG movx @dptr,a movdptr,#OUTBIT mov a,r2
movx @dptr,a ;显示一位八段管
mov r6,#01 call Delay ret
DisplayLED2:
mov r2,#01000000b;从左边开始显示
movdptr,#OUTBIT clr a
movx @dptr,a ;关所有八段管
11
movdptr,#LedMap
mov a,r0
movc a,@a+dptr ;数字转换成显示码 movdptr,#OUTSEG movx @dptr,a movdptr,#OUTBIT mov a,r2
movx @dptr,a ;显示一位八段管
mov r6,#01 call Delay ret
DisplayLED3:
mov r2,#00100000b;从左边开始显示
movdptr,#OUTBIT clr a
movx @dptr,a ;关所有八段管
movdptr,#LedMap
mov a,r0
movc a,@a+dptr ;数字转换成显示码 movdptr,#OUTSEG movx @dptr,a movdptr,#OUTBIT mov a,r2
movx @dptr,a ;显示一位八段管
mov r6,#01 call Delay ret
DisplayLED4:
mov r2,#00010000b;从左边开始显示
12
movdptr,#OUTBIT clr a
movx @dptr,a ;关所有八段管
movdptr,#LedMap
mov a,r0
movc a,@a+dptr ;数字转换成显示码 movdptr,#OUTSEG movx @dptr,a movdptr,#OUTBIT mov a,r2
movx @dptr,a ;显示一位八段管
mov r6,#01 call Delay ret
DisplayLED5:
mov r2,#00001000b;从左边开始显示
movdptr,#OUTBIT clr a
movx @dptr,a ;关所有八段管
movdptr,#LedMap
mov a,r0
movc a,@a+dptr ;数字转换成显示码 movdptr,#OUTSEG movx @dptr,a movdptr,#OUTBIT mov a,r2
movx @dptr,a ;显示一位八段管
mov r6,#01 call Delay ret
13
DisplayLED6:
mov r2,#00000100b;从左边开始显示
movdptr,#OUTBIT clr a
movx @dptr,a ;关所有八段管
movdptr,#LedMap
mov a,r0
movc a,@a+dptr ;数字转换成显示码 movdptr,#OUTSEG movx @dptr,a movdptr,#OUTBIT mov a,r2
movx @dptr,a ;显示一位八段管
mov r6,#01 call Delay ret 发声程序:
BARK: SETB RING ACALL DELAY1 ACALL DELAY1 CLR RING;按键发声 RET
LedMap: ;八段管显示码
db 0c0h,0f9h,0a4h,0b0h,099h,092h,082h,0f8h db 080h,090h,088h,083h,0c6h,0a1h,086h,08eh end
六调试及验证 1 调试步骤
14