|
/****************************************************************************** * 實驗名 : 左右流水燈實驗 * 使用的IO : P2 * 實驗效果 : 點亮的LED從右邊往左邊移動,到達左邊再往右邊移動,依此循環。 * 注意 : ******************************************************************************/ #include<reg51.h> #include<intrins.h> //因為要用到左右移函數,所以加入這個頭文件 #define GPIO_LED P2 //將P2口另外取名為GPIO_LED void Delay10ms(unsigned int); //誤差 0us /****************************************************************************** * 函數名 : main * 函數功能 : 主函數 * 輸入 : 無 * 輸出 : 無 ******************************************************************************/ void main(void) { unsigned char n; GPIO_LED=0xfe; while(1) { for(n=0;n<7;n++) //左移7次,這樣子就會到達最左邊 { GPIO_LED=_crol_(GPIO_LED,1); //將GPIO_LED左移一位 Delay10ms(50); //延時 } for(n=0;n<7;n++) //右移7次,這樣子就會到達最右邊 { GPIO_LED=_cror_(GPIO_LED,1); //將GPIO_LED右移一位 Delay10ms(50); //延時 } } } /****************************************************************************** * 函數名 : Delay10ms * 函數功能 : 延時函數,延時10ms * 輸入 : 無 * 輸出 : 無 ******************************************************************************/ void Delay10ms(unsigned int c) //誤差 0us { unsigned char a,b; for(;c>0;c--) for(b=38;b>0;b--) for(a=130;a>0;a--); }
|