51單片機的初了解(8)
C語言循環語句學習
1、while循環(條件初始化)
while(條件)
{
//循環體,若幹條代碼
//循環體中包含條件增量
}
2、for循環
for(循環初始化;循環條件;循環增量)
{
//循環體
}
for(i=100;i>0;i--)
{
for(j=100;j>0;j--)
{
;
}
}
3、do while循環
流水燈效果實現
流水燈本質:不同的亮的狀態相互間隔一定時間。
0x80(10000000)
0x40(01000000)
0x20(00100000)
0x10(00010000)
0x08(00001000)
0x04(00000100)
0x02(00000010)
0x01(00000001)
延時時間越長流水燈流的越慢,越短就流水越快;
8個狀態執行一次,完成後從頭開始,即循環。
編程實現流水燈
while(1) //1永遠為真,死循環
{
}
缺陷:功能實現,寫的太笨
改進思路:通過變量運算來得到合適的端口輸出值
1)定義變量unsigned char a,初值等於0x80(10000000)
2)8個狀態,即a依次右移0-7位
C語言移位運算
C語言移位運算符,>>可以右移,<<可以左移。(無符號數移位,空出的位用0補)
例:12345678
>>1 01234567 <<1 23456780
>>2 00123456 <<2 34567800
void main(void)
{
unsigned char i=0;
unsigned char d=0x80;
while(1)
{
for(i=0;i<0;i++)
{
P0=(d>>i); //d在正在操作中一直不變
delay();
}
}
}
或
void main(void)
{
unsigned char i=0;
while(1)
{
unsigned char d=0x80;
for(i=0;i<8;i++)
{
d=d>>1; //在每次循環時d會變化
P0=d;
delay();
}
}
}
51單片機的初了解(8)