?? seqled.asm
字號:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;實例四:流水燈 sequence LEDs (《51單片機應用從零開始》 3.4小節實例)
;
;現象:P1口上的發光二極管依次發光
;
;作者:楊欣,劉長煥,張延強 電路飛翔網 eedesign@163.com
;
; http://www.circuitfly.com
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ORG 00H ;起始地址
START: ;程序一開始,初始一些所需要變量,如進位CY的清0等
MOV A, #0FFH ;累加器ACC中8位全置1(FFH),發光二極管全熄滅
CLR C ;進位CY被清0,CY=0
MOV R1, #8 ;R1=8,循環8次(左移8次),用R1作計數器
LEFT: ;這是發光二極管向左"流動"的循環體
RLC A ;把進位CY在累加器ACC中從右向左輪換一位,對照矩陣理解
MOV P1, A ;輸出至P0口
CALL DELAY ;調延時子程序,延時200ms
DJNZ R1, LEFT ;R1減1,如果不為0跳回LEFT繼續執行,否則執行下一行
MOV R2, #7 ;R2=7,為向右"流動"設置次數,考慮一下為什么不是8?
RIGHT: ;這是發光二極管向右"流動"的循環體
RRC A ;把進位CY在累加器ACC中從左向右輪換一位
MOV P1, A ;輸出至P0口
CALL DELAY ;調延時子程序,延時200ms
DJNZ R2, RIGHT ;是否右移了7次,如果不是則跳回RIGHT繼續執行
JMP START ;跳回一開始,重復執行該流水燈程序
DELAY: ;延時200ms的子程序
MOV R3, #20
D1:
MOV R4, #20
D2:
MOV R5, #248
DJNZ R5, $ ;R5減1,如果不為0,就執行本行
DJNZ R4, D2
DJNZ R3, D1
RET ;子程序結束標志,返回主程序
END ;程序結束點
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -