導航:首頁 > 操作系統 > 單片機匯編跑馬燈

單片機匯編跑馬燈

發布時間:2022-11-12 06:10:19

① 用51單片機(匯編語言寫)寫一個跑馬燈程序知道的幫個忙寫寫。

急用!請教!!!
用匯編語言程序,程序功能:實現方向可控的跑馬燈
編程要求:用八個LED發光二極體實現跑馬燈(即:8個燈依次輪流發光,每次只亮一個燈),系統啟動後,跑馬燈右向流轉,按下K1鍵,則反向流轉,再按則再反向……。接線方法:流水燈接P0口,按鍵K1可自選P1~P3任一引腳。

② 單片機匯編語言跑馬燈

ORG0000H
LJMPMAIN
ORG001BH
LJMPT1ISR
ORG0030H
MAIN:
MOVTMOD,#10H
MOVTH1,#HIGH(65536-50000)
MOVTL1,#LOW(65536-50000)
SETBTR1
SETBET1
SETBEA
MOVA,#0FEH
MOVP1,A
MOVR2,#5
SJMP$
T1ISR:
CLRTR1
MOVTH1,#HIGH(65536-50000)
MOVTL1,#LOW(65536-50000)
SETBTR1
DJNZR2,T1E
MOVR2,#5
RLA
MOVP1,A
T1E:
RETI
END

③ 單片機跑馬燈匯編。反向跑

ORG 0000H
SJMP START
ORG 0030H
START: MOV A, #0FEH ; 先讓第一個發光二極體點亮
LOOP: MOV P1, A ; 從P1口輸出到發光二極體
MOV R1, #100 ; 延時0.5秒
DEL1: MOV R2, #200
DEL2: MOV R3, #7
DEL3: DJNZ R3, DEL3
DJNZ R2, DEL2
DJNZ R1, DEL1
RL A ; 左移一位,點亮下一個發光二極體
LJMP LOOP
END

這個是我寫的跑馬燈程序,沒有左右振盪,自己參考參考加上去吧

④ 單片機89C51用匯編製作跑馬燈P1控制8個LED(D1~D8)燈實現流水燈的效果,高手速度來

很酷的流水燈
#include <reg51.h>
typedef unsigned char uchar;
#define Ton 40
#define LED P0
sbit leds=P1^4;
sbit LED0 = P0^0;
sbit LED1 = P0^1;
sbit LED2 = P0^2;
sbit LED3 = P0^3;
sbit LED4 = P0^4;
sbit LED5 = P0^5;
sbit LED6 = P0^6;
sbit LED7 = P0^7;

