導航:首頁 > 編程語言 > 匯編語言流水燈程序

匯編語言流水燈程序

發布時間:2024-05-10 10:54:15

A. 單片機匯編語言流水燈程序延時0.5秒 一共四個燈循環

四個燈假設接在P1.0~P1.3上。晶振採用12M,這里用定時器中斷方式實現4個燈的流水燈效果,程序如下:
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H

MOV TH0,#HIGH(65536-50000) //定時50毫秒初值

MOV TL0,#LOW(65536-50000)

SETB TR0

SETB ET0

SETB EA

MOV R2,#0

MOV A,#0FEH

MOV P1,A

SJMP $

T0ISR:
CLR TR0

MOV TH0,#HIGH(65536-50000)

MOV TL0,#LOW(65536-50000)

SETB TR0

INC R2
CJNE R2,#10,T0E //10次定時0.5秒
MOV R2,#0
RL A
JNB ACC.4,T01
MOV P1,A
RETI
T01:
MOV A,#0FEH
T0E:
RETI
END

B. 匯編語言 51單片機,外部中斷控制流水燈

ORG 0000H ; 試試這個 流水燈的編碼隨便改

LJMP MAIN

ORG 0003H

LJMP LINT0

ORG 000BH

LJMP LT0ZD

ORG 0030H

MAIN: MOV SP, #60H

MOV TMOD, #00H

MOV IE, #81H

MOV TL0, #(8192-2500)MOD 32

MOV TH0, #(8192-2500)/32

SETB TR0

MOV R5, #20

LOOP: MOV R3, #48

CJNE R3, #0, $

LJMP LOOP


LINT0: CPL ET0

RETI


LT0ZD: PUSH PSW ; T0 中斷

PUSH ACC

MOV TL0, #(8192-2500)MOD 32

MOV TH0, #(8192-2500)/32

DJNZ R5, LT0Z2

MOV R5, #30 ; 可以調整速度

MOV A, R3

LCALL LSDIN

MOV P1, A

DEC R3

LT0Z2: POP ACC

POP PSW

RETI


LSDIN: MOVC A,@A+PC

RET


LSDBM: DB 11111110B,11111101B,11111011B,11110111B ; 流水燈的編碼1

DB 11101111B,11011111B,10111111B,01111111B

DB 01111111B,10111111B,11011111B,11101111B

DB 11110111B,11111011B,11111101B,11111110B

DB 11111100B,11111001B,11110011B,11100111B ; 流水燈的編碼2

DB 11001111B,10011111B,00111111B,01111110B

DB 01111110B,00111111B,10011111B,11001111B

DB 11100111B,11110011B,11111001B,11111100B

DB 11111000B,11110001B,11100011B,11000111B ; 流水燈的編碼3

DB 10001111B,00011111B,00111110B,01111100B

DB 01111100B,00111110B,00011111B,10001111B

DB 11000111B,11100011B,11110001B,11111000B

END

C. 流水燈匯編語言程序

ORG 0000H ;程序開始
SJMP START ;跳轉到START
ORG 0050H ;START從ROM的0050H開始存儲
START: MOVE P1.0,#00000001B ;把二進制數00000001B送到P1口
LCALL DELAY ;調用延時子程序
MOVE P1.0,#00000010B ;把二進制數00000010B送到P1口
LCALL DELAY
MOVE P1.0,#00000100B
LCALL DELAY
MOVE P1.0,#00001000B
LCALL DELAY
MOVE P1.0,#00010000B
LCALL DELAY
MOVE P1.0,#00100000B
LCALL DELAY
MOVE P1.0,#01000000B
LCALL DELAY
MOVE P1.0,#10000000B
LCALL DELAY
LJMP START ;跳轉到START

;延時子程序DELAY,改變R5、R6、R7中的值(0到255),可以改變延時時間
DELAY: MOV R5,#20 ;把20放到寄存器R5中,
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$ ;把寄存器R7中的內容減1,如果結果不定於0,則跳轉到本身,如果等於0,執行下一條程序
DJNZ R6,D2 ;把寄存器R6中的內容減1,如果結果不定於0,則跳轉到本身,如果等於0,跳轉到D2
DJNZ R5,D1
RET
END

D. 用匯編語言編流水燈,有8個LED燈,LED1~LED8 燈按順序點亮,每個等亮一秒轉到下個燈,一直循環亮

這個流水燈是很普通的一種花樣,假設LED接P1口,程序如下:
ORG 0000H
LJMP MAIN
0RG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H

MOV TH0,#HIGH(65536-50000) ;50毫秒定時

MOV TL0,#LOW(65536-50000)

SETB TR0

SETB ET0

SETB EA

MOV A,#0FEH
MOV P1,A

MOV R2,#20
SJMP $

T0ISR:
CLR TR0

MOV TH0,#HIGH(65536-50000)

MOV TL0,#LOW(65536-50000)

SETB TR0

DJNZ R2,T0E ;1秒未到直接退出

MOV R2,#20

RL A

MOV P1,A ;1秒一變的花樣流水燈。

T0E:
RETI

END

E. 單片機匯編語言按鍵控制流水燈,兩個開關k1,k2。實現功能按下k1,流水燈左移動,按下k2,流水燈右移動。

K1EQUP1.0
K2EQUP1.1
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVA,#0FEH
CLR00H
CLR01H
LOOP:
JBK1,LOOP1
SETB00H
CLR01H
SJMPLOOP
LOOP1:
JBK2,LOOP2
SETB01H
CLR00H
LOOP2:
JB01H,LOOP3
JB00H,LOOP4
SJMPMAIN
LOOP3:
MOVP0,A
RRA
LCALLDELAY
SJMPLOOP
LOOP4:
MOVP0,A
RLA
LCALLDELAY
SJMPLOOP
DELAY:
MOVR2,#200
DLY:
MOVR3,#250
DJNZR3,$
DJNZR2,DLY
RET
END

閱讀全文

與匯編語言流水燈程序相關的資料

熱點內容
永安行app在哪裡簽到 瀏覽:601
大數據在職業技能培訓中的應用 瀏覽:218
word文件管理器 瀏覽:82
貴安大數據產業園 瀏覽:229
excel該文件可能是只讀的 瀏覽:818
怎麼添加一個次要數據文件資料庫 瀏覽:399
linux怎麼裝系統 瀏覽:811
接觸到哪些信息是由資料庫管理 瀏覽:25
港版s7edge和亞太版本 瀏覽:284
無限循環數控編程序怎麼編程 瀏覽:979
iphone6splus16g 瀏覽:225
oppo如何開4g網路 瀏覽:267
java不安全 瀏覽:423
導入配置文件數據失敗 瀏覽:941
linux運行class 瀏覽:227
如何做好群管理員文件 瀏覽:979
linuxvim循環搜索文件 瀏覽:147
為什麼講女孩子更應該學習編程 瀏覽:742
雲數據備份不了了是怎麼回事 瀏覽:110
數據說話的股票有哪些股 瀏覽:612

友情鏈接