當前位置:首頁 » 編程語言 » 循環彩燈的c語言單片機程序
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

循環彩燈的c語言單片機程序

發布時間: 2022-12-13 22:25:06

❶ 用c語言編寫單片機流水燈程序,(8個發光二極體從左至右循環點亮)

#include<reg51.h>

voiddelay(void)

{

unsignedinti,j;

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

for(j=0;j<1000;j++)

;

}

voidmain(void)

{

while(1)

{

P3=0xfe;//第一個燈亮

delay();//延時

P3=0xfd;//第二個燈亮

delay();

P3=0xfb;//第三個燈亮

delay();

P3=0xf7;//第四個燈亮

delay();

P3=0xef;//第五個燈亮

delay();

P3=0xdf;//第六個燈亮

delay();

P3=0xbf;//第七個燈亮

delay();

P3=0x7f;//第八個燈亮

delay();

}

}

(1)循環彩燈的c語言單片機程序擴展閱讀

單片機C語言16種方式流水燈

voidmain()

{

while(1)

{

P1=0xfe;//點亮第一個發光管

Delay(5000);

P1=0xfd;//點亮第二個發光管

Delay(5000);

P1=0xfb;

Delay(5000);

P1=0xf7;

Delay(5000);

P1=0xef;

Delay(5000);

P1=0xdf;

Delay(5000);

P1=0xbf;

Delay(5000);

P1=0x7f;//點亮第八個發光管

}

}

❷ 實現單片機信號燈1-8依次循環點亮的程序怎麼寫

電路很簡單八個led燈接在p1口.運行後看到的效果是 從第一個燈開始 隨著時間變化 二進制數的遞減 所有的燈都會依次的點亮,當全部的燈都被點亮後再重新開始這個過程 一直循環下去 單片機是不是很有趣?

下面是c語言程序源碼

#include <reg51.h>

void delay100ms(); //如果函數是在主函數後面定義,那麼一定要在主函數前面聲明

void main()

{

int i;

i=0xfe;

while(1)

{P1=i;

i--;

delay100ms();

if(i==0)

i=0xfe;

}

}

void delay100ms(void)//

{

unsigned char a,b,c;

for(c=19;c>0;c--)

for(b=20;b>0;b--)

for(a=230;a>0;a--)

❸ 單片機C語言編程點亮LED燈

可以通過左移函數_crol_()和右移函數_cror_()來實現LED等的來迴流動。 具體實現方法可以參考如下程序: #include #include #define uint unsigned int#define uchar unsigned charvoid delay(uint a);void main(){ P1=0xfe; while(1) { // 向左循環點亮LED for(i=0; i<7; i++) { P1=_crol_(P1,1); // 左移一位,點亮下一位LED delay(55); } // 向右循環點亮LED for(i=0; i/ 右移一位,,點亮上一位LED delay(55); } }}// 延時函數,延時a毫秒void delay(uint a){ uint x,y; for(x=a;x>0;x--) for(y=110;y>0;y--);}

❹ 誰能幫我寫一個循環流水燈的c語言編程

#include<reg51.h>//51系列單片機定義文件
#defineucharunsignedchar//定義無符號字元
#defineuintunsignedint//定義無符號整數
voiddelay(uint);//聲明延時函數
voidmain()
{
uinti;
uchartemp;
while(1)
{
temp=0x01;
for(i=0;i<8;i++)//8個流水燈逐個閃動
{
P2=~temp;
delay(500);//調用延時函數
temp<<=1;
}
temp=0x80;
for(i=0;i<8;i++)//8個流水燈反向逐個閃動
{
P2=~temp;
delay(500);//調用延時函數
temp>>=1;
}
temp=0xFE;
for(i=0;i<8;i++)//8個流水燈依次全部點亮
{
P2=temp;
delay(500);//調用延時函數
temp<<=1;
}
temp=0x7F;
for(i=0;i<8;i++)//8個流水燈依次反向全部點亮
{
P2=temp;
delay(500);//調用延時函數
temp>>=1;
}
}
}
voiddelay(uinta)//延時函數,毫秒級別
{
uinti;
while(--a!=0)//執行空操作循環,其中a為形參,由調用該函數的函數語句提供值
{
for(i=0;i<125;i++);//執行當0加到125時,大約會用掉1ms的時間
}
}

❺ 如何用C語言寫一個循環彩燈的程序,採用定時器方式1工作。

unsigned char lights = 0; //lights到各位分別表示P1.0~P1.7

int i=0;

while (1)
{
//①L1、L2、…L8依次點亮
lights = 0x01;
for (i=0; i<7; i++)
{
delay(500);
lights = lights << 1;
}
delay(500);
//②L1、L2、…L8依次熄滅
lights = 0xfe;
for (i=0; i<7; i++)
{
delay(500);

lights = (lights << 1) + 0x01;
}
delay(500);
//③L1、L2、…L8全亮
lights = 0xff;
delay(500);
//全滅
lights = 0x00;
delay(500);
}

❻ 單片機流水燈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++);

}

(6)循環彩燈的c語言單片機程序擴展閱讀

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

}

}

}

❼ 用C語言編寫一個單片機控制LED燈閃爍變化的編程 急用!!!!!!!!!

C語言實現LED燈閃爍控制配套51單片機開發板。

