/*單片機流水燈c程序*/
/*本程序中流水燈爲共陽極*/
#include <reg51.h>
#include <intrins.h>//51c語言中的頭文件:是將第一個參數循環左移n位
#define uchar unsigned char
#define uint unsigned int
//最初算的時候,是按照xms*111(如1*111=111us=0.111ms可是還要加上判斷週期,減減週期,是最終的時間按達到1ms)
void delay(uint xms)
{
uint i,j; //(仿真過的),此程序延時x‘ms’
for (i=xms;i>0;i--) //這個延時時間是按照12M的晶振來推算出來的,此時一個機器週期是1us
for(j=111;j>0;j--)
;
}
void main()
{
unsigned char LED;
LED=0xfe; //不能直接把0xfe付給P0口,因爲如果直接付給的話,PO口就是一個固定的值,沒法進行位的移動
P0=LED;
while(1)
{
delay(500); //延時500ms
LED=_crol_(LED,1);//循環左移1位,點亮一個LED
P0=LED;
}
}