/****************************************************************************** * 實(shí)驗(yàn)名 : 左右流水燈實(shí)驗(yàn) * 使用的IO : P2 * 實(shí)驗(yàn)效果 : 點(diǎn)亮的LED從右邊往左邊移動(dòng),到達(dá)左邊再往右邊移動(dòng),依此循環(huán)。 * 注意 : ******************************************************************************/ #include<reg51.h> #include<intrins.h> //因?yàn)橐玫阶笥乙坪瘮?shù),所以加入這個(gè)頭文件 #define GPIO_LED P2 //將P2口另外取名為GPIO_LED void Delay10ms(unsigned int); //誤差 0us /****************************************************************************** * 函數(shù)名 : main * 函數(shù)功能 : 主函數(shù) * 輸入 : 無 * 輸出 : 無 ******************************************************************************/ void main(void) { unsigned char n; GPIO_LED=0xfe; while(1) { for(n=0;n<7;n++) //左移7次,這樣子就會(huì)到達(dá)最左邊 { GPIO_LED=_crol_(GPIO_LED,1); //將GPIO_LED左移一位 Delay10ms(50); //延時(shí) } for(n=0;n<7;n++) //右移7次,這樣子就會(huì)到達(dá)最右邊 { GPIO_LED=_cror_(GPIO_LED,1); //將GPIO_LED右移一位 Delay10ms(50); //延時(shí) } } } /****************************************************************************** * 函數(shù)名 : Delay10ms * 函數(shù)功能 : 延時(shí)函數(shù),延時(shí)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--); }
|