8個led燈循環閃爍課程設計
① 求單片機設計8個led燈同時閃爍的程序,
八個燈接在單片機的P1口(P0,P2,P3,P4都一樣)
while(1)
{
delay(你想要延時的時間);專屬
P1=0xff;
delay(你想要延時的時間);
P1=0;
}
注意led最好加驅動,不然單片機會壞的。
② 8個LED指示燈循環閃爍的程序(單片機)
1:設置一個變數i,它可以從0循環到3
2:檢測一個已取消緩沖的鍵。按「+1」
3:當I值為每個值時,執行相應的模式。
水量燈參考程序
#include
#include
#定義uchar無符號字元
Ucharj,溫度;
無效延遲(無符號整型ms)
{
Uchart;
(女士)
對於(t = 0;T < 123;T + +);
}
Voidmain()
{
P1=0XFF;
延遲(500);
Temp=0xfe;//奇怪,led連接在P2.3~P2.6
對於(j = 0;J < 4;J + +)
{
P1=temp;
延遲(500);
Temp=_crol_(Temp,1);
}
P1=0XFF;
(1);
}
(2)8個led燈循環閃爍課程設計擴展閱讀:
注意事項:
#include「reg52。這個文件為單片機定義了一些特殊的功能寄存器
Typedef無符號int在16以下;//以聲明的方式定義數據類型
無符號charu8;
//LED燈
Sbitleda=P0;
Sbitled1=P0^0;
Sbitled2=P0^1;
Sbitled3=P0^2;
Sbitled4=P0^3;
Sbitled5=P0^4;
Sbitled6=P0^5;
Sbitled7=P0^6;
Sbitled8=P0^7;
無效延遲(16歲以下)
{
,(我);
}
Voidmain()
{
而(1)
{
勒達=1;//所有的燈都亮著
//從左到右熄滅
Led1=0;
延遲(50000);//延遲時間約為450毫秒
Led2=0;
延遲(50000);//延遲時間約為450毫秒
Led3=0;
延遲(50000);//延遲時間約為450毫秒
Led4=0;
延遲(50000);//延遲時間約為450毫秒
Led5=0;
延遲(50000);//延遲時間約為450毫秒
Led6=0;
延遲(50000);//延遲時間約為450毫秒
Led7=0;
延遲(50000);//延遲時間約為450毫秒
Led8=0;
延遲(100000);//延遲大約900毫秒
//從右到左照明
Led8=1;
延遲(50000);//延遲時間約為450毫秒
Led7=1;
延遲(50000);//延遲時間約為450毫秒
Led6=1;
延遲(50000);//延遲時間約為450毫秒
Led5=1;
延遲(50000);//延遲時間約為450毫秒
Led4=1;
延遲(50000);//延遲時間約為450毫秒
Led3=1;
延遲(50000);//延遲時間約為450毫秒
Led2=1;
延遲(50000);//延遲時間約為450毫秒
Led1=1;
延遲(50000);//延遲時間約為450毫秒
勒達=1;//所有的燈都亮著
}
}
③ 設計一個具有8個LED燈,要求從右向左依次點亮一秒後熄滅,循環往復的單片機程序。跪求
#include"reg52.h"//此文件中定義了單片機的一些特殊功能寄存器
typedef unsigned int u16;//對數據類型進行聲明定義
typedef unsigned char u8;
//LED燈命名
sbit leda=P0;
sbit led1=P0^0;
sbit led2=P0^1;
sbit led3=P0^2;
sbit led4=P0^3;
sbit led5=P0^4;
sbit led6=P0^5;
sbit led7=P0^6;
sbit led8=P0^7;
void delay(u16 i)
{
while(i--);
}
void main()
{
while(1)
{
leda=1;//全部燈亮
//從左到右依次熄滅
led1=0;
delay(50000);//大約延時450ms
led2=0;
delay(50000);//大約延時450ms
led3=0;
delay(50000);//大約延時450ms
led4=0;
delay(50000);//大約延時450ms
led5=0;
delay(50000);//大約延時450ms
led6=0;
delay(50000);//大約延時450ms
led7=0;
delay(50000);//大約延時450ms
led8=0;
delay(100000);//大約延時900ms
//從右到左依次點亮
led8=1;
delay(50000);//大約延時450ms
led7=1;
delay(50000);//大約延時450ms
led6=1;
delay(50000);//大約延時450ms
led5=1;
delay(50000);//大約延時450ms
led4=1;
delay(50000);//大約延時450ms
led3=1;
delay(50000);//大約延時450ms
led2=1;
delay(50000);//大約延時450ms
led1=1;
delay(50000);//大約延時450ms
leda=1;//全部燈亮
}
}
(3)8個led燈循環閃爍課程設計擴展閱讀:
main()應用:
1、C++中的main函數
C++繼承了C語言的大部分特性,因此保留了「程序總是從main函數開始執行,且總是默認從main函數的return語句或結尾處結束運行」這一傳統,
但是要注意,C++中的main函數要想作為程序執行的出入口,必須寫在全局(Global)范圍,不能寫成某個結構體或某個類的成員。
雖然main函數可以作為結構體或者類的成員函數,但相應地會失去作為程序出入口的功能。
C++中全局main函數的書寫格式與C語言完全相同,功能也完全相同,且同一C++程序同樣只能有一個全局main函數。
2、Java中的main函數
Java同樣是以main函數作為程序執行出入口的,但Java作為「更純潔」的面向對象語言,它的main函數與C/C++有很大的不同。
首先,返回值的概念淡化,在Java Application中main不允許返回值,因此int main是被禁止的,必須使用void main,int main僅限在JavaBean中使用。
其次,Java中所有的函數必須屬於類,沒有什麼全局函數一說,因此main函數不能是全局成員,必須是某個類的成員。
第三,由於main函數變成了類的成員函數,因此要想直接被系統調用,還必須使用public static使其成為靜態函數並具有公開許可權。
第四,main函數的參數被簡化,只需要提供字元串數組即可,不需要提供參數個數(這是由於Java的數組具有下標檢查功能的原因)
Java Application中的main函數一般格式如下(類名可以自定義,但保存為Java源碼時,主文件名必須與類名相同,否則可能無法運行)
public class MainDemo{
public static void main(String[]args){
//TODO:在此處寫入主函數的內容
}
}
Java Applet的運行機制與Java Application完全不同,因此不需要main函數
3、C#中的main函數
C#中的main函數與Java大同小異,同樣必須是類成員,同樣使用字元串數組作唯一參數,同樣是靜態函數,同樣的void main,
與之不同的是:main的首字母變成了大寫,即"Main函數「,且是否限定為public級別已經無所謂了(默認沒有public,但某些場合可能還是需要public)
另外,需要注意的是,C#中不再有」類名必須與主文件名同名「的限制,即使類名不和主文件名相同,程序照樣可以運行。
C#應用程序中的main函數默認是這樣的(注意main的首字母已是大寫)
C#和C/C++、java不同的是C#不在拘泥於必須從main()函數開始執行,C#是屬於事件觸發。
class Program{
static void Main(string[]args){
//TODO:在此處寫入主函數的內容
}
}
④ 8個LED燈循環閃爍。
51單片機就能實現 數字電路的話 麻煩
⑤ 用單片機設計8個led燈同時閃爍的程序,
#includereg52.h
void LED_turnon()
{
}
void Delay1s()
{
}
void LED_turnoff()
{
}
void main()
{
while(1)
{
LED_turnon();
Delay1s();
LED_turnoff();
Delay1s();
}
}
⑥ 匯編語言編程 8 個LED 燈循環閃爍。
你的問題我幫你在半導體器件應用技術論壇發過帖子了,就等待那邊的高手解答。如果問題比較急,你可以登錄論壇然後搜索你的標題看別人的回答也行。
⑦ 8個LED燈怎麼不能循環閃爍我用Proteus和Keil,圖畫的沒問題,就是不知程序錯在哪
#include "reg52.h"
#define uchar unsigned char;
uchar num,t;
void main()
{
num=0xfe;
t=0;
TMOD=0x10;
EA=1;
ET1=1;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TR1=1;
while(1)
{
if(t==7)
t=0;
}
}
void time0() interrupt 3
{
【 TH0=(65536-50000)/256;//請問,你到底是想用定時器1還是定時器0
TL0=(65536-50000)%256;】
t++;
【 num=num|0x01;
num=num<<1;】這兩行調換位置
P1=num;
}
從你犯的這兩個問題可以看出,你是一位初學者。遇到問題知道來網上進行求助,說明你懂得應用網路這個資源,但是,我建議在往後的學習中能夠細心一點,這樣能避免很多不必要的問題。建議多看一點別人寫的比較正規的程序,注意格式,你的程序什麼注釋也沒有。
要學會自己找問題,自己解決問題,我們要學習是方法,如何解決問題的方法。
說多了!個人之言,僅供參考!
⑧ 利用8個LED燈設計一組循環彩燈,要有多種花型自動變換(至少6種),並且自定義控制開關,
moleledwater(clk,led,s)
inputclk;
input[1:0]s;
output[7:0]led;
reg[7:0]led=0;
reg[1:0]olds=0;
always@(posedgeclk)olds<=s;
always@(posedgeclk)
if(olds^s)
case(s)
2'b00:led<=1;//*a
2'b01:led<=1;
2'b10:led<=8'b1010_1010;
2'b11:led<=8'b0000_0111;
endcase
else
case(s)
2'b00:led<={led[6:0],led[7]};//*b
2'b01:led<={led[0],led[7:1]};
2'b10:led<=~led;
2'b11:led<={led[6:0],led[7]};
endcase
endmole
//第一種:一個燈亮,從右往左逐個移動,並循環
//第二種:一個燈亮,從左往右逐個移動,並循環
//第三種:一個間一個燈亮,並交替循環
//第四種:三個燈亮,從右往左逐個移動,並循環
//當然可以再多一些花樣:
//如:燈從右往左逐步點亮
//*a改為:led<=1;
//*b改為:led<=(&led)?1:{led[6:0],1'b1};
⑨ 用單片機設計8個led燈同時閃爍的程序!!
AT8951單片機控制8個發光二極體跑馬燈課程設計程序。我給你