各种流水灯程序
1楼
0
0
回复
;左移
star: mov r3,#8 ;设置流水位数
mov p1,#11111110b ;从p1.0开始
loop: acall d01s
mov a,p1 ;读取p1当前数据到acc
rl a ;左移一位
mov p1,a ;将左移的数据再送到p1
djnz r3,loop ;没有完成8位继续
;******************
mov p1,#0ffh ;熄灭所有灯
;******************
;右移
mov r3,#8 ;设置流水位数
mov p1,#01111111b ;从p1.7开始
loop1: acall d01s
mov a,p1 ;读取p1当前数据到acc
rr a ;右移一位
mov p1,a ;将左移的数据再送到p1
djnz r3,loop1 ;没有完成8位继续
ljmp star ;完成后返回到开始再来
;延时子程序
d01s: mov r0,#255
d01l1: mov r1,#198
djnz r1,$
djnz r0,d01l1
ret
end