#include<reg52.h>
unsigned char Cycle=200; //呼吸灯周期:T=200*100us=20ms
void Delay_100us()
{
TH0=(65536-100)/256;
TL0=(65536-100)%256;
TR0=1;//启动定时器,开始计时
while(TF0!=1);//判断定时器是否溢出
TF0=0;//溢出时清0,进行下次计时
}
void Delay(unsigned char t)
{
unsigned char i;
for(i=0;i<t;i++)
Delay_100us();
}
void main()
{
int LED;
unsigned char i;
TMOD=0x01;
while(1)
{
//由暗变亮
for(i=1;i<Cycle;i++)
{
LED=0x00;
P2=LED;Delay(i);
P2=~LED;Delay(Cycle-i);
}
//由亮变暗
for(i=1;i<Cycle;i++)
{
LED=0x00;
P2=LED;Delay(Cycle-i);
P2=~LED;Delay(i);
}
}
}
C51单片机——定时器延时实现呼吸灯
猜你喜欢
转载自blog.csdn.net/weixin_53391957/article/details/117001992
今日推荐
周排行