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

呼吸燈c語言程序實例

發布時間: 2023-04-02 01:50:37

① 51單片機設計呼吸燈

#include "reg51.h" //掘段包含頭文件
#define uchar unsigned char
#define uint unsigned int
//**************************************************************************************************
//延時函判缺譽數
//**************************************************************************************************
delay(uint time) //int型數據為16位,所以最大值為65535
{
uint i,j; //定義變數i,j,用於循環語句
for(i=0;i<time;i++) //for循環,循環50*time次
for(j=0;j<50;j++); //for循環,循環50次
}
//**************************************************************************************************
//主函數
//**************************************************************************************************
void main() //主函數
{
uint i; //定義變亮i
while(1) //進入while死循環
{
for(i=0;i<200;i++) //for循環,實現LED由亮逐漸變暗
{
P0=0xff; //熄滅8位發光二極體
delay(i); //延時保持熄滅狀態i個時間單位
P0=0x00; //點亮8位發光二極體
delay(200-i); //延時保持點亮狀態200-i個時間單位
}
P0=0xff; //熄滅8位發光二極體
delay(5000); //延時保持熄滅狀態5000個時間單位,使現象更明顯
for(i=0;i<200;i++) //for循環,實現LED由暗逐漸變亮
{
P0=0x00; //點亮8位發光二極體
delay(i); //延時保持熄滅狀態i個時間單位
P0=0xff; //熄滅8位發光二極體
delay(200-i); //延時保持點亮狀態200-i個時間單位扮伍
}
}
}

② 單片機製作呼吸燈的c語言程序怎樣編寫

#includex0dx0asbit LED0=P0^0;x0dx0asbit wei=P1^1;x0dx0asbit an=P1^0;x0dx0asbit lcden=P1^7;x0dx0asbit dianzhen=P1^3;x0dx0asbit leden=P1^2;x0dx0avoid Delay(unsigned int t);x0dx0avoid main (void)x0dx0a{x0dx0aunsigned int CYCLE=600,PWM_LOW=0;//定義周期並賦值x0dx0alcden=0;x0dx0aP0=0x00;x0dx0adianzhen=0;x0dx0aP0=0xff;x0dx0awei=0;x0dx0aan=0;x0dx0awhile (1) //主循環x0dx0a{x0dx0aLED0=1;x0dx0aDelay(150000); //特意加延橘畢時,可以看缺伍正到熄伏悔滅的過程x0dx0afor(PWM_LOW=1;PWM_LOW0;PWM_LOW--)x0dx0a{x0dx0aLED0=0;x0dx0a x0dx0aDelay(PWM_LOW);x0dx0a x0dx0aLED0=1;x0dx0a x0dx0aDelay(CYCLE-PWM_LOW);x0dx0a}x0dx0a}x0dx0a}x0dx0avoid Delay(unsigned int t)x0dx0a{x0dx0awhile(t--);x0dx0a}

③ 單片機製作呼吸燈的C語言程序怎樣編寫

#include<reg51.h>
sbit LED0=P0^0;
sbit wei=P1^1;
sbit an=P1^0;
sbit lcden=P1^7;
sbit dianzhen=P1^3;
sbit leden=P1^2;
void Delay(unsigned int t);
void main (void)
{
unsigned int CYCLE=600,PWM_LOW=0;//定義周期並賦值
lcden=0;
P0=0x00;
dianzhen=0;
P0=0xff;
wei=0;
an=0;
while (1) //主循環
{
LED0=1;
Delay(150000); //特意加延時,可以看到熄滅的過程
for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
{
LED0=0;

Delay(PWM_LOW);

LED0=1;

Delay(CYCLE-PWM_LOW);
}
for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
{
LED0=0;

Delay(PWM_LOW);

LED0=1;

Delay(CYCLE-PWM_LOW);
}
}
}
void Delay(unsigned int t)
{
while(t--);
}

④ 利用pwm做出呼吸燈(用定時器)並用串口每隔一秒列印亮度(百分比)於電腦上C語言程序怎麼寫

通過PWM占空比調節LED亮度,占空比的值就是亮度值(0%--100%)
定時器蠢廳基定時帶謹1s,在定時器中斷中使用串口發送數伏虛據

⑤ 用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();

}

}

(5)呼吸燈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;//點亮第八個發光管

}

}

⑥ 呼吸燈延時程序C語言單片機製作呼吸燈的C語言程序怎麼寫,不要用定時器,用延時程序

一.51沒有這樣的功能,STC12單片機才有這樣的功能,不過你可以用延時函數來產生PWM波形,但比喊配較浪費CPU時間。二.還有一種畝森方法可以用51來實現,但要消耗兩個定時器,一個T0定時器控制PWM周期,另一個T1定時器控制PWM占空比。(T0裝的初值要大於T1的初值)在定時器中斷的時候都是對I/O口進行取反就可以了。一個定時器產迅滲畝生PWM波形,做不出來,要兩個的(不過只賞0分太少了吧!!!)

⑦ STC12C5A60S2製作呼吸燈C語言程序怎麼寫

呼吸燈的程序:
/****************************************************************************
功能:LED燈慢慢變暗,再慢慢變亮。
用定時器模擬的PWM調制。
單片機:AT89S52
******************************************************************************/
#include<reg52.h>
#defineV_TH00XFF//設定定時器0,高8位的初值
#defineV_TL00XF6//設定定時器0,低8位的初值
#defineV_TMOD0X01//設定定時器0的工作方式為:方式1(計數位數是16位//,由TL0作為低8位、TH0作為高8位)
#defineucharunsignedchar
#defineuintunsignedint
voidinit_sys();知握叢//系統初始化函數
voiddelay(uint);//延時函數
unsignedcharZKB;//占空比

voidmain(void)
{
init_sys();//初始化
while(1)
{
for(ZKB=5;ZKB<40;ZKB=ZKB+2)//每調節一次占空比,就延時大概8ms左右,這使得LED現象更明顯
{
delay(8);
}
for(ZKB=40;ZKB>5;ZKB=ZKB-2)
皮芹{
delay(8);
}

}
}
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--);
}
voidinit_sys()/*系統初始化函數*/
{
/*定時器初始化*/
TMOD=V_TMOD;
TH0=V_TH0;
TL0=V_TL0;
TR0=1;
ET0=1;
EA=1;
}

voidtimer0(void)interrupt1using2
{
staticucharclick=0;//中斷次數計數器變數
TH0=V_TH0;//重新恢復定時器初始值
TL0=V_TL0;
++click;//每計數10次,產生一個中斷,並且click增加一個

if(click>=100)
搭櫻click=0;//計滿一百次,這重新計數。
/*因為計一次數的時間是1us,10次產生一個中斷,也就是一個中斷10us。100個中斷為1ms。
則,可以在這100個數中隨便取值,用於表示占空比的多少,占空比的范圍為(1~100)*/

if(click<=ZKB)//當小於占空比值時輸出低電平,高於時是高電平,從而實現占空比的調整
P1=0x00;//P1口接的是LED燈
else
P1=0xff;
}

此程序的總中斷時間為100ms,即頻率為:100KHZ,占空比從5變為40(即5%~25%)。