當前位置:首頁 » 編程語言 » C語言控制彩燈快慢
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

C語言控制彩燈快慢

發布時間: 2022-05-21 16:14:04

A. 如何用開關控制LED閃爍快與慢兩種效果單片機c語言程序及電路

#include<reg51.h>
sbit a=P1^0;
sbit b=P1^1;
int i,k;
void delay(int z)
{
for(i=z;i>0;i--)
for(k=100;k>0;k--);
}
void main()
{
while(1)
{
a=1,b=0;
delay(隨便寫個數,大於0的,小於30000,用來控制燈閃爍的快慢);
a=0,b=0;
delay(和上面那個括弧里的數一樣);
}
}
注意P字母是大寫的,各個標點是英文的

B. 如何用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. 要寫一個基於51單片機的c語言程序控制彩燈效果,要求一個按鍵控制一種效果可來回切換,每種效果的子函數寫

調用輸入輸出指令啊

D. 彩燈控制器的設計與製作(單片機C語言),求原理圖和程序!!!

#include#include#defineucharunsignedchar#(uintz);main(){ucharaa;while(1){aa=0xfe;P1=aa;delay(100);while(1){aa=_crol_(aa,1);P1=aa;delay(100);}}}voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}

E. 依次點亮,再閃爍3次後循環2次,延時時間0.5秒流水彩燈c語言程序

給你個思路,按下I0.0,置位一個M0.0.同時用傳送指令MOV-B傳送一個二進制數1(就是給一盞燈亮起來).用M0.0做一個1秒的脈沖(方法是:在延時計時器t37前面串聯一個常閉t37觸點.計時10.而常開t37就是一妙脈沖).用這個脈沖串聯在循環左移指令前面.就可以實現循環亮。停止信號I0.1.按下後復位M0.0.同時傳送指令傳送一個0。

F. 51單片機用4個按鈕控制開始暫停快速慢速的流水燈。需要用C語言編程。求大神幫助

其實很簡單的,隨便使用一個定時/計數 器,使其工作在方式1(方便計算初值),然後寫中斷服務函數,使用_crol_()函數來反復循環做流水效果,然後在主函數最後寫while(1),一直不停掃描鍵盤函數,然後鍵盤函數定義4個按鍵,開始:TRx=1,停止:TRx=0,至於快慢的控制你可以在中斷函數里邊寫一個延時函數,然後按鍵3和4按下一次自增或自減1000(你可以取其他值),然後傳遞給延時函數。
有不懂的地方隨時回復我。
希望我的回答能幫助到你。

G. 還是程序翻譯(c語言的彩燈控制)

#include<reg52.h>
#define uint unsigned
int#define uchar unsigned
char delay(uint i) //延時函數
{uchar j;
for(;i>0;i--)
for(j=0;j<140;j++);
}
main()
{uchar a,b,c;
while(1) //死循環 一直運行
{a=0x01; //把第一個位為高(就是1) 就是變亮 一共8個位,每個位控制一個LED燈for(b=0;b<8;b++) //這個循環體裡面的程序就是把燈一次點亮
{P2=a; // 第一位亮
delay(500);
a<<=1; //往左以為1 就是第二位燈亮
a=a|0x01; // 取或 意思是第一位為高 一直亮
}
for(c=0;c<6;c++) 這個循環體裡面的程序就是把燈弄滅
{
P2=~P2; 這是取反 原來1變為0
delay(500);
}
for(b=0;b<2;b++) //這個和上面是重復的{a=0x01;for(c=0;c<8;c++) {P2=a; delay(500); a<<=1; }}}}

H. 節日彩燈控制器的設計用C語言來編程,求程序!

程序大綱:
1.單片機初始化程序
2.主程序(把p1.1到p1.4寫到存儲器R1到R4)在用djnz R1,SUB1完成控制 以此類推
3.子程序
SUB1:此程序依次(加延時)設置彩燈所在腳為高電平
sub2 此程序設置彩燈所在腳為低電平
sub3 同sub1
sub4 sub1調轉寫

I. 將如下C語言單片機程序由4燈閃爍改成8個燈閃爍,速度有慢變快在變慢~~

/* 定時器0中斷 */
if (++delay1 > 8){
delay1 = 0;
if (++count > 7) count = 0;
P1 |= 0x00;
P1 &= ~(0x01 << count);
}

上面的這段,改為這樣就行了,你試試。燈接在p1口上,8個。

J. C語言單片機,彩燈控制器的設計,讀程序回答問題。

//稍微改了一下加了一個暫停鍵,中斷方式,你需要將該鍵接到P3.2
#include<reg51.h>
//包含單片機寄存器的頭文件
#include
<intrins.h>
/*****************************
函數功能:延時一段時間
*****************************/
unsigned
char
L[8]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
unsigned
char
L1[8]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};
bit
pause;
void
ex0isr()
interrupt
0
{
pause=~pause;
}
void
delay1s(unsigned
int
i)
{
unsigned
int
j;
while(i--)
{
for(j=0;j<=151;j++){;}
}
while(pause);//實現暫停,鍵按一下暫停,再按一下恢復。
}
/*****************************
函數功能:主函數
*****************************/
void
main(void)
{
unsigned
char
i,j;
P0
=
0x00;
P1
=
0x00;
P2
=
0x00;
P3
=
0x00;
pause=0;
while(1)
{
for(j=0;j<8;j++)
{
P0=L[j];
delay1s(100);
};
for(j=0;j<8;j++)
{
P1=L[j];
delay1s(100);
};
for(j=0;j<8;j++)
{
P2=L[j];
delay1s(100);
};
for(i=0;i<8;i++)
{
P3=L[i];
delay1s(100);
};
for(j=0;j<8;j++)
{
P0=L1[j];
delay1s(100);
};
for(j=0;j<8;j++)
{
P1=L1[j];
delay1s(100);
};
for(j=0;j<8;j++)
{
P2=L1[j];
delay1s(100);
};
for(i=0;i<8;i++)
{
P3=L1[i];
delay1s(100);
};
}
}