unsigned char Maikuan=0;
static unsigned char ledon[8] = {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
uchar Occupy_led; //占空比越大,燈越亮
bit light;
uchar m;

void Inittime()
{
TMOD = 0x02; //定時器0,工作方式2,自動重裝
TH0 = 256-Ton;
TL0 = 256-Ton;
ET0 = 1;
EA = 1;
TR0 = 1;
}
//定時器0中斷
void time0() interrupt 1 using 0
{
Maikuan++;
}

void main()
{
unsigned char i = 0,j = 0; //初始化i,j
leds=0;
Inittime();
while (1)
{
//第1,3,5,7個燈半亮,其餘的全亮。
for(i=254; i>0; i--)
{
while ( Maikuan!=20)
{
LED = 0x00;
}

while ( Maikuan!=200)
{
LED = 0x55;
}

Maikuan = 0;
}

//最難的:8個燈從第一個開始依次漸亮,直到最後一個。再從最後一個起漸暗,直到第一個。如此循環往復。

for(j = 0;j<=7;j++)
{
i = 0;
while(i!=255) // 由暗變亮
{
if( Maikuan == 0) // 點亮
{
LED = ledon[j];
}
if(Maikuan == i) // 熄滅
{
LED = 0xff;
}
if( Maikuan== 255)
{
i++;
}
}
}

for(j=7;j>=0;j--)
{
i = 0;
while(i!=255) // 由亮變暗
{
if(Maikuan == 0) // 熄滅
{
LED = 0xff;
}
if( Maikuan == i) // 點亮
{
LED = ledon[j];
}
if( Maikuan == 255)
{
i++;
}
}
}

//所有的燈逐漸從暗到全亮,再由全亮到暗。

for (m=254; m>0; m--)
{
while (Maikuan!=Occupy_led)
{
LED = 0x00;
}

while (Maikuan!=127)
{
LED = 0xff;
}

Maikuan = 0;

if (light)
{
Occupy_led++;
}
else
{
Occupy_led--;
}

if (Occupy_led==128)
{
Occupy_led = 127;
light = !light;
}
if (Occupy_led>128)
{
Occupy_led = 0;
light = !light;
}
}
}
}

⑤ 單片機跑馬燈

看看我寫的,P0到P7接8個LED.
org ooooh
ajmp main
main:mov r7,#8
main:mov r0,#8 ;一個循環需要移動8位
mov p1,#01111111b ;初始為P0.7燈點亮
loop: clr p2.3
acall ds1ms ;延時,以便人眼可以觀察到
setb p2.3
acall ds1ms
mov a,p1 ;讀P0口當前顯示的數據送到A
rr a ;將A中的數據循環右移1位
mov p1,a ;再將A中右移過的數據送到P0
djnz r0,loop
djnz r7,main ;移動不夠8位,跳到LOOP處循環,
ljmp rel ;流動1遍跳轉到MAIN處循環流。

;---顯示延時----------
ds1ms: mov r1,#1
ds1lo: mov r2,#200
ds2lo: mov r3,#200
djnz r3,$
djnz r2,ds2lo
djnz r1,ds1lo
ret ;延時返回
rel:end
C語言的:
//8個發光二極體循環點亮
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
sbit beep=P2^3;
uchar i,j,m,n,k;
void delay(uchar k)
{for(m=k;m>0;m--)
for(n=125;n>0;n--);
}
void main(void)
{i=0xfe;
while(1)
{//beep=0;
delay(100);
//beep=1;
delay(100);
j=_crol_(i,1);
i=j;
P1=j;
}
}

⑥ 求個51單片機 匯編語言設計的LED跑馬燈的程序

C語言程序如下,已經經過了模擬,符合要求.
#include
<reg52.h>
#include<intrins.h>
#define
uchar
unsigned
char
#define
uint
unsigned
int
uchar
t1
=
0;
//-------------------------------
void
TIME0()interrupt
1
{
TH0
=
0xD8;
//初值.
TL0
=
0xF0;
//10ms
@
12MHz
t1++;
}
//-------------------------------
void
main()
//主函數.
{
uchar
i,
aaa
=
0xfe;
TMOD
=
0x01;
//定時器0
TH0
=
0xD8;
//初值.
TL0
=
0xF0;
//10ms
@
12MHz
TR0
=
1;
ET0
=
1;
EA
=
1;
P0
=
0x00;
//全亮.
while
(t1
!=
200);
//等待2000ms
t1
=
0;
aaa
=
0xfe;
P0
=
aaa;
//P1.0發光.
while
(1)
{
for
(i
=
0;
i
<
7;
i++)
{
while
(t1
!=
50);
//等待500ms
t1
=
0;
aaa
=
_crol_(aaa,
1);//左移一位.
P0
=
aaa;
}
//左移位7次,P0.7發光.
for
(i
=
0;
i
<
7;
i++)
{
while
(t1
!=
50);
//等待500ms
t1
=
0;
aaa
=
_cror_(aaa,
1);//右移一位.
P0
=
aaa;
}
//右移位7次,P0.0發光.
}
}

⑦ 51單片機匯編語言編寫一個跑馬燈的程序,初學者做實驗用,具體要求如下,好了可以加分

程序1:
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV SP,#5FH
LOOP:
MOV A,P2
MOV B,A
MOV P0,A
MOV P1,#0FFH
LOOP1:
LCALL DELAY
MOV C,P1.7
MOV A,P0
RLC A
MOV P0,A
MOV A,P1
RLC A
MOV P1,A
MOV A,P2
CJNE A,B,LOOP
SJMP LOOP1
DELAY:
MOV R2,#60
DELAY1:
MOV R3,#250
DJNZ R3,$
DJNZ R2,DELAY1
RET
END
程序2:
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV SP,#5FH
JNB P2.0,LOOP1 ;
JNB P2.1,LOOP2 ;
SJMP MAIN
LOOP1:
MOV P0,#0FEH
MOV P1,#0FFH
LOOP11:
MOV C,P1.7
MOV A,P0
RLC A
MOV P0,A
MOV A,P1
RLC A
MOV P1,A
JNB P2.1,LOOP2
SJMP LOOP11
LOOP2:
MOV P0,#0FCH
MOV P1,#0FFH
LOOP21:
MOV C,P1.7
MOV A,P0
RLC A
MOV P0,A
MOV A,P1
RLC A
MOV P1,A
JNB P2.0,LOOP1
SJMP LOOP21
DELAY:
MOV R2,#60
DELAY1:
MOV R3,#250
DJNZ R3,$
DJNZ R2,DELAY1
RET
END

⑧ 用匯編語言編寫跑馬燈程序

跑馬燈程序用匯編是很好實現的,只要用好循環移位指令就可以,以下是程序。
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV A,#0FEH

LOOP:
MOV P1,A ;將控制字送埠

RL A ;控制字循環左移

LCALL DELAY ;延時

SJMP LOOP

DELAY: ;延時大概1秒
MOV R2,#10

DLY1:
MOV R3,#200
DLY2:
MOV R4,#250

DJNZ R4,$

DJNZ R3,DLY2

DJNZ R2,DLY1

RET

END

⑨ 51單片機設計跑馬燈的程序用(c語言)編寫

|P1口接8個發光二極體共陽

#include <AT89X51.H>

unsigned char i;

unsigned char temp;

unsigned char a,b;

void delay(void)

{

unsigned char m,n,s;

for(m=20;m>0;m--)

for(n=20;n>0;n--)

for(s=248;s>0;s--);

}

void main(void)

{

while(1)

{

temp=0xfe;

P1=temp;

delay();

for(i=1;i<8;i++)

{

a=temp<<i;

b=temp>>(8-i);

P1=a|b;

delay();

}

for(i=1;i<8;i++)

{

a=temp>>i;

b=temp<<(8-i);

P1=a|b;

delay();

}

}

}

(9)單片機匯編跑馬燈擴展閱讀:

Proteus 自從有了單片機也就有了開發系統,隨著單片機的發展開發系統也在不斷發展。 keil是一種先進的單片機集成開發系統。它代表著匯編語言單片機開發系統的最新發展,首創多項便利技術,將開發的編程/模擬/調試/寫入/加密等所有過程一氣呵成,中間不須任何編譯或匯編。

⑩ 單片機匯編語言跑馬燈

1)將你想要的LED顯示樣式進行編組,這里P1埠中,輸出低電平LED亮,高電平LED不亮;
2)然後按你排的順序輸出編組數據,加上延時顯示;
3)通過定時器中斷(0.5S)來設置准備顯示的編組號;

閱讀全文

與單片機匯編跑馬燈相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:758
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:672
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:486
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:383
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:350
風翼app為什麼進不去了 瀏覽:779
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:151
伊克塞爾文檔怎麼進行加密 瀏覽:893
app轉賬是什麼 瀏覽:163