历史上的今天
返回首页

历史上的今天

今天是:2025年04月15日(星期二)

正在发生

2020年04月15日 | 51单片机实现呼吸灯

2020-04-15 来源:eefocus

一、概述


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


二、程序


#include

#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 0

 

 

static 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();

}

}

推荐阅读

史海拾趣

Emhiser Research Inc公司的发展小趣事

Emhiser Research非常注重创新管理和人才培养。公司建立了一套完善的研发流程和激励机制,鼓励员工提出创新性的想法和解决方案。同时,公司还积极与高校和研究机构合作,引进和培养了一批高素质的研发人才。这些人才不仅为公司带来了源源不断的创新动力,也为公司的长期发展奠定了坚实的基础。

Elpac公司的发展小趣事

作为一家有社会责任感的企业,Elpac公司始终关注环境保护和可持续发展。公司积极采用环保材料和清洁能源,努力降低生产过程中的能耗和排放。同时,Elpac公司还积极参与各种公益活动和社会事务,回馈社会、关爱弱势群体。这些举措不仅提升了公司的品牌形象和社会影响力,也为公司的长远发展注入了正能量。

以上是关于电子行业里某假设性“Elpac公司”的发展故事,希望对您有所帮助。

Centellax Inc公司的发展小趣事

随着技术的成熟和市场的扩大,Centellax开始积极拓展国内外市场。公司通过与全球知名的通信设备制造商、电信运营商等建立合作关系,成功将产品打入国际市场。此外,Centellax还积极参与行业展会、研讨会等活动,提升品牌知名度和影响力。

在战略合作方面,Centellax注重与产业链上下游企业的协同发展。通过与供应商、客户等建立紧密的合作关系,实现资源共享和优势互补。这些合作不仅有助于提升公司的运营效率和市场竞争力,还为公司的长期发展提供了有力保障。

Focus公司的发展小趣事

面对日益激烈的国际市场竞争,Focus公司(虚构)深知品牌塑造的重要性。公司制定了全面的品牌国际化战略,通过参加国际电子展、赞助行业论坛、发布英文官网等多种方式提升品牌知名度。同时,公司还注重与当地合作伙伴建立长期稳定的合作关系,共同开拓市场。经过多年的努力,Focus的品牌形象在国际市场上得到了广泛认可,成为了中国电子产品“走出去”的杰出代表之一。

请注意,以上故事均为基于假设和一般行业趋势构建的虚构案例,旨在展示电子行业中公司可能的发展路径。实际情况中,不同公司的发展历程和故事将因公司性质、市场环境、战略选择等因素而异。

HARTING公司的发展小趣事

面对日益激烈的国际市场竞争,Focus公司(虚构)深知品牌塑造的重要性。公司制定了全面的品牌国际化战略,通过参加国际电子展、赞助行业论坛、发布英文官网等多种方式提升品牌知名度。同时,公司还注重与当地合作伙伴建立长期稳定的合作关系,共同开拓市场。经过多年的努力,Focus的品牌形象在国际市场上得到了广泛认可,成为了中国电子产品“走出去”的杰出代表之一。

请注意,以上故事均为基于假设和一般行业趋势构建的虚构案例,旨在展示电子行业中公司可能的发展路径。实际情况中,不同公司的发展历程和故事将因公司性质、市场环境、战略选择等因素而异。

台湾奇力(Chip)公司的发展小趣事

奇力公司一直致力于环保和社会责任。在生产过程中,奇力公司采用环保材料和工艺,减少对环境的影响。同时,奇力公司还积极参与社会公益活动,回馈社会。这种环保和社会责任的理念也赢得了客户和社会的认可和支持。

以上五个故事分别从不同角度展现了台湾奇力(Chip)公司的发展过程。这些故事不仅体现了奇力公司的技术实力和市场策略,也展现了其持续创新、绿色环保和社会责任的企业形象。

问答坊 | AI 解惑

CE6.0编程问题

请问各位高手,如何在CE6.0下调用cout的,我在PB工程中添加一个APP子工程,添加#include编译报错没有这个文件。还望高手指点。…

查看全部问答>

新手求助 EVC下将文件内容输出到编辑框程序问题

想选择路径打开文件 将内容输出到编辑框 程序运行弹出一个对话框 显示叉号和乱码   void CTCPClientExDlg::Sendfile() {    CFile MyFile;    TCHAR str[100];    DWORD count;    Updat ...…

查看全部问答>

比赛的第一天我知道了自己什么都不会~!

本帖最后由 paulhyde 于 2014-9-15 04:01 编辑 如题~!  …

查看全部问答>

测量5Mv~500V,频率5Hz~5MHz的交流电压

本帖最后由 paulhyde 于 2014-9-15 03:41 编辑 有人做过测量交流电压的吗?可以交流交流一下 。带宽太宽了不好测量啊  可以分享你们的经验吗?  …

查看全部问答>

FPGA做AD采样,这种情况如何编程?

通过译码来选通要采样的模拟量,比如有6路选通、即有六路模拟量;这样的话,需采样六次才能将所有模拟量采完,然后分别处理这六个量。 如果采样一路的话,感觉好处理一些,循环采样六路,应该如何用verilog HDL来写? 之前觉得AD采样一次本身可以 ...…

查看全部问答>

open1081上电启动

我使用SecureCRT软件连接open1081开发板,默认启动后界面显示乱码,设置编码方式为GB2312就OK了。可以看到这里面是工厂测试程序。 …

查看全部问答>

脉冲激励电路求助

想用硬件电路自己做一个这样的激励电路,输入电压5V直流,图中的电压我是10倍衰减了的,大概有150多V, 大家有什么好的方案或者思路 …

查看全部问答>

【TI C2000的使用经验】+ 使用Energia开发C2000-LaunchPad应用

使用Energia开发C2000-LaunchPad应用Energia 是一个开源和社区驱动型集成开发环境 (IDE) 与软件框架。Energia 基于接线框架,为微控制器编程提供了直观的编码环境和由易于使用的功能 API 及库构成的可靠框架。Energia 支持多种 TI 处理器,主要包括 ...…

查看全部问答>

播放一段20s左右的语音要怎么实现?

用单片机系统控制,用中断的方法实现一段20s左右的语音播放,用语音芯片实现的话,AD转换要怎么弄,我要播放的内容怎么加进语音芯片的ram,是有专门的软件去生成吗? …

查看全部问答>