導航:首頁 > 操作系統 > 單片機數組完成跑馬燈閃爍

單片機數組完成跑馬燈閃爍

發布時間:2022-10-07 14:17:10

A. 單片機跑馬燈

看看我寫的,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;
}
}

B. 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();

}

}

}

(2)單片機數組完成跑馬燈閃爍擴展閱讀:

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

C. 單片機,跑馬燈,交替閃爍,C語言代碼

#include<reg51.h>
void delay(unsigned int a)
{
unsigned int i,j;
for(i=0;i<a;i++)
for(j=0;j<120;j++);
}
main()
{
unsigned char i,led;
led=0xfe;
while(1)
{
P0=led;

delay(500);

P0=0xff;

delay(500);

led=(led<<1)|0x01;

if(led==0xff)led=0xfe;

}

}

D. 怎麼用單片機按鍵控制循環跑馬燈

我剛好寫過一個這樣的程序,參考一下吧,希望對你有幫助
/*硬體電路連接:流水燈接在P0口, 陽極接高電平,
陰極接P0口,4個按鍵分別接P3.4,P3.5, P3.6,P3.7 ,按下時是低電平 */
#include <regx51.h>
sbit key1=P3^4;
sbit key2=P3^5;
sbit key3=P3^6;
sbit key4=P3^7;
int a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//左流水燈數組
int b[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//右流水燈數組
int c[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff}; //逐盞點亮,逐盞滅掉數組
//************************************************************************************************************
void delay() //延時子程序
{int i;
for(i=0;i<30000;i++);
}

//**********************************************************************************************************
void aa() //實現要求(1)的子程序(key1按下時流水燈,彈開時全滅)
{ int i=0;
while(!key1) //判斷是否有鍵按下
{P0=a[i];delay();i++;if(i==8)i=0;}//流水燈

}

//*************************************************************************************************************
void bb() // 實現要求(2)的子程序(key2按下時實現計數功能,彈開時停止計數;)
{
while(!key2){P0--;delay();if(P0==0)P0=0xff;} //判斷是否有鍵按下,按下則計數器加1

}

//*************************************************************************************************************
void cc() // 實現要求(3)的子程序(key3按下時實現逐盞點亮,逐盞滅掉)
{ int i=0;

P0=0xff ;// 發光二極體全滅
while(!key3) //判斷是否有鍵按下
{P0=c[i];delay();i++;if(i==16)i=0;}//逐盞點亮,逐盞滅掉
}

//*************************************************************************************************************
void dd() // 實現要求(4)的子程序(key4按第一次按下,左流水,第二次按下,右流水,第三次按下,熄滅)
{ int i=0,j=0,k=0,h=0;
loop:P0=0xff;
if(key4==0) //第一次判斷是否有鍵按下
{for(i=0;i<30000;i++); //延時防抖動
if(key4==1) //判斷按鍵是否彈起
while(1){P0=a[j];delay();j++;if(j==8)j=0; //左流水燈
if(key4==0) //第二次判斷是否有鍵按下
{for(i=0;i<30000;i++); //延時防抖動
if(key4==1) //判斷按鍵是否彈起
while(1){P0=b[k];delay();k++;if(k==8)k=0; //右流水燈
if(key4==0) //第三次判斷是否有鍵按下
{for(i=0;i<30000;i++); //延時防抖動
if(key4==1) //判斷按鍵是否彈起
goto loop; //跳轉到LOOP處,即P3=0xff,此時燈全滅
}}}}}}

//****************************************************************************************************************
main()
{while(1){P0=0xff;
while(!key1)aa();

while(!key2)bb();
while(!key3)cc();

while(!key4)dd();

}}

E. 用單片機原理,編一個跑馬燈,要用到定時器,而且是0.5s閃一下,再3s閃一下,依次

定時器設置的延時時間是0.5s,然後用一個循環語句,就能實現3s的延時了。剩下的就簡單啦

F. 單片機編程,用數組方式控制跑馬燈。求助anyway。

從圖中看你使用的是 p0, 不是 p1, 電阻的連接也有點問題, 應該電阻和燈串聯, 圖中的連接可能會燒掉燈, 你的程式將 p1 換成 p0 其他是正確的.

G. 單片機的跑馬燈程序 求注釋 盡量每行都注釋 我幾乎看不懂啊! 謝謝= =!!明天就要答辯啦!!快的話加分加

哈哈 這不難啊!!!!…………單片機的跑馬燈程序主要用到了延時子程序,clr,lcall,ajmp 指令, 通過輪流點亮p1.0 …..P1.7 實現效果。你可以通過此程序的學習, 進一步掌握單片機的IO埠操作。
匯編語言參考程序:

org 0000h ;開始
ajmp loop
org 0080h ;到0030h處避開00-30的敏感地址
loop:
mov p1,#0ffh ;關閉所有燈
clr p1.0 ;點亮燈p1.0
lcall delay ;延時一段時間?
clr p1.1 ;點亮燈p1.1
lcall delay
clr p1.2 ;點亮燈p1.2
lcall delay
clr p1.3 ;點亮燈p1.3
lcall delay
clr p1.4 ;點亮燈p1.4
lcall delay

clr p1.5 ;點亮燈p1.5
lcall delay
clr p1.6 ;點亮燈p1.6
lcall delay
clr p1.7 ;點亮燈p1.7
lcall delay
AJMP LOOP ;到最開始loop處重新運行
delay: mov r5,#20 ;延時。
d1: mov r6,#40
d2: mov r7,#248
djnz r7,$
djnz r6,d2
djnz r5,d1
ret
end


c語言參考程序:

#include<reg51.h> //頭文件
#define uchar unsigned char //宏定義,為方便編程
#define uint unsigned int
#define LED P1 //宏定義,將P1口定義為LED
uchar led_value[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0x00}; //定義一數組,內存放跑馬燈數據
uchar *p=led_value; //定義指針,指向跑馬燈數組首地址
void delay() //延遲函數,與跑馬燈跳動頻率有關
{
uchar ii,jj;
for(ii=0;ii<200;ii++)
for(jj=0;jj<200;jj++);
}
void run_led() //跑馬燈運行函數
{
while(*p!=0x00)
{
LED=*p; //將數組中數據取出賦給P1口
p++; //預取下一數據
delay(); //延遲
}
p=led_value;
}
char code SST516[3] _at_ 0x003b; //模擬器保留
main() //主函數
{
while(1)
run_led(); //上電即運行跑馬燈程序
}

哈哈 !!!哈哈哈!!!!打字 打得手都是痛的 …………希望對你有所幫助……

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

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

I. 單片機跑馬燈如何編程!

如果是一個位元組型的數據控制LED燈的話,且是1控制LED燈滅,0控制燈亮。
從滅到亮,先是0xFF,然後開始左移,最終移到0x00,就是全亮了。
從亮到滅,先是0x00,然後左移並且加1,重復此工作就是0xFF了
按照上面的思想,你自己應該可以搞定的。

J. 如何用一個STC單片機做一個跑馬燈,菜鳥一隻,最好用詳細的過程

# include <reg52.h>
# include <intrins.h> //循環左移右移函數

void delay1ms(unsigned int i)
{
unsigned char j;
while (i--)
{
for (j=0; j<115; ++j) //1ms基準延時程序
{
;
}
}
}

void main()
{
P0 = 0XFE; // P0燈
while (1)
{

P0 = _crol_(P0,1); // P0左移1位
delay1ms(100);
}

}
自己根據你的板子 改下參數

閱讀全文

與單片機數組完成跑馬燈閃爍相關的資料

熱點內容
冰箱壓縮機出口 瀏覽:223
OPT最佳頁面置換演算法 瀏覽:640
網盤忘記解壓碼怎麼辦 瀏覽:852
文件加密看不到裡面的內容 瀏覽:651
程序員腦子里都想什麼 瀏覽:430
oppp手機信任app在哪裡設置 瀏覽:185
java地址重定向 瀏覽:268
一年級下冊摘蘋果的演算法是怎樣的 瀏覽:448
程序員出軌電視劇 瀏覽:88
伺服器系統地址怎麼查 瀏覽:54
解壓游戲發行官 瀏覽:601
國外小伙解壓實驗 瀏覽:336
頂級大學開設加密貨幣 瀏覽:437
java重載與多態 瀏覽:528
騰訊應屆程序員 瀏覽:942
一鍵編譯程序 瀏覽:129
語音加密包哪個好 瀏覽:341
有什麼學習高中語文的app 瀏覽:283
安卓手機的表格里怎麼打勾 瀏覽:411
阿里雲伺服器有網路安全服務嗎 瀏覽:970