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

51单片机用汇编语言如何设计8个轮流呼吸的呼吸灯?
START:MOV P0,#01H;()只有第一个灯亮 ACALL DELAY;延迟,不加延迟的话 你根本看不起清到底那个灯亮的 MOV P0,#02H;()只有第二个灯亮 ACALL DELAY MOV P0,#04H;()只有第三个灯亮 ACALL DELAY MOV P0,#08H;()只有第四个灯亮 ACALL DELAY MOV P0,#10H;()只有第五个灯亮 ACALL ...

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...

51单片机两个定时器中断写了个呼吸灯程序,怎么调试出来是小灯闪烁程序...
中断一次计数变量a加一,并且与另一变量b(1到20)比较,如果a>b,则输出高电平,反之则输出低电平 a=20时清0 主程序中可不断改变b的值,先由大到 小 再由小到大,就是呼吸灯了 如延时200ms改变一次b的值 则呼吸周期大约是8秒

求单片机大神帮忙设计一个电路,51单片机制作led呼吸灯的
proteus仿真按理来说是不可能达得到效果的,因为这种仿真得有非常快的处理速度。我刚动手试了下和自己的想法相同,LED只会间断的闪烁。我是用AVR单片机,用51也是一样的。我这个程序也在实物试过效果很好。演示定时器1的快速PWM输出@利用快速PWM输出控制LED的亮度变化,达到呼吸灯的效果*\/ include<iom8...

单片机制作呼吸灯的C语言程序怎样编写
include<reg51.h> sbit LED0=P0^0;sbit wei=P1^1;sbit duan=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;duan=0;...

单片机式的呼吸灯控制方法
方法2:用移位电路,比如HC595,在51中地址做为串行信号发出,转换为对应的地址线,然后在连接译码器,这样,51的管脚比较节省,但,编程的难度稍大。那么上述就是呼吸灯相关控制的方法和技巧,我们讲,呼吸灯控制在硬件圈是一个很普通的项目,而所采用的单片机控制也是硬件里最基础的,相信很多人在研习...

谁帮忙把这个51单片机模仿PWM呼吸灯的主函数程序注释下,很乱
void main (void){ unsigned int t = 1;unsigned int i, TEMP;unsigned int TYPE = 0;bit LOOP = 0;while (1){ if (KEY == 0){ l1:Delay(10000);TYPE = (1 - TYPE);if (TYPE == 0){ t = 1;LOOP = 0;};} if (TYPE == 0){ if (LOOP == 0){ Display(t);t++;...

求一个89c52单片机的呼吸灯程序 要边呼吸边移动的 就是相当于呼吸灯流水...
delay(10); \/\/ 这里的延时 根据灯的情况自己调整 } } } \/\/ 由亮变暗的子函数 \/\/ 参数 ledn 为点第几位的灯 void on_off(unsigned char ledn){ unsigned int i,j;for(i=100;i>1;i--){ for(j=0;j<100;j++){ if(i<=j){ \/\/ 模拟pwm的低电平输出 P0 = 0...

新手用51单片机做什么好呢?
调一些跑马灯如彗尾灯,呼吸灯。然后调数码管,蜂鸣器的音乐播放器,然后制作一个闹钟。制作一辆自动寻轨的小车,这些弄完,单片机基本内容掌握的差不多

求一个stc15w202s单片机的呼吸灯程序 要边呼吸边移动(波浪状), 就是...
pwm要挺高频率才行,不然会闪,试过3灯的rgb,原理上差不多,但是直接程序死循环都难受,不是很流畅,你也可以参考一下。。。include "reg52.h"include "intrins.h"sbit r=P1^0;sbit g=P1^1;sbit b=P1^2;void Delay200ms();void play(char rz1,char gz1,char bz1,int t);void Delay...

相似回答