#include<reg52.h>
sbit LED=P0^0;
void delay(unsigned int ms)
{
unsigned int i=0,j=0;
for(i=ms;i>0;i--)
for(j=20;j>0;j--);
}
void main()
{
unsigned int t = 50;
unsigned int d = 1;
while(t =t+ d)
{
LED = t%2;
delay(t*(LED==1)+(100-t)*(LED==0));
if(t>=95||t<=5)
{
d =-d;
}
}
}
这个可以实现一个呼吸灯
哥-深圳:
首先,把 delay(t*(LED==1)+(100-t)*(LED==0));看做是:
(1)当LED亮的时候(LED==1)等于1,(LED==0)等于0,此时
delay(t*(LED==1)+(100-t)*(LED==0))相当于delay(t);
(2)当LED灭的时候(LED==1)等于0,(LED==0)等于1,此时
delay(t*(LED==1)+(100-t)*(LED==0))相当于delay((100-t));
void main()
{
unsigned int t = 50;
unsigned int d = 1;
while(t =t+ d)
{
LED = t%2;
if(LED==1)
{
delay(t);
}
else
{
delay(100-t);
}
if(t>=95||t<=5)
{
d =-d;
}
}
}
|