buf1 equ 30h
buf2 equ 31h
buf_b1 bit 00h
buf_b2 bit 01h
org 0000h
ajmpstart
org0030h
start:;
mov buf1,#0ffh
mov buf2,#0ffh
mov a,#00h
clr buf_b1;
clr buf_b2;
mov r2,#08h;循環(huán)八次。
loop:
mov a,buf1;
mov c,buf_b1;
rlc a;帶進(jìn)位左移。
mov p0,a;輸出到P1口。
mov buf1,a;
mov buf_b1,c;
mov a,buf2 ;
mov c,buf_b2 ;
rrc a ;
mov p1,a ;
mov buf2,a
mov buf_b2,c
call delay;延時一段時間
djnz r2,loop;反復(fù)循環(huán)
mov r2,#07h;再往回循環(huán)。
loop1:
mov a,buf1;
mov c,buf_b1 ;
rrc a;帶進(jìn)位右移
mov p0,a ;
mov buf1,a ;
mov buf_b1,c ;
mov a,buf2;
mov c,buf_b2;
rlc a ;
mov p1,a;
mov buf2,a;
mov buf_b2,c;
call delay;延時一段時間
djnz r2,loop1;反復(fù)循環(huán)
jmp start;重新開始
delay:mov r3,#20;延時子程序
d1:mov r4,#20
d2:mov r5,#248
djnz r5,$
djnz r4,d2
djnz r3,d1
ret
end