mov r7,#8
main:mov r0,#8 ;一個循環需要移動8位
mov p1,#01111111b ;初始為P0.7燈點亮
loop:
jnb p3.4,loop
acall ds1ms
jnb p3.4,loop
loop1:jb p3.4,loop1
clr p2.3
acall ds1ms ;延時,以便人眼可以觀察到
setb p2.3
acall ds1ms
mov a,p1 ;讀P0口當前顯示的數據送到A
rr a ;將A中的數據循環右移1位
mov p1,a ;再將A中右移過的數據送到P0
djnz r0,loop
djnz r7,main ;移動不夠8位,跳到LOOP處循環,
ljmp rel ;流動1遍跳轉到MAIN處循環流。
;---顯示延時----------
ds1ms: mov r1,#2
ds1lo: mov r2,#20
ds2lo: mov r3,#200
djnz r3,$
djnz r2,ds2lo
djnz r1,ds1lo
ret ;延時返回
rel:end
|