#include //包含單片機寄存器的頭文件

/****************************************
函數功能:延時一段時間

*****************************************/

void delay(void) //兩個void意思分別為無需返回值,沒有參數傳遞。

{

unsigned int i; //定義無符號整數,最大取值范圍65535。

for(i=0;i<20000;i++) //做20000次空循環。

; //什麼也不做,等待一個機器周期。

}

/*******************************************************

函數功能:主函數 (C語言規定必須有也只能有1個主函數)。

********************************************************/
void main(void)

{

while(1) //無限循環。

{

P0=0xfe; //P1=1111 1110B, P0.0輸出低電平。

delay(); //延時一段時間。

P0=0xff; //P1=1111 1111B, P0.0輸出高電平。

delay(); //延時一段時間。

}

}

單片機驅動LED燈的源程序:

#include<reg52.h> //頭文件。

#define uint unsigned int

#define uchar unsigned char

sbit LED1=P1^7; //位定義。

void delay_ms(uint);//mS級帶參數延時函數。

void main()

{

while(1)

{

LED1=0;

delay_ms(1000);

LED1=1;

delay_ms(1000);

}

}

void delay_ms(uint z) //延時子程序

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

(7)循環彩燈的c語言單片機程序擴展閱讀:

單片機應用分類:

通用型:

這是按單片機(Microcontrollers)適用范圍來區分的。例如,80C51式通用型單片機,它不是為某種專門用途設計的;專用型單片機是針對一類產品甚至某一個產品設計生產的,例如為了滿足電子體溫計的要求,在片內集成ADC介面等功能的溫度測量控制電路。

匯流排型:

這是按單片機(Microcontrollers)是否提供並行匯流排來區分的。匯流排型單片機普遍設置有並行地址匯流排、 數據匯流排、控制匯流排,這些引腳用以擴展並行外圍器件都可通過串列口與單片機連接。

另外,許多單片機已把所需要的外圍器件及外設介面集成一片內,因此在許多情況下可以不要並行擴展匯流排,大大減省封裝成本和晶元體積,這類單片機稱為非匯流排型單片機。

控制型:

這是按照單片機(Microcontrollers)大致應用的領域進行區分的。一般而言,工控型定址范圍大,運算能力強;用於家電的單片機多為專用型。

通常是小封裝、低價格,外圍器件和外設介面集成度高。 顯然,上述分類並不是惟一的和嚴格的。例如,80C51類單片機既是通用型又是匯流排型,還可以作工控用。

參考資料來源:網路-單片機



❽ 求單片機彩燈循環控製程序

ORG0000H

AJMPMAIN

ORG0100H

MAIN:JBP2.0,m1

JBP2.1,m2

JBP2.2,m3

JBP2.3,m4

JBP2.4,m5

JBP2.5,m6

JBP2.6,m7

JBP2.7,m8

SJMPMAIN

m1:MOVR1,#02H;四亮四閃

LOOP:MOVP1,#00H

XRLA,#0AAH

MOVP1,A

CALLDELAY

DJNZR1,LOOP

SJMPMAIN

m2:MOVR1,#08H;向右閃爍

MOVA,#0FEH

LOOP1:MOVP1,A

CALLDELAY

RLA

DJNZR1,LOOP1

SJMPMAIN

m3:MOVR1,#02H;整體閃爍

LOOP2:MOVP1,#00H

CALLDELAY

MOVP1,#0FFH

CALLDELAY

DJNZR1,LOOP2

SJMPMAIN

m4:MOVR1,#08H;奇數向右閃爍

MOVA,#0AAH

LOOP3:MOVP1,A

RRA

CALLDELAY

DJNZR1,LOOP3

SJMPMAIN

m5:MOVR1,#08H;兩邊中間

LOOP4:MOVP1,#3CH

CALLDELAY

MOVP1,#0C3H

CALLDELAY

;MOVP1,#7EH

;CALLDELAY

;MOVP1,#0BDH

;CALLDELAY

;MOVP1,#0DBH

;CALLDELAY

;MOVP1,#0E7H

;CALLDELAY

DJNZR1,LOOP4

SJMPMAIN

m6:MOVR1,#04H

LOOP5:MOVP1,#0F0H;亮一半滅一半

CALLDELAY

MOVP1,#0FH

CALLDELAY

DJNZR1,LOOP5

JMPMAIN

m7:MOVR1,#02H;中間往兩邊滅

LOOP6:MOVP1,#00H

CALLDELAY

MOVP1,#18H

CALLDELAY

MOVP1,#3CH

CALLDELAY

MOVP1,#7EH

CALLDELAY

MOVP1,#0FFH

CALLDELAY

DJNZR1,LOOP6

LJMPMAIN

m8:MOVR1,#01H;雙燈循環

LOOP7:MOVP1,#3FH

CALLDELAY

MOVP1,#0FCH

CALLDELAY

MOVP1,#0CFH

CALLDELAY

MOVP1,#0F3H

CALLDELAY

DJNZR1,LOOP7

JMPMAIN

DELAY:MOVR5,#10

DEL1:MOVR7,#200

DEL:MOVR6,#123

NOP

NOP

DJNZR6,$

DJNZR7,DEL

DJNZR5,DEL1

RET

就是沒有數碼管顯示!一共八種模式!