當前位置:首頁 » 編程軟體 » 流水燈匯編程序

流水燈匯編程序

發布時間: 2022-08-31 03:56:44

㈠ 花樣流水燈設計匯編語言

晶振頻率,假設是12MHz。

程序如下:


;啟動後,八路流水燈同時閃爍,每秒閃爍一次。

;按下按鍵A,順時針依次閃爍,間隔1秒。

;按下按鍵B,順時針間隔0.5秒依次閃爍。

;按下按鍵C,逆時針間隔一秒依次閃爍。

;按下按鍵D,逆時針間隔2秒依次閃爍

;按下按鍵E,同時常亮。

;按下按鍵F,同時常滅。

;按下按鍵G,復位,同時間隔1秒閃爍。


ORG0000H

MOVTMOD,#01H

SETBTR0

CALLSET_T0

MOVB,#50

MOVR4,#0

MOVR5,#7FH

MOVR6,#0

;---------------------------------------

LOOP:

MOVR7,B

CJNER6,#0,_1

MOVP1,R4

MOVA,R4

CPLA;0取反

MOVR4,A

JMPWAIT

_1:CJNER6,#1,_2

MOVP1,R5

MOVA,R5

RRA;1順時針

MOVR5,A

JMPWAIT

_2:CJNER6,#2,WAIT

MOVP1,R5

MOVA,R5

RLA;2逆時針

MOVR5,A

WAIT:

JNBTF0,$

CALLSET_T0

CALLR_ABCD

DJNZR7,WAIT

JMPLOOP

;---------------------------------------

R_ABCD:

JNBP2.0,KA

JNBP2.1,KB

JNBP2.2,KC

JNBP2.3,KD

JNBP2.4,KE

JNBP2.5,KF

JNBP2.6,KG

RET

KA:MOVB,#100;間隔1s

MOVR6,#1;順時針

JMPEXIT

KB:MOVB,#50

MOVR6,#1

JMPEXIT

KC:MOVB,#100;間隔1s

MOVR6,#2;逆時針

JMPEXIT

KD:MOVB,#200

MOVR6,#2

JMPEXIT

KE:MOVP1,#0

MOVR6,#3;無操作

JMPEXIT

KF:MOVP1,#255

MOVR6,#3;無操作

JMPEXIT

KG:MOVB,#50;500ms亮、滅一次

MOVR6,#0;閃爍

EXIT:

MOVR7,#10

RET

;---------------------------------------

SET_T0:

MOVTH0,#(65536-10000)/256

MOVTL0,#(65536-10000)MOD256

CLRTF0

RET

;---------------------------------------



電路模擬圖如下:

㈡ 51單片機中如何用匯編語言編寫流水燈

流水燈就是51單片機控制led燈依次點亮的控制方式。具體程序如下:

ORG 0000H ;復位啟動
AJMP START ;
ORG 001BH ;T1中斷
AJMP T1INT ;

;定義變數========================
YSJS EQU 30H;延時計數器
LED EQU 31H;LED控制緩沖器

;主程序==========================
START: MOV LED,#0FEH ;初始化數據
MOV YSJS,#0 ;
MOV TMOD,#10H ;定時器1工作於方式1,16位定時器
MOV TL1,#0B0H ;設置定時初值
MOV TH1,#3CH ;定時時間=50mS
SETB ET1 ;使能定時器1中斷
SETB TR1 ;啟動定時器1
SETB EA ;開總中斷

MOV P1,LED ;初始化流水燈
LOOP: JMP LOOP ;循環等待中斷
T1INT: PUSH PSW ;定時器1中斷程序
PUSH ACC ;保護現場
MOV TH1,#3CH ;定時時間=50mS
MOV TL1,#0B0H ;
INC YSJS ;

PUSH ACC ;保護ACC
MOV A,YSJI ;
CJNE A,#2,QT1 ;50mS*2=100mS
MOV P1,LED ;
MOV A,LED ;
RL A ;累加器A的值循環左移1位
MOV LED,A ;
MOV YSJS,#0 ;
QT1: POP ACC ;恢復現場
POP PSW ;
RETI ;返回主程序
END ;匯編程序結束

(2)流水燈匯編程序擴展閱讀:

實現流水燈的三個方法:

