微控制器流水燈C語言程式
阿新 • • 發佈:2019-02-17
#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即為要亮的燈。