标题: 单片机呼吸灯程序 [打印本页]

作者: xiongda    时间: 2015-5-26 19:18
标题: 单片机呼吸灯程序
#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;
                }
        }
}



作者: wujunbo27    时间: 2015-5-27 01:51





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1