A. 單片機中的流水燈,花樣燈,跑馬燈
等 到 你單片機學到一定程度就理解了,這些燈只是按照自己的意思來亮,至於名稱都無所謂
B. 用51單片機(匯編語言寫)寫一個跑馬燈程序知道的幫個忙寫寫。
急用!請教!!!
用匯編語言程序,程序功能:實現方向可控的跑馬燈
編程要求:用八個LED發光二極體實現跑馬燈(即:8個燈依次輪流發光,每次只亮一個燈),系統啟動後,跑馬燈右向流轉,按下K1鍵,則反向流轉,再按則再反向……。接線方法:流水燈接P0口,按鍵K1可自選P1~P3任一引腳。
C. 怎麼用單片機按鍵控制循環跑馬燈
我剛好寫過一個這樣的程序,參考一下吧,希望對你有幫助
/*硬體電路連接:流水燈接在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();
}}
D. 單片機跑馬燈反向跑
點了S2按鍵。按下按鍵S1,跑馬燈正向運行;按下按鍵S2,跑馬燈反向運行,所以跑馬燈反方向跑,可能是按了S2按鍵。常規的跑馬燈,是指將多個發光二極體分別連接到單片機的某一並行埠處,通過編程式控制制這幾個發光二極體依次點亮。