/* 跳線設置:默認 實驗方法:按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
|