51单片机设计呼吸灯

用单片机设计呼吸灯,由灭渐亮,再由亮渐灭,以此循环。。。。
求高手帮忙写个程序,不用多复杂的,就是个pwm电路
请直接发我邮箱,在线等,谢谢~~~
有用可以提高悬赏
邮箱是912386250@qq.com

#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个时间单位
}
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-09
#include<reg52.h>
#define uint8 unsigned char
#define uint16 unsigned int
uint8 orc,num;
sbit PWM_out = P1^1;
void pwm_init()
{
TMOD = 0x02;
TH0 = 0x9c;
TL0 = 0x9c;
ET0 = 1;
EA = 1;
TR0 = 1;
}
void pwm_set(uint8 pwm)
{
orc = pwm;
}
void delay()
{
uint8 i;
for(i=0;i<250;i++);
}
void main()
{
uint8 i;
pwm_init();
while(1)
{
pwm_set(i++);
delay();
}
}
void pwm_int() interrupt 1
{
num++;
if(orc >= num)
PWM_out = 1;
else
PWM_out = 0;
}本回答被网友采纳
第2个回答  2020-06-01
原发布者:呦_
小屁孩
基于单片机与PWM的
呼吸灯
设计实训指导教师:班级:设计人姓名:设计日期:设计地点:完成时间:摘要本设计是基于单片机的原理与接口设计,采用单片机I/O口,加以
C语言编程
实现LED渐亮再渐暗类似人的呼吸一样的效果。关键词
AT89C51
,PWM(
脉宽调制
)一、设计要求:呼吸灯就是让
LED灯
的闪烁像呼吸一样,时呼时吸,时亮时暗,利用LED的余辉和人眼的暂留效应,看上去和人的呼吸一样。二、
设计原理
:用C语言编程实现PWM(脉宽调制)输出驱动LED,逐渐增加PWM的
占空比
从而实现LED模拟
呼吸的过程
,即渐亮再渐暗再渐亮再渐暗……如此往复,再利用LED的余辉和人眼的暂留效应,看上去就和人的呼吸一样。三、整体方案设计8个LED按照顺序逐个实现呼吸效果。加以其他闪烁花样增加更炫彩的效果。四、实验元件及器材(1)元件:LED(
发光二极管
)8个1KΩ电阻8个
1nf
电容2个
晶振
1个
AT89C51芯片
1个(2)器件:
Atmega128
开发板
1块计算机1台5、硬件原理(1)
主电路
:8个LED分别连接AT89C51的P1口,使用共阳方式,并加以1kΩ的电阻接入电源。
第3个回答  2013-04-09
供参考,控制8个灯 由灭渐亮,再由亮渐灭,以此循环
http://zhidao.baidu.com/question/534609470.html
第4个回答  2018-08-04
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit PWM=P1^0;
uint cycle,high,low;
void delay(uint t)
{
 while(t--);
}
void main()
{
 cycle=500;
 while(1)
 {
  for(high=1;high<=cycle;high++)
  {
   PWM=1;
   delay(high);
   low=cycle-high;
   PWM=0;
   delay(low);
  }
  high=1;
  delay(50000);
 }
}

相似回答