历史上的今天
今天是:2024年09月26日(星期四)
2021年09月26日 | 基于51单片机的LED呼吸灯设计(定时器)
2021-09-26 来源:eefocus
定时器实现led呼吸灯
实验原理: 灯在高速闪烁时,光信号传入大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失。每次循环时,前半部分先让亮的时间逐渐增加,暗的时间逐渐减小;后半部分先让亮的时间逐渐减小,暗的时间逐渐增加,如此循环即可
#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;
#define LED P2 //总线法点灯
void delay(u16 i) //延时函数
{
while(i--);
}
void Timer0Init()
{
TMOD|=0X01; //选择为定时器0模式,工作方式1,仅用TR0打开启动。
TH0=0XFC; //给定时器赋初值,定时1ms
TL0=0X18;
ET0=1; //打开定时器0中断允许
EA=1; //打开总中断
TR0=1; //打开定时器
}
void main()
{
Timer0Init(); //定时器0初始化
while(1);
}
void Timer0() interrupt 1
{
static u16 out_time, bright_time;
static u16 i;
TH0=0XFC; //给定时器赋初值,定时1ms
TL0=0X18;
i++;
if(i==1000) //1s
{
i=0;
for(bright_time=0;bright_time<=500;bright_time++)
{
//暗的时间减少,亮的时间增加
out_time=500-bright_time;
//暗
LED=0xff;
delay(out_time);
//亮
LED=0x00;
delay(bright_time);
}
for(out_time=0;out_time<=500;out_time++)
{
//暗的时间增加,亮的时间减少
bright_time=500-out_time;
//亮
LED=0x00;
delay(bright_time);
//暗
LED=0xff;
delay(out_time);
}
}
}
史海拾趣
|
RF Micro Device公司高级市场经理 Brent Wilkins 今天的新一代蜂窝电话设计越来越复杂,需要提供多频段、多模式支持,具有蓝牙个人区域网络、GPS定位、WLAN等功能,而且超宽带和电视接收功能已经开始出现,此外像游戏、图像、音频和视频 ...… 查看全部问答> |
|
《ARM Linux入门与实践》一书当中,关于触摸屏的那一节有几个地方不理解。 该程序的说明是:“代码并没有使用S3C2410A中的触摸屏控制器,而是通过直接控制FPIO的4个晶体管的导通和截止” P220: void Wait_Touch(void) { XMON_O ...… 查看全部问答> |
|
上次提交的原理图,由于美信没有提供MAX17005B充电管理芯片,导致无法进行下去。为此,重新在美信网站溜达一圈,按照以下原则,确定该次芯片选型和原理图设计。 1。 芯片没有停产,可以继续使用,美信提供样品。 2。 封装不能是QFN ...… 查看全部问答> |
|
组建一个简单的工业以太网,一台x86工控机当服务器,用网线联一台工业以太网交换机,交换机再连一台PLC,PLC 连接底层设备。 假设服务器上我装的就是普通的windows XP操作系统,上面运行我的工控软件。 请问我这个算是工业以太网吗?工业以太网不 ...… 查看全部问答> |
|
近来忙着家事,有一段时间没有上来了,今天顺着2011-1-11,这么多棍棍的日子,上来溜达一下。 看到自从夏老师到网站上来座镇解答FPGA的相关问题,网站上FPGA的热情洋溢,很有气氛,觉得这里有蛮多朋友 ...… 查看全部问答> |
|
main函数,我想大家都了解,只要你会C编程,你就会知道main?我想它是比你第一个 "hello world!"还早的程序。可是它的作用呢?我想不是每个会C编程的人都知道?如果 当你有一天可以对main说拜拜时,那你就算是入门了!这里高手如云,望 ...… 查看全部问答> |
|
请问能否仅通过430的串口往里面烧写程序? 谢谢! 搜了一下,有很多卖BSL的,除了需要TXD、RXD外,还需要一些别的脚。 有没有这么一种软件?当430的串口与计算机串口通过MAX232之类的芯片一接,在电脑上运行这个软件,直接就把程序烧进去了。… 查看全部问答> |