第一種,匯流排方法實現流水燈。這是一種比較笨但又最易理解的方法,採用順序程序結構,用位指令控制P1口的每一個位輸出高低電平,加上延時函數,即可控制每個LED燈的亮滅。

第二種,移位方法實現流水燈採用循環程序結構編程。首先在程序開始給P1.0口送一個低電平,其它位為高。然後延時一段時間再讓低電平往高位移動,這樣就實現「流水」的效果了。

第三種,庫函數實現流水燈。利用左移函數進行。

㈢ 單片機流水燈匯編程序是怎樣的

ORG 000H
LJMP MAIN
ORG 000BH;定時器0中斷入口
LJMP LOOP1
ORG 0100H
MAIN:
MOV TMOD,#01H;設置定時器工作模式
MOV TL0,#0EFH;設置定時器初值
MOV TH0,#0D8H
SETB EA;打開總中斷
SETB ET0;打開定時器0中斷
SETB TR0;啟動定時器0
MOV P0,#0FFH
MOV R0,#200;延時參數
LOOP:
CJNE R0,#0,LOOP;延時
MOV A,#0EFH
NEXT:
MOV P0,A ;送值
MOV R0,#50 ;延時參數
EXIT:
CJNE R0,#00H,EXIT ;延時一會兒
RL A ;A循環左移【根據程序分許,該程序完成流水燈功能】
LJMP NEXT

LOOP1:;定時器0中斷函數
MOV TL0,#0EFH;定時器初值
MOV TH0,#0D8H ;定時器初值
DEC R0 ;
RETI ;中斷返回
END
有疑問可以追問。

㈣ 匯編流水燈程序

延時根據單片機調整.

ORG 00H
MOV P2,#80H
START:MOV A,#0FFH ;賦初值
CLR C
MOV R2,#8
LOOP:RRC A ; 帶進位右移
MOV P1,A
CALL DELAY
DJNZ R2,LOOP
MOV R2,#7
LOOP1:RLC A ; 帶進位左移
MOV P1,A
CALL DELAY
DJNZ R2,LOOP1
JMP START
DELAY:MOV R3,#20 ; 延時0.2秒
D1: MOV R4,#20
D2: MOV R5,#248
DJNZ R5,$
DJNZ R4,D2
DJNZ R3,D1
RET
END

㈤ 單片機流水燈匯編程序

KEYFX EQU P1.0 ;方向控制鍵
KEYKM EQU P1.1 ;速度控制鍵
FX BIT 00H ;方向標志
SPEED BIT 01H ;速度標志
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,#2
MOV A,#0FEH ;燈初始化
CLR FX
CLR SPEED
MOV SPEED,#2
LOOP:
JB KEYFX,LOOP1 ;方向鍵按下否
JNB KEYFX,$
CPL FX
SJMP LOOP
LOOP1:
JB KEYKM,LOOP ;速度鍵按下否
JNB KEYKM,$
CPL SPEED
SJMP LOOP
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
JB FX,T001
RL A ;左循環
SJMP T002
T001:
RR A ;右循環
T002:
DJNZ R2,T0E
JB SPEED,T003
MOV R2,#2 ;快速
SJMP T0E
T003:
MOV R2,#10 ;慢速
T0E:
RETI
END

㈥ 8路流水燈匯編語言程序的寫法

匯編語言程序如下:

;假設1:D1~D8八個彩燈接在P1口,輸出低電平發光

;假設2:系統晶振為12MHz

;假設3:N = 5

;程序如下:

ORG 0000H

MOV R3, #5 ;N=5

LOOP0:

MOV A, #0FFH

MOV P1, #0FFH ;開始時全滅

;-------------------------------逐個點亮

MOV R2, #8

LOOP1: CLR C

RLC A

MOV P1, A

CALL DL500MS

DJNZ R2, LOOP1

;-------------------------------逐個熄滅

MOV R2, #8

LOOP2: SETB C

RLC A

MOV P1, A

CALL DL500MS

DJNZ R2, LOOP2

;-------------------------------全亮、全滅交替

MOV R2, #4

LOOP3: MOV P1, #0 ;全亮

CALL DL500MS

CALL DL500MS ;共1s

MOV P1, #255 ;全滅

CALL DL500MS ;0.5s

DJNZ R2, LOOP3

;-------------------------------

DJNZ R3, LOOP0

