/* 跳线设置:默认 实验方法:按int0 这个独立按键你就会发现发光管会一个个都往下亮起来,并且蜂鸣器会响 */ mov r7,#8 main:mov r0,#8 ;一个循环需要移动8位 clr p1.4 mov p0,#01111111b ;初始为P0.7灯点亮 loop: jnb p3.2,loop acall ds1ms jnb p3.2,loop loop1:jb p3.2,loop1 clr p2.2 acall ds1ms ;延时,以便人眼可以观察到 setb p2.2 acall ds1ms mov a,p0 ;读P0口当前显示的数据送到A rr a ;将A中的数据循环右移1位 mov p0,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
|