?? sqeledtable.asm
字號:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;實例八:取表實現流水燈 sequencer performed by looking up the table (《51單片機應用從零開始》 6.4小節實例)
;
;現象:用取表的方式,將顯示數據輸出至發光二極管,以實現流水燈的效果
;
;作者:楊欣,劉長煥,張延強 電路飛翔網 eedesign@163.com
;
; http://www.circuitfly.com
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ORG 00H
START: ;程序一開始裝表,即把DPRT指到表TABLE的開頭
MOV DPTR, #TABLE ; 數據指針寄存器DPTR指向表TABLE
LOADTABLE: ;取表程序段,表中的數據載入累加器ACC中,并判斷是否已經完成
CLR A ; 累加器ACC清0
MOVC A, @A+DPTR ; 基址加變址尋址,將表中數據加載到ACC
CJNE A, #88H, DISPLAY ; 如果取到88H表明表已經取完,否則顯示
JMP START ; 如果取完,跳回START重新開始
DISPLAY: ;顯示程序段,將從數據表中載入累加器ACC的數據輸出到P0
MOV P1, A ; 將ACC中數據輸出至P0口
CALL DELAY ; 調延時子程序
INC DPTR ; 數據指針寄存器自加1,準備取表中的下一個數據
JMP LOADTABLE ; 跳到取表程序段
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 ;子程序結束標志,返回主程序
TABLE: ;本程序的數據表
DB 0FEH, 0FDH, 0FBH, 0F7H ; 左移
DB 0EFH, 0DFH, 0BFH, 07FH
DB 07FH, 0BFH, 0DFH, 0EFH ; 右移
DB 0F7H, 0FBH, 0FDH, 0FEH
DB 88H ; 結束碼
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -