当前位置:首页 » 编程语言 » 呼吸灯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%)。