使用查表方式实现流水灯功能
扫描二维码
随时随地手机看文章
org 0000h
ajmp main
org 0030h
main:
mov dptr,#tab ;将表头地址送入DPTR
mov 30h,#00h ;将30H清零
mov a,30h ;把30H中的数送入ACC中
loop:
movc a,@a+dptr ;查ROM中的表格并将所得结果送入ACC中
mov p0,a ;将查表所得结果送入P0口
inc 30h ;将30H单元加一
mov a,30h ;将30H单元的的值送入ACC中
movc a,@a+dptr ;查表并将所得的结果送入ACC中
mov p2,a ;将ACC中的值送入P2口
mov r4,#10 ;给软件计时器赋值
tt3: ;以下是延时程序延时时间为:10ms*100=1S
lcall delay10ms ;调用10MS延时程序
djnz r4,tt3 ;R4不等于零返回到TT3处循环
inc 30h ;将30H向上加一
mov a,30h ;将30H中的值送入ACC
cjne a,#32,loop ;ACC中的数若与32不相等则返回LOOP处循环
ajmp main ;相等则返回到主程序处继续循环
delay10ms: ; 10ms 延时程序
mov r6,#100
tt2:
mov r5,#50
djnz r5,$
djnz r6,tt2
ret
tab: dw 0ffffh,0000h,0ffffh,0000h
dw 5555h,0aaaah,05555h,0aaaah
dw 00ffh,0ff00h,00ffh,0ff00h
dw 0cccch,3333h,0cccch,3333h
end