MOV P1, #01001001B ;5、顯示為0100 1001

CALL DL500MS

CALL DL500MS ;共1s

SJMP 0000H ;重新開始N遍

;-------------------------------延時子程序

DL500MS:

MOV R5, #9 ;1T

DL1: MOV R6, #128 ;1T

DL2: MOV R7, #215 ;1T

NOP ;1T

DL3: DJNZ R7, DL3 ;2T 2 * 215 = 430 T

DJNZ R6, DL2 ;2T [1+1+430+2] * 128 = 55552 T

DJNZ R5, DL1 ;2T [1+55552+2] * 9 = 499995 T

RET ;2T 1 + 499995 + 2 = 499998 T

;-------------------------------------

流水燈模塊接在單片機的P1口,由原理圖可以知道,在P1口給一個低電平即可點亮LED燈。相反,如果要LED燈熄滅,就要把P1口的電平變為高電平即可。

要實現流水燈功能,只要將LED1~LED8依次點亮、熄滅,依始類推,8隻LED變會一亮一暗的做流水燈了。

實現8個LED流水燈程序用中文表示為:

P1.0低、延時、P1.0高、P1.1低、延時、P1.1高、P1.2低、延時、P1.2高、P1.3低、延時、P1.3高。

P1.4低、延時、P1.4高、P1.5低、延時、P1.5高、P1.6低、延時、P1.6高、P1.7低、延時、P1.7高、返回到開始、程序結束。

㈦ 匯編語言 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

㈧ 流水燈匯編語言程序

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

㈨ 急!急!急!單片機流水燈匯編語言程序

5隻LED為共陽極連接,即單片機輸出端為低電平時即可點亮LED。

;用最直接的方式實現流水燈

ORG 0000H
START:MOV P1,#01111111B ;最下面的LED點亮
LCALL DELAY ;延時60秒
LCALL DELAY ;延時60秒
MOV P1,#10111111B ;最下面第二個的LED點亮
LCALL DELAY ;延時60秒
LCALL DELAY ;延時60秒
MOV P1,#11011111B ;最下面第三個的LED點亮 (以下省略)
LCALL DELAY
LCALL DELAY ;延時60秒
MOV P1,#11101111B
LCALL DELAY
LCALL DELAY ;延時60秒
MOV P1,#11110111B
LCALL DELAY
LCALL DELAY ;延時60秒
MOV P1,#11111011B
LCALL DELAY ;延時60秒
LCALL DELAY ;延時60秒
LCALL DELAY ;延時60秒
LCALL DELAY ;延時60秒
LCALL DELAY ;完成第一次循環點亮,延時約0.25秒
AJMP START ;反復循環

;延時子程序,12M晶振延時約250毫秒
DELAY: ;大約值:2us*256*256*2=260ms,也可以認為為250ms
PUSH PSW ;現場保護指令(有時可以不加)
MOV R4,#240
L3: MOV R2 ,#00H
L1: MOV R3 ,#00H
L2: DJNZ R3 ,L2 ;最內層循環:(256次)2個周期指令(R3減一,如果比1大,則轉向L2)
DJNZ R2 ,L1 ; 中層循環:256次
DJNZ R4 ,L3 ;外層循環:240次
POP PSW
RET
END

隨便改了一個

㈩ 用匯編語言編流水燈,有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

熱點內容
怎麼解壓qq文件 發布:2025-02-09 09:18:14 瀏覽:580
安卓最新怎麼調靈敏度更穩 發布:2025-02-09 09:12:44 瀏覽:399
豌豆莢如何用安卓手機下載 發布:2025-02-09 09:11:57 瀏覽:212
吃雞腳本輔助 發布:2025-02-09 09:09:29 瀏覽:5
sessionidpython 發布:2025-02-09 09:08:53 瀏覽:275
華為手機驗證碼和密碼忘了是多少 發布:2025-02-09 08:53:53 瀏覽:798
逆戰筆記哪個配置好玩 發布:2025-02-09 08:53:04 瀏覽:599
怎麼打開電腦雲伺服器 發布:2025-02-09 08:36:01 瀏覽:219
日元對人民幣演算法 發布:2025-02-09 08:35:52 瀏覽:39
安卓手機微信語音怎麼不能轉文 發布:2025-02-09 08:25:30 瀏覽:922