1. 程式人生 > >微控制器流水燈C語言程式

微控制器流水燈C語言程式

    #include<reg51.h>
#define TIME 5
void delay(int time){               //延時程式碼
    int i,j;
    for(i=1000; i>0; i--)
    for(j=time; j>0; j--);
}

int diff(int count){                //算2的i次方
    int i,rs = 1;
    for (i = 0; i < count; i++) {
        rs *= 2;
    }
    return rs;
}

void flicker(int
time){ //閃爍演算法 int i,j = -1; for(i = 254; i>0; i = (i - diff(j))){ P1 = i; delay(time); P1 = 0xff; delay(time); j++; } } void main(void) //主程式,無限迴圈 { while(1){ flicker(TIME); } }

延時演算法解釋
燈亮的順序二進位制表示
254-2^i即為要亮的燈。