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

匯編語言流水燈程序

發布時間: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

閱讀全文

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

熱點內容
電腦版上傳視頻找不到文件在哪 瀏覽:164
javastringtemplate 瀏覽:594
聯想啟天m7300能升級內存嗎 瀏覽:698
精雕怎麼打開圖片文件 瀏覽:161
ug編程鏜孔g76如何使用 瀏覽:719
7歲到18歲少兒編程學什麼 瀏覽:413
mac文件怎麼列印 瀏覽:756
農葯登記許可證查詢哪個網站 瀏覽:857
素材站用什麼網站系統 瀏覽:173
ug如何用鉸刀編程 瀏覽:647
三國志版本介紹 瀏覽:260
情侶用的定位app有哪些 瀏覽:244
怎麼清楚蘋果手機的健身數據 瀏覽:988
淘寶美工教程自學網 瀏覽:452
父子2006未刪減版本 瀏覽:872
包頭誰賣蘋果6 瀏覽:504
化工企業停工有哪些文件通知要求 瀏覽:878
下載軟體後文件夾在桌面 瀏覽:397
word文字編組 瀏覽:167
旅遊策劃的程序 瀏覽:519

友情鏈接