『壹』 c51單片機怎樣在while語句里運行多個子函數
把子程序開頭三個子程序void a1()
void a2()
void a3()
調用時直接寫a1();
a2();a3();
『貳』 pic單片機如何可以讓while語句同時運行
第1種的作用是:一直循環while大括弧內的語句,比如:
while(1)
{
a=b+c;
display();
}
程序就一直在循環執行a=b+c;display(),不會跳出while語句,執行下面的語句。除非while(1)括弧裡面不再為真時,才會跳出循環。(ps:1為真,0為假)
第2種的作用是:程序執行到此處為止,不會再執行while(1)下面的語句。比如:
void main()
{
a=b+c;
display();
while(1);
i++;
}
程序執行a=b+c;display();while(1)就會一直停留在while(1)這個語句這里,不會往下執行i++了,除非while(1)括弧裡面不再為真時,才會跳出循環。(ps:1為真,0為假)
(二) while(i–)語句的用法:
常常用在delay()延遲函數中。例如:
void delay(unsigned int i)
{
while(i–);
}
當主函數執行到延遲函數delay(參數)時,程序就會調用void delay(unsigned int i),從而執行延遲函數裡面的語句,在這里則執行while(i–)語句,減到i=0時才會跳出while語句,從而跳出延遲函數,再去執行主函數中延遲函數的下一條語句。
(三) while(!key)語句的用法:
常用在獨立按鍵試驗中,用來檢測按鍵是否松開。比如:
void keypro()
{
if(key==0)
{
led=~led;
while(!key);
}
}
當按鍵key按下時,key=0,執行led=~led;再執行while(!key)語句,因為key=0,所以!key=1,程序執行停留在while(!key)處,直到松開按鍵時,key=1,!key=0,才跳出while(!key)語句,去執行下一條程序。
總結:無論是三種形式中的哪一種,當while(表達式)語句中的表達式不為0時,程序就一直停留在while語句這里。當表達式為0時就不執行while語句。
其中(i–)裡面是兩個減號,只是電腦顯示不出來
『叄』 51單片機中,是否有兩個while(1)嵌套或並行的情況,如果有,程序怎樣執行
是不能的,但你可以用內部中斷的方法來實現,也就是主程序里有一個while,在這個while里每循環1次或幾次,就跳入中斷去執行中斷服務程序,在中斷服務程序中進行運算或判斷。