buf1 equ 30h
buf2 equ 31h
buf_b1 bit 00h
buf_b2 bit 01h
org 0000h
ajmp start
org 0030h
start:;
mov buf1,#0ffh
mov buf2,#0ffh
mov a,#00h
clr buf_b1;
clr buf_b2;
mov r2,#08h ;循环八次。
loop:
mov a,buf1 ;
mov c,buf_b1;
rlc a ;带进位左移。
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 ;反复循环
mov r2,#07h ;再往回循环。
loop1:
mov a,buf1;
mov c,buf_b1 ;
rrc a ;带进位右移
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 ;反复循环
jmp start ;重新开始
delay: mov r3,#20 ;延时子程序
d1: mov r4,#20
d2: mov r5,#248
djnz r5,$
djnz r4,d2
djnz r3,d1
ret
end
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』