導航:首頁 > 操作系統 > 順序控制燈單片機程序

順序控制燈單片機程序

發布時間:2023-03-28 06:04:34

單片機流水燈C語言程序(8個燈,依次點亮每個燈,延時500MS)

單片機流水燈C語言程序的源代碼如下:

#include //51系列單片機定義文件

#define uchar unsigned char //定義無符號字元

#define uint unsigned int //定義無符號整數

void delay(uint); //聲明延時函數

void main(void)

{

uint i;

uchar temp;

while(1)

{

temp=0x01;

for(i=0;i<8;i++) //8個流水燈逐個閃動

{

P1=~temp;

delay(100); //調用延時函數

temp<<=1;

}

temp=0x80;

for(i=0;i<8;i++) //8個流水燈反向逐個閃動

{

P1=~temp;

delay(100); //調用延時函數

temp>>=1;

}

temp=0xFE;

for(i=0;i<8;i++) //8個流水燈依次全部點亮

{

P1=temp;

delay(100); //調用延時函數

temp<<=1;

}

temp=0x7F;

for(i=0;i<8;i++) //8個流水燈依次反向全部點亮

{

P1=temp;

delay(100); //調用延時函數

temp>>=1;

}

void delay(uint t) //定義延時函數

{

register uint bt;

for(;t;t--)

for(bt=0;bt<255;bt++);

}

(1)順序控制燈單片機程序擴展閱讀

51單片機流水燈的源代碼如下

#include<reg51.h>

#include<intrins.h>

voiddelay(inta)

{

inti;

while(a--)for(i=0;i<110;i++);

}

main()

{

inti;

while(1)

{

P0=0xfe;

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

{

P0=_crol_(P0,1);

delay(500);

}

}

}

㈡ 單片機應用,一個鍵多次按下,能夠依次控制紅黃藍綠四個燈控制第一次按下亮紅燈然後綠燈依次四下

#include<reg52.h>
typedef unsigned char uint8_t; //定義數據類型
sbit key0 = P3^2;//按鍵對應的引腳,根據實際情況修改。
sbit led0 = P1^0;//LED 對應的引腳,根據實際情況修改。
sbit led1 = P1^1;
sbit led2 = P1^2;
sbit led3 = P1^3;
#define LED_ON 0 //低電平亮燈,根據實際情況修改。
#define LED_OFF (!LED_ON)
bit changeByKey; //換燈標志位
uint8_t cnt;//亮燈狀態寄存器
void delay()//短延時函數
{
uint8_t i = 200;
while(-- i);
}
main()
{
key0 = 1;
changeByKey = 0;
led0 = LED_ON;
led1 = LED_OFF;
led2 = LED_OFF;
led3 = LED_OFF;
while(1)
{
delay();
if(key0)//如果按鍵松開
{
changeByKey = 1;//按鍵控制換燈
led0 = LED_OFF; //全部熄滅
led1 = LED_OFF;
led2 = LED_OFF;
led3 = LED_OFF;
}
else//按下
{
if(changeByKey)//松開下次按下才能再次生效
{
changeByKey = 0;
cnt ++;
switch(cnt & 3)
{
case 0:
led0 = LED_ON; //亮燈
break;
case 1:
led1 = LED_ON;
break;
case 2:
led2 = LED_ON;
break;
case 3:
led3 = LED_ON;
break;
}
}
}
}
}

㈢ 設計一個具有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)順序控制燈單片機程序擴展閱讀:

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:在此處寫入主函數的內容

}

}

㈣ C語言控制單片機,控制八個流水燈從左到右依次亮,最後又從右到左依次亮回來,一直循環下去,求幫幫忙

假設P1接8 個LED,高電平時LED點亮,主程序如下:
void main(void)
{
uchar i;
while(1)

{
for(i=0;i<7;i++)
{
P1=1<<i;
delay_ms(500);
}
for(i=0;i<7;i++)
{
P1=0x80>>i;
delay_ms(500);
}
}
}

閱讀全文

與順序控制燈單片機程序相關的資料

熱點內容
馬達加斯加鞭炮解壓 瀏覽:460
釜山行1電影在線觀看 瀏覽:384
廣州視頻流加密晶元 瀏覽:649
伺服器異常有什麼預兆 瀏覽:749
安卓airpodspro怎麼調降噪模式 瀏覽:100
承憲的朋友電影 瀏覽:778
農場互助源碼手機版 瀏覽:115
萬安如何使用雲伺服器ip 瀏覽:212
編程語言python入門電子書 瀏覽:401
什麼是民政生存認證app 瀏覽:633
java怎麼退出 瀏覽:903
掛接pdf 瀏覽:166
浪潮伺服器遠程修改bmc地址 瀏覽:120
單立文電影 瀏覽:873
linuxtar命令 瀏覽:876
優酷app如何屏蔽短視頻 瀏覽:480
看著就解壓的軟體 瀏覽:785
android撥號界面源碼 瀏覽:54
在線高清 瀏覽:375
程序員陸漓發型劉海 瀏覽:484