一、概述

使用51单片机控制LED,实现其由暗变亮,再由亮变暗的渐变过程。

二、程序

#include <STC15F2K60S2.H>
#include "MacroAndConst.h"sbit    LED = P1^5;#define LED_ON()    LED = 0;   //LED亮
#define LED_OFF()   LED = 1;   //LED灭#define   LED_PWM_LIMIT_MAX   99
#define LED_PWM_LIMIT_MIN   0static u8  s_u8TimeCounter = 0;   //中断计数
static  u8  s_u8LedDirection    =  0;  //LED方向控制   0:渐亮  1:渐灭
static  u8  s_u8LedPWMCounter   = 0;   //LED占空比void    Timer0Init(void)
{AUXR |= 0x80;     //定时器时钟1T模式TMOD &= 0xF0;       //设置定时器模式TL0 = 0x5C;       //设置定时初值TH0 = 0xF7;        //设置定时初值TF0 = 0;       //清除TF0标志TR0 = 1;      //定时器0开始计时ET0   =  1;          //使能定时器0中断
}void   Timer0Isr(void) interrupt   1
{static int8    s_u8PWMCounter  =  0;TH0 = 0xF7;      //定时器初始值(200us中断1次)TL0 = 0x5C;if(++s_u8TimeCounter >=  100)    //每20ms调整一次LED占空比{s_u8TimeCounter   =  0;//如果是渐亮方向变化,则占空比递增if((s_u8LedPWMCounter <= LED_PWM_LIMIT_MAX)&&(s_u8LedDirection == 0)){s_u8LedPWMCounter++;if(s_u8LedPWMCounter > LED_PWM_LIMIT_MAX){s_u8LedDirection  =  1;s_u8LedPWMCounter =  LED_PWM_LIMIT_MAX;}}//如果是渐灭方向变化,则占空比递减if((s_u8LedPWMCounter > LED_PWM_LIMIT_MIN)&&(s_u8LedDirection == 1))    //此处有坑,若写成“>=”,则达不到预期效果{s_u8LedPWMCounter--;if(s_u8LedPWMCounter <= LED_PWM_LIMIT_MIN){s_u8LedDirection =  0;s_u8LedPWMCounter =  LED_PWM_LIMIT_MIN;}}s_u8PWMCounter  =  s_u8LedPWMCounter;  //获取LED的占空比}if(s_u8PWMCounter   >    0)  //占空比大于0,则点亮LED,否则熄灭{LED_ON();s_u8PWMCounter--;}else{LED_OFF();}
}

51单片机实现呼吸灯相关推荐

  1. 51单片机心形灯实现旋转呼吸灯流水编程

    51单片机心形灯--实现旋转呼吸灯流水编程 其他心形灯类型编码请看我的其他博文~ 心形灯效果图 如果是静态效果请刷新页面哦 心形灯原理图 编译软件:Keil uVision5 (如有需要可点此链接下载 ...

  2. 基于51单片机十字路口交通灯_5s黄灯闪烁

    基于51单片机十字路口交通灯_5s黄灯闪烁 目录标题 基于51单片机十字路口交通灯_5s黄灯闪烁 功能要求 仿真图 程序 主要程序代码 程序讲解 倒计时的产生 红黄绿灯状态处理 倒计时显示处理 资料清 ...

  3. 基于51单片机十字路口交通灯_只显示绿灯时间+黄灯5s

    基于51单片机十字路口交通灯_只显示绿灯时间+黄灯5s (程序+仿真+参考报告) 仿真:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 编号J011 目录标题 基于5 ...

  4. 51单片机:流水灯蜂鸣器控制

    //51单片机:流水灯&蜂鸣器控制 //bglei@nuaa.edu.cn 2022/8/28<流水灯&蜂鸣器控制> #include<reg52.h> #in ...

  5. 【019】基于51单片机的交通灯Proteus仿真设计

    一.资料内容 (1).基于51单片机的交通灯proteus仿真设计一份: (2).基于51单片机的交通灯proteus仿真设计keli源代码一份: (3).基于51单片机的交通灯proteus仿真设计 ...

  6. 51单片机心形灯实现每次点亮两个灯编程

    51单片机心形灯--实现每次点亮两个灯编程 其他心形灯类型编码请看我的其他博文~ 心形灯效果图 如果是静态效果请刷新页面哦 心形灯原理图 编译软件:Keil uVision5 (如有需要可点此链接下载 ...

  7. STM32F030C8T6单片机PWM呼吸灯寄存器配置

    STM32F030C8T6单片机PWM呼吸灯寄存器配置: TIM3_CR1:控制寄存器 BIT8~BIT9:CKD 与外部输入时钟有关,不使用外部时钟输入,所以不操作BIT8~BIT9,设置为00 B ...

  8. 51单片机STM32交通灯红绿灯十字路口信号灯类设计功能要求汇总

    51单片机STM32交通灯红绿灯十字路口信号灯类设计功能要求汇总 浏览必读: 使用关键词搜索可以达到事半功倍的效果. 电脑浏览器CTRL+F可以使用搜索查找 设计编号J000 功能说明: 1.四路交通 ...

  9. 声控灯程序C语言,基于51单片机的声控灯设计设计-包含完整设计与指导文件.doc...

    基于51单片机的声控灯设计设计-包含完整设计与指导文件 工 学 院 毕 业 设 计(论文) 题 目:基于单片机的智能光控路灯的设计 专 业: 机电技术教育 班 级: *** 姓 名: *** 学 号: ...

最新文章

  1. HALCON检测字符日期
  2. ai驱动数据安全治理_JupyterLab中的AI驱动的代码完成
  3. 经典面试题(14):关于delete 操作符,以下代码将输出什么?
  4. 我的HTML学习之路03
  5. IDEA 2020下载与安装
  6. 【字体分享】适合寒露闪屏设计的字体有哪些?
  7. java架构师职责_架构师的主要职责
  8. 树莓派4B设置USB启动
  9. Android 6.0 Marshmallow
  10. ugui 转轮_(转)unity3D的FingerGestures插件
  11. Win11图片打开为Windows照片查看器
  12. UML与Java-- UML类图于Java的基本实现
  13. 2018年10大流行Python库
  14. GameFramework篇:框架基本理解以及源码下载
  15. 虚拟专用网的技术分析
  16. decorators 参数_Django中decorators装饰器的使用
  17. AMD GPU的断点指令
  18. NVMe系列专题之二:队列(Queue)管理
  19. 青龙面板-简单获取京东CK
  20. Altium Designer绘制stm32最小系统PCB

热门文章

  1. 打造企业数智化管理新引擎,中国首份指标中台市场研究报告重磅发布!
  2. Kaggle项目之PUBG Finish Placement Prediction(一)——探索性分析
  3. 联通2g信号显示无服务器,换新手机吧!联通关闭2G3G信号 手机显示无信号竟然是这个原因!...
  4. 机器学习python下数据分类方法
  5. 新魔百盒M304A_增强版2+16G_S905系列_UWE5621DS_卡刷/线刷固件包-当贝桌面
  6. linux vim 复制粘贴代码
  7. python3长整型怎么用_python3有长整型吗
  8. 枪火重生灵界狂潮攻略(八)雀哥流派
  9. 【记录LVM挂载磁盘错误】Devices have inconsistent logical block sizes (512 and 4096).
  10. 两种查看表空间使用情况的方法