微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 非常短的呼吸灯程序

非常短的呼吸灯程序

时间:11-25 来源:互联网 点击:
思路不错。
如果LED为1,则t有效。为0则limit-t有效。
这样调节亮和灭的占空比。
当t上升到大于等于95的时候d就d=-d。d就变负数。t+-d=t-d。t下降。下降到小于等于5时d=-d。则变正。又上升

#include
#define uchar unsigned char
#define uint unsigned int
#define limit 100
sbit LED=P1^4;
void delay(uint ms)
{
uint i=0,j=0;
for(i=ms;i>0;i--)
for(j=123;j>0;j--);
}

void main()
{
uint t=50;
char d=1;
while(t+=d)
{
LED=t%2;
delay(t*(LED==1)+(limit-t)*(LED==0));//这条代码很巧妙的实现了两个状态的切换
if(t>=95||t<=5) d=-d;
}
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top