當前位置:編程學習大全網 - 編程軟體 - 單片機程序設計(燈光移位控制)

單片機程序設計(燈光移位控制)

逐個控制P1端口的每個位來實現的,因此程序顯得有點復雜,利用循環移位指令,采用循環程序結構進行編程。我在程序壹開始就給P1口送壹個數,這個數本身就讓P1.0先低,其他位為高,然後延時壹段時間,再讓這個數據向高位移動,然後再輸出至P1口,這樣就實現“流水”效果啦。由於8051系列單片機的指令中只有對累加器ACC中數據左移或右移的指令,因此實際編程中我們應把需移動的數據先放到ACC中,讓其移動,然後將ACC移動後的數據再轉送到P1口,這樣同樣可以實現“流水”效果。具體編程如下所示,程序結構確實簡單了很多。

ORG 0000H ;單片機上電後從0000H地址執行

AJMP START ;跳轉到主程序存放地址處

ORG 0030H ;設置主程序開始地址

START:MOV SP,#60H ;設置堆棧起始地址為60H

MOV  A,#0FEH ;ACC中先裝入LED1亮的數據(二進制的11111110)

MOV  P1,A ;將ACC的數據送P1口

MOV  R0,#7 ;將數據再移動7次就完成壹個8位流水過程

LOOP: RL A ;將ACC中的數據左移壹位

MOV P1,A ;把ACC移動過的數據送p1口顯示

ACALL DELAY ;調用延時子程序

DJNZ R0,LOOP ;沒有移動夠7次繼續移動

AJMP START ;移動完7次後跳到開始重來,以達到循環流動效果

DELAY:  ;延時子程序

MOV R0,#255  ;延時壹段時間

D1: MOV R1,#255

DJNZ R1,$

DJNZ R0,D1

RET ;子程序返回

END ;程序結束

  • 上一篇:在vb中str是什麽意思
  • 下一篇:女初中生畢業後學什麽專業最好
  • copyright 2024編程學習大全網