自己编了一个让一个LED小灯进行呼吸,先慢慢边亮,然后慢慢变暗。但是烧录完后小灯在渐变的同时在闪烁。 #include<reg52.h>sbit LED=P1^0;
void DelayUs2x(unsigned char t);
void DelayMs(unsigned char t);
void main(void)
{
unsigned int CYCLE=73,PWM_LOW=0;
while(1)
{
LED=1;
DelayMs(72);
for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
{
LED=0;
DelayMs(PWM_LOW);
LED=1;
DelayMs(CYCLE-PWM_LOW);
}
LED=0;
for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
{
LED=0;
DelayMs(PWM_LOW);
LED=1;
DelayMs(CYCLE-PWM_LOW);
}
}
}
void DelayUs2x(unsigned char t) //12M的晶振,据说这样能差不多1ms。
{
while(--t);
}
void DelayMs(unsigned char t)
{
while(t--)
{
DelayUs2x(245);
DelayUs2x(245);
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>