精华内容
下载资源
问答
  • 51单片机做的一盒呼吸灯的仿真,用的仿真软件是proteus
  • 采用比较简单的c语言,详细完整的代码,能够实现呼吸灯的功能。
  • 基于单片机与PWM的呼吸灯设计实训指导教师:班 级:设 计 人姓名:设 计 日 期:设 计 地 点:完 成 时 间:摘要本设计是基于单片机的原理与接口设计,采用单片机I/O口,加以C语言编程实现LED渐亮再渐暗类似人的呼吸...

    基于单片机与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台

    硬件原理

    主电路:8个LED分别连接AT89C51的P1口,使用共阳方式,并加以1kΩ的电阻接入电源。

    (2)时钟电路:外部时钟方式是使用外部振荡脉冲信号。

    软件设计及系统仿真调试

    调试方法:利用keil软件进行C语言程序编写及调试,再利用Proteus仿真软件进行仿真实验。

    调试过程所遇问题:

    1、由于呼吸灯的程序在仿真软件Proteus中实现的效果不明显,很难辨别LED是否具有呼吸的效果。所以边用keil调试程序边用STC烧写软件直接写入开发板,从而很明显看出LED是否具有呼吸效果;

    2、程序运行时,出现LED闪烁过快,由于人眼的暂留效应看似LED全部一直亮着,经调试,修改延时时间,实现呼吸效果。

    七、结论与心得

    在本次设计中,C语言程序在开发板中得以实现应有的功能。在调试过程中,发现很多问题都是由于不细心导致的,因此在以后的设计方案中,要集中精力,莫粗心大意。再者就是知识量的不足,虽然是一个小小的设计方案,但是查阅了很多相关资料,在日后,要多充足自己的知识量,保证C程序的编写质量。

    参考文献

    [1]郭天祥,《新概念51单片机C语言教程》,电子工业出版社,2009年1月

    [2]徐爱钧,《单片机高级语言C51应用程序设计》,电子工业出版社,2000年5月

    附件A:呼吸灯设计电路图

    附件B:C语言程序清单

    #include

    /*-----------定义单片机引脚-----*/

    sbit LED0=P1^0;

    sbit LED1=P1^1;

    sbit LED2=P1^2;

    sbit LED3=P1^3;

    sbit LED4=P1^4;

    sbit LED5=P1^5;

    sbit LED6=P1^6;

    sbit LED7=P1^7;

    void Delay(unsigned int t); //函数声明

    unsigned int z,y;

    void main (void)//主函数

    {

    unsigned int CYCLE=500,PWM_LOW=0;//定义周期并赋值

    while (1) //主循环

    {

    /*--------整排LED灯呼吸---------*/

    P1=0x00;

    Delay(500); //加延时,可以看到熄灭的过程(下面程序同理)

    for(PWM_LOW=1;PWM_LOW

    {

    P1=0x00;

    Delay(PWM_LOW);

    P1=0xff;

    Delay(CYCLE-PWM_LOW);

    }

    P1=0xff;

    for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--) //与逐渐变亮相反的过程

    {

    P1=0x00;//点亮LED

    Delay(PWM_LOW);

    P1=0xff;//熄灭LED

    Delay(CYCLE-PWM_LOW);//主循环中添加其他需要一直工作的程序,延时长度,600次循环中从599减至1

    }

    /*--------第一颗LED灯呼吸---------*/

    展开全文
  • //晶振11.0592//灯光在单片机控制之下完成由亮到暗的逐渐变化,感觉像是在呼吸//本例在51hei-5型开发板上实现了一个数码管和一个LED一起实现呼吸效果//文件下载:...uchar sr...

    //晶振11.0592

    //灯光在单片机控制之下完成由亮到暗的逐渐变化,感觉像是在呼吸

    //本例在51hei-5型开发板上实现了一个数码管和一个LED灯一起实现呼吸效果

    //文件下载:http://www.51hei.com/f/fxd.rar

    #include#define uint unsigned int

    #define uchar unsigned char

    sbit D1=P0^7;

    uchar sr;

    uchar jf;

    uchar code table[]={

    0,1,2,3,4,5,6,7,8,9,10,

    11,12,13,14,15,16,17,18,

    19,20,21,22,23,24,25,26,27,

    28,29,30,31,32,33,34,35,36,

    37,38,39,40,41,42,43,44,45,

    46,47,48,49};

    void light(uchar num);

    void delay(uint z);

    void main()

    {

    //设置计数器

    //选取计数方式1

    TMOD = 0x11;

    //给计数器写初值

    TH0 = 0;

    TL0 = 0;

    //操作单片机

    //开启CPU中断

    EA = 1;

    ///

    //开启定时器T0位中断

    ET0 = 1;

    //开启计数器

    TR0 = 1;

    //操作二极管

    P1=0;

    while(1)

    {

    if(sr<50)

    light(sr);

    else sr=0;

    }

    }

    //子函数

    void light(uchar num)

    {

    uchar tme;

    D1 = 0;

    tme = table[num];

    delay(tme);

    D1 = 1;

    delay(49-tme);

    }

    //中断函数

    void time () interrupt 1

    {

    //自变量自加

    if (jf<2)

    {

    jf++;

    TH0 =0;

    TL0 = 0;

    }

    if (jf==2)

    {

    //写初值

    jf=0;

    TH0 = 254;

    TL0 = 254;

    sr++;

    }

    }

    void delay(uint z)

    {

    uint x,y;

    for(x=10;x>0;x--)

    for(y=z;y>0;y--);

    }

    展开全文
  • 51单片机呼吸灯程序

    2013-04-25 12:30:29
    使用延时控制led的亮暗来达到呼吸灯的效果
  • 51单片机控制PWM的脉宽,实现手机呼吸灯效果,51单片机爱好者可以下载使用
  • 51单片机——实现呼吸灯&程序代码

    千次阅读 2021-03-23 21:34:42
    注:该51单片机led引脚为P2^ 0 - P2^7,实际代码按照引脚图实现。 代码如下: #include<reg52.h> typedef unsigned int uint; typedef unsigned char uchar; //--------------Delay-------------------- ...

    实现效果如图:
    在这里插入图片描述
    注:该51单片机led灯引脚为P2^ 0 - P2^7,实际代码按照引脚图实现。
    代码如下:

    #include<reg52.h>
    typedef unsigned int uint;
    typedef unsigned char uchar;
    //--------------Delay--------------------
    
    void Delay(uint t)
    {
    	while(--t);
    }
    
    //---------------main--------------------
    void main(void)
    {
    	 uchar LED;
    	 uint Time=600,i=0;
    	 LED=0xfe;
    
    	 while(1)
    	 {	
    		 
    		for(i=1;i<Time;i++)
    		{
    		//open LED
    			P2=LED;
    			LED=LED<<1;
    			if(LED == 0x00)	
    			{
    				P2=LED;				
    				Delay(i);
    			
    		//close LED
    				P2=~(LED);		
    				Delay(Time-i);
    			}
    		}
    		
    		
    		for(i=Time-1;i>0;i--)
    		{
    		//open LED
    			P2=LED;
    			LED=LED<<1;
    			if(LED == 0x00)	
    			{
    				P2=LED;				
    				Delay(i);
    		//close LED
    				P2=~(LED);		
    				Delay(Time-i);
    			}
    		}
    	}
    }
    			
    
    
    展开全文
  • 利用51单片机实现呼吸灯

    万次阅读 2019-07-27 00:01:56
    你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 ...在创作中心设置你喜爱的代码...

    利用PWM波的占空比进行控制LED灯的亮度

    #include"reg52.h"
    #define uchar unsigned char
    #define uint unsigned int

    sbit LED=P2^0;
    uint i,pwm,y=500;
    void delay(uint i) //延时函数
    {
    int x;
    for(x=i;x>0;x–);
    }
    void main()
    {
    while(1)
    {
    for(pwm=y;pwm>0;pwm–) //逐渐变暗
    {
    LED=0; //灯亮
    delay(pwm);
    LED=1;//灯灭
    delay(y-pwm);
    }
    for(pwm=0;pwm<y;pwm++)
    {
    LED=0;
    delay(pwm);
    LED=1;
    delay(y-pwm);
    }
    }
    }

    展开全文
  • 利用51单片机编写的呼吸灯小程序,实验程序内容截图分享~
  • 本例程由c语言编写,使用stc89c52rc单片机定时器实现,6ms周期pwm输出,实现led31级亮度调节。
  • //晶振11.0592//灯光在单片机控制之下完成由亮到暗的逐渐变化,感觉像是在呼吸//本例在51hei-5型开发板上实现了一个数码管和一个led一起实现呼吸效果//文件下载:http://www.51hei.com/f/fxd.rar#includereg52.h>...
  • 51单片机实现流水呼吸灯

    千次阅读 多人点赞 2020-05-09 09:19:54
    这篇博客介绍下用定时器来产生占空比不同的方波,完成了呼吸灯的效果,同时可以实现多个led灯同时呼吸形成类似流水的效果。  主要用到定时器0来形成一个1ms的中断,每次进入中断服务程序会让小灯当前处于的周期加1...
  • 51单片机 呼吸灯 七彩呼吸灯

    千次阅读 2020-11-07 12:50:59
    课程设计题十八:七彩呼吸灯 要求: (1) 起始状态时,七个灯处于同频率“呼吸”状态。...51单片机只能依靠定时器完成PWM。并且基于PWM原理下,proteus无法仿真出小灯的亮暗,只能看实物。 #include "reg51.h" #inc
  • 基于51单片机呼吸 16个流水 +定时器 PWM输出 亲测可用
  • 干货,干货,代码可用,51单片机按键控制PWM呼吸灯,#include #define uchar unsigned char #define uint unsigned int sbit s1=P3^0; sbit s2=P3^4; sbit s3=P3^5; sbit beep=P2^3; uint pwm; uint num; //延时 ...
  • 本帖最后由 xiashan 于 2015-4-5 18:30 编辑看着笔记本待机的时候,电源变成忽明忽暗,手就不自在了。研究了一番,写出了代码,加到自己做的“玩具”上。可能会觉得这个东西没有什么实在意义,只不过看起来没闪烁...
  • 51单片机(呼吸灯)C语言版》由会员分享,可在线阅读,更多相关《51单片机(呼吸灯)C语言版(16页珍藏版)》请在人人文库网上搜索。1、基于单片机和PWM的呼吸灯设计培训讲师:类级别:设置米名称:设定计划期间:设置米...
  • 51呼吸流水

    2019-04-02 21:51:46
    51 单片机 呼吸流水灯,可以实现循环控制16盏LED灯想呼吸灯一样熄灭点亮
  • 51单片机呼吸灯实验报告.doc 呼吸灯1功能与技术分析呼吸灯就是让LED灯的闪烁像呼吸一样,时呼时吸,时亮时暗,利用LED的余辉和人眼的暂留效应,看上去和人的呼吸一样。可以展示出各种酷炫的图像。11呼吸灯的实现效果...
  • 51单片机是对兼容英特尔8051指令系统的单片机的统称。51单片机广泛应用于家用电器、汽车、工业测控、通信设备中。因为51单片机的指令系统、内部结构相对简单,所以国内许多高校用其进行单片机入门教学。 而我手头...
  • 51单片机—— PWM、呼吸灯

    千次阅读 2021-03-11 16:25:38
    小灯的有效显示应该是50hz,所以周期是20ms ... //位定义,led引脚 sbit LED2 = P2^3; void InterruptInit(); //中断初始化配置的函数声明 void Time0(); //定时器0中断的函数声明 void breat.
  • 51单片机实现呼吸灯

    千次阅读 2019-11-20 08:28:26
    使用51单片机控制LED,实现其由暗变亮,再由亮变暗的渐变过程。 二、程序 #include <STC15F2K60S2.H> #include "MacroAndConst.h" sbit LED = P1^5; #define LED_ON() LED = 0; //LED亮 #define LED_OFF...
  • 单片机呼吸灯程序

    2011-12-07 22:02:53
    简单的单片机呼吸灯程序,并经过本人亲自测试。
  • 单片机实训课程之:呼吸灯一. 设计要求 二. 相关原理 三. 论证分析 四. 硬件原理 五. 软件程序设计 六. 测试方法与结果 七. 使用说明(附录)一. 设计要求呼吸灯顾名思义就是让LED 灯的闪烁像呼吸一样,时呼时吸,时亮...
  • 51单片机(呼吸灯)C语言版.docx基于单片机与 PWM 的呼吸灯设计实训指导教师 班级设 计 人姓名设 计日 期设 计地 点完 成时 间摘要本 是基于 片机的原理与接口 ,采用 片机I/O 口,加以 C 言 程 LED 亮再 暗 似人的...
  • 一、实现思路原理:利用PWM信号控制LED的亮暗程度,实现LED由暗到亮又由亮到暗的渐变过程。 方法:通过定时器设置LED所接引脚的高低电平持续时间,模拟出PWM波。二、关键问题——PWM的频率和占空比1.设定PWM的...

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 325
精华内容 130
关键字:

51单片机呼吸灯代码