導航:首頁 > 編程語言 > 單片機循環燈程序匯編語言

單片機循環燈程序匯編語言

發布時間:2023-08-23 04:10:55

㈠ 單片機匯編語言流水燈程序延時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

㈡ 單片機流水燈用匯編語言寫怎麼從兩邊向中間亮再從中間

匯編程序如下:
; 花樣流水燈(8個發光二極體以各種形式循環點亮)
; 功能:流水燈(8個發光二極體循環以1S間隔以各種形式循環點亮)
ORG 0000H ;偽指令,指定程序從0000H開始存放
LJMP MAIN ;跳轉指令,程序跳轉至MAIN處執行
ORG 0030H ;偽指令,指定程序從0030H開始存放
MAIN: MOV SP, #60H ;給堆棧指針賦初值
MOV P1,#0FFH ;給P1口賦值
MOV DPTR,#TABLE;查表
LIGHT: MOV R4,#42 ;設置循環次數
LOOP: MOV A,#42 ;給A賦初值
SUBB A,R4 ;將A的值與R4的值相減,結果存在A中
MOVC A,@A+DPTR ;將A+DPTR的值所對應的TABLE中的值賦給A
MOV P1,A ;將A的值賦給P1口
LCALL DEL1S ;調用1S延時子程序
DJNZ R4,LOOP ;判斷R4是否為0,不為0跳轉,為0順序執行
LJMP LIGHT ;跳轉指令,跳轉至LIGHT處繼續執行
;1S延時子程序(11.0592MHz晶振,誤差0微秒)
DEL1S: MOV R5, #089H
DL1S0: MOV R6, #0A4H
DL1S1: MOV R7, #013H
DJNZ R7, $
DJNZ R6, DL1S1
DJNZ R5, DL1S0
RET
TABLE: ;定義表格數據
DB 0FFH ;全滅
DB 0FEH 0FDH 0FBH 0F7H 0EFH 0DFH 0BFH 07FH ;依次逐個點亮
DB 0FEH 0FCH 0F8H 0F0H 0E0H 0C0H 080H 000H ;依次逐個疊加
DB 080H 0C0H 0E0H 0F0H 0F8H 0FCH 0FEH 0FFH ;依次逐個遞減
DB 07EH 0BDH 0DBH 0E7H 0E7H 0DBH 0BDH 07EH ;兩邊靠攏後分開
DB 07EH 03CH 018H 000H 000H 018H 03CH 07EH ;兩邊疊加後遞減
DB 000H ;全亮
END ;程序結束指令
C語言程序如下:
/* 該實驗是花樣流水燈(8個發光二極體以各種方式循環點亮),功能是花樣流水燈(8個發光二極體以1S間隔以各種方式循環點亮) */
#include//包含reg.52文件
#define uint unsigned int//宏定義
#define uchar unsigned char//宏定義
void delay(uint z);//聲明延時函數
uint a;//定義循環用變數
uchar code table[]={
0xff,//全滅
0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,//依次逐個點亮
0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,//依次逐個疊加
0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,//依次逐個遞減
0x7e,0xbd,0xdb,0xe7,0xe7,0xdb,0xbd,0x7e,//兩邊靠攏後分開
0x7e,0x3c,0x18,0x00,0x00,0x18,0x3c,0x7e,//兩邊疊加後遞減
0x00,//全亮
};//定義循環用數據表格
/*亮的現象:先是全滅,然後依次逐個點亮,然後依次逐個疊加,
然後依次逐個遞減,然後兩邊靠攏後分開,然後兩邊疊加後遞減,
最後全亮。循環!*/
void main()//main函數
{
a=0;//給a賦初值
while(1)//while循環
{
P1=table[a];//將a所在的table中的值賦給P1口
delay(1000);//1S延時子程序
a++;//a的值加一
if(a==42)//測試a是否等於42
a=0;//給a賦值
}
}
void delay(uint z)//1ms延時子程序,通過z值改變延時時間
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

㈢ 51單片機用匯編語言如何設計8個輪流呼吸的呼吸燈

因為我不知道你這個板子的硬體,我就假設一下吧,你自己對照著看看,關鍵是流程
假設如下這八個燈依次接在P0口的八個口上,高電平為燈亮,低電平為燈滅,程序如下
ORG 0000H
AJMP START
START:MOV P0,#01H;()只有第一個燈亮
ACALL DELAY;延遲,不加延遲的話 你根本看不起清到底那個燈亮的
MOV P0,#02H;()只有第二個燈亮
ACALL DELAY
MOV P0,#04H;()只有第三個燈亮
ACALL DELAY
MOV P0,#08H;()只有第四個燈亮
ACALL DELAY
MOV P0,#10H;()只有第五個燈亮
ACALL DELAY
MOV P0,#20H;()只有第六個燈亮
ACALL DELAY
MOV P0,#40H;()只有第七個燈亮
ACALL DELAY
MOV P0,#80H;()只有第八個燈亮
ACALL DELAY
AJMP START;周而復始
DELAY: MOV R6,#40;延遲程序,晶振為3.57MHZ時大概是0.1S
0.1SL1: MOV R5,#246
0.1SL2: NOP
DJNZ R5,0.1SL2
DJNZ R6,0.1SL1
RET
END

閱讀全文

與單片機循環燈程序匯編語言相關的資料

熱點內容
osx賬戶恢復配置文件 瀏覽:966
安卓m1卡破解 瀏覽:557
系統保護文件是什麼 瀏覽:200
冒險島老物品代碼 瀏覽:834
南航app如何綁定護照 瀏覽:140
公眾號小程序怎麼製作 瀏覽:24
同城買菜什麼網站 瀏覽:211
鴻蒙系統如何顯示大文件 瀏覽:484
文件解壓後可以刪掉哪些 瀏覽:357
怎麼清除c盤垃圾文件 瀏覽:720
js都要掌握哪些內容 瀏覽:906
四角號碼字典有哪幾個版本 瀏覽:869
資料庫入侵dede 瀏覽:700
日本用什麼app聽歌 瀏覽:562
cmd新建空文件 瀏覽:481
廣聯達app在哪裡找 瀏覽:125
javaudp網路編程 瀏覽:263
如何快速統計文件大小 瀏覽:395
dnf90版本奶爸寂靜9加點 瀏覽:506
5s升級ios811好嗎 瀏覽:773

友情鏈接