導航:首頁 > 操作系統 > 單片機跑馬燈控制實驗報告

單片機跑馬燈控制實驗報告

發布時間:2022-10-06 07:33:14

① 關於51單片機的跑馬燈控制

#include <reg52.h>
////////////////////////////////////////////////////////
void delay(unsigned int cnt) //簡單的延時
{
while(--cnt);
}
///////////////////////////////////////////////////////
main()
{
P1=0xfe;//給初始化值
while(1)
{
delay(20);//delay at crystal frequency in 12MHz
P1<<=1;//左移一位
P1|=0x01;//最後一位補1
if(P1==0x7f)//檢測是否移到最左端?
{
delay(20);//delay
P1=0xfe;
}
}
}

② 如何用51系列單片機做控制LED跑馬燈實驗

/*單片機,用定時中斷實現每隔0.2秒讓接在p1口的8個小燈從左往右循環點亮。*/
#include

#include

#define
uchar
unsigned
char
uchar
a,b;
uchar
b=1;
uchar
a=0xfe;
void
main()
{
ea=1;it1=1;et0=1;
th0=-5000/256;
tl0=-5000%256;
tmod=0x01;
tr0=1;
while(1)
{;}
}
void
timer0(void)
interrupt
1
using
1
{
th0=-5000/256;
tl0=-5000%256;
b=b+1;
if(b==40)
{
b=0;
p1=a;
a=_crol_(a,1);
p1=a;
}
}

③ 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();

}

}

}

(3)單片機跑馬燈控制實驗報告擴展閱讀:

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

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

我剛好寫過一個這樣的程序,參考一下吧,希望對你有幫助
/*硬體電路連接:流水燈接在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();

}}

⑤ 單片機跑馬燈程序!!!急急急!!!! 要求:P3控制跑馬燈(小燈)方向,P0口輸出使跑馬燈運行

#include <REG51.H>
unsigned char code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char cnt = 0; // 中斷計數
bit next = 0;
bit dri = 0;
sbit SW = P3^0;
void main(void)
{ EA = 1;
TMOD = 0x01;
ET0 = 1;
TH0 = 0xee;// 晶振11.0592MHz,中斷周期5mS
TL0 = 0;
TR0 = 1;
P0 = 0xff;
while(1)
{ if(SW==0)
{ dri = !dri;
while(SW==0);
}
}
}
void timeint(void) interrupt 1
{ static char i;
TH0 = 0xee;
TL0 = 0;
P0 = tab[i];
cnt++;
if(cnt==100)
{ cnt=0;
if(dri==0) i++;
else i--;
if(i<0) i = 7;
else if(i>7) i = 0;
}
}

⑥ 單片機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;
}
}
}
}

⑦ 如何用51系列單片機做控制LED跑馬燈實驗

這是單片機的一個入門級的實驗,你可以到我的博客上去找,那裡有一個比較好的參考程序.

⑧ 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

⑨ 單片機跑馬燈

汗-----那麼簡單的問題也拿出來問!
不知道對你有什麼用?
若想學,建議繼續去看點基礎吧!
#include "reg51.h"
#include"intrins.h"

#define uint unsigned int

void DelayMs(uint t)
{
uint i;

while(t--)
{
for(i=0;i<124;i++)
{;}
}

}

void main()
{
uint ax,bx;
while(1)
{
bx=0x01;

for(ax=0;ax<8;ax++)
{
P1=bx<<ax;
Delay(10000);

}

}

}
臨時給你寫了一個,還沒有備注和調試哦;
8個燈一頭接P1口的8個腳,另一頭接地;

希望對你有用!

⑩ 單片機實現跑馬燈

硬體做好了嗎

我做單片機設計的

閱讀全文

與單片機跑馬燈控制實驗報告相關的資料

熱點內容
程序員節西安市 瀏覽:687
單片機的閃燈 瀏覽:965
phpmime映射 瀏覽:583
關鍵特徵分析python 瀏覽:992
linux粘滯位 瀏覽:137
安卓如何把備忘錄調成黑色 瀏覽:862
dhcp伺服器手動分配ip地址 瀏覽:308
阿里雲國內伺服器數量 瀏覽:455
壓縮機安全裕度 瀏覽:226
android交叉編譯環境 瀏覽:775
美團雲伺服器質量怎麼樣 瀏覽:396
蘋果手機游戲解壓包怎麼安裝 瀏覽:446
java程序員面試流程 瀏覽:681
遼寧圖片加密軟體地址 瀏覽:932
程序員35後應該學些啥技術 瀏覽:724
蘋果怎麼把app還原成ipa包 瀏覽:358
天正怎麼分解加密圖紙 瀏覽:829
你喜歡的大胸部電影 瀏覽:755
飛盧破解版網址 瀏覽:632
怎麼在米家app裡面找到小愛同學 瀏覽:208