找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 21226|回复: 7
收起左侧

我制作的单片机呼吸灯程序

  [复制链接]
ID:232530 发表于 2017-12-8 18:16 | 显示全部楼层 |阅读模式
参考了51hei论坛 hongru的作品,做出了一点修改
呼吸灯就是让LED灯的闪烁像呼吸一样,时呼时吸,时亮时暗,利用LED的余辉和人眼的暂留效应,看上去和人的呼吸一样。
用C语言编程实现PWM(脉宽调制)输出驱动LED,逐渐增加PWM的占空比从而实现LED模拟呼吸的过程,即渐亮再渐暗再渐亮再渐暗……如此往复,再利用LED的余辉和人眼的暂留效应,看上去就和人的呼吸一样。
我认为这个程序不需要先拉低P1口,如果拉低了,灯会有卡顿的感觉。

单片机源程序如下:
  1. #include<reg51.h>
  2. void Delay1(int del)
  3. {
  4.         int i,j;
  5.         for(i=0; i<del; i++)
  6.         for(j=0; j<1827; j++)   
  7.         ;
  8. }
  9. void Delay(unsigned int t)
  10. {
  11. while(--t);
  12. }
  13. //函数声明
  14. unsigned int z,y;
  15. void main (void)//主函数
  16. {
  17.         unsigned int CYCLE=400,PWM_LOW=0;//定义周期并赋值
  18.         while (1)         //主循环
  19.         {

  20. /*--------整排LED灯呼吸---------*/
  21.                
  22.                 Delay1(100);                                                                 //加延时,可以看到熄灭的过程(下面程序同理)
  23.                 for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)           //PWM_LOW表示低
  24.                         {
  25.                                 P1=0x00;                                       
  26.                                 Delay(PWM_LOW);
  27.                                 P1=0xff;
  28.                                 Delay(CYCLE-PWM_LOW);
  29.                         }
  30.                 P1=0xff;                                                                               
  31.                 for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)         //与逐渐变亮相反的过程
  32.                         {
  33.                                    P1=0x00;                                                        //点亮LED
  34.                                    Delay(PWM_LOW);
  35.                                    P1=0xff;                                                        //熄灭LED
  36.                                   Delay(CYCLE-PWM_LOW);                                //主循环中添加其他需要一直工作的程序,延时长度,600次循环中从599减至1
  37.                         }

  38. }
  39. }
复制代码

所有资料51hei提供下载:
呼吸灯.zip (13.83 KB, 下载次数: 155)

评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:483535 发表于 2019-3-3 09:25 | 显示全部楼层
有用,有用,有用
回复

使用道具 举报

ID:18591 发表于 2019-3-3 19:18 | 显示全部楼层
不錯~~~~~~~~~~~~~~~
回复

使用道具 举报

ID:471632 发表于 2019-3-30 11:51 | 显示全部楼层
硬件连接呢?也顺便公布一下呀!
回复

使用道具 举报

ID:99259 发表于 2019-9-22 10:50 | 显示全部楼层
好用,学习了。
回复

使用道具 举报

ID:743219 发表于 2020-5-5 19:29 来自手机 | 显示全部楼层
tigerzq 发表于 2019-3-30 11:51
硬件连接呢?也顺便公布一下呀!

led接p1
回复

使用道具 举报

ID:762422 发表于 2020-6-12 20:11 | 显示全部楼层
我led接P1口,可是二极管没反应,求解答
回复

使用道具 举报

ID:138956 发表于 2020-10-4 18:34 | 显示全部楼层
qwertyuiop_zsq 发表于 2020-6-12 20:11
我led接P1口,可是二极管没反应,求解答

你怎么接的?按我的理解,发光二极管的A极接+5V,K极接P1口,你这样试试。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表