㈠ 51單片機中 (!TI)和(!RI)是什麼意思
這種寫法是用在條件語句中的。
例如:while(!TI);或者while(!RI);另一種寫就是while(TI==0);或者while(RI==0); 這兩種寫法是等價的,怎麼寫都可以,就看個人的愛好了,這個沒有什麼硬性的規定。
寫程序時,會看到這樣寫的: while(!TI);TI=0,前面的while(!TI)。是當TI=0時就在此循環等待發送結束,當發送結束時,TI=1了,這個條件不成立了,就不等待了,往下執行,緊接就是TI=0。
這是將TI清0,因為發送一次,TI=1一次,發送後必須清0,准備下一次發送,對於標志位TI=1,只能一次有效。
㈡ 用51單片機寫了一個流水燈程序,有一點問題,請高手解惑
單片機的流水燈程序,因為程序就這么寫的,決定了流水燈左移7次,再右移7次,結束兩個循環後,才能執行下面的while(!key),按鍵才有效,而在循環過程中,不執行while(!key),所以按鍵無效。下圖畫紅框內的兩個循環。
要想按鍵隨時有效,應該把兩個移位函數_cror_,_crol_ 放在主程中,檢測key也放在主程中,而不能這樣放一個子程序中。
㈢ 怎麼用C語言實現51單片機獨立按鍵跳出while(1)死循環 執行其他循環
while(1)語句只能用在主程序,而且只要用一次。如果子程序也用,必須有條件判斷語句,跟一個return語句返回。
再說你的三個子程序,既然用for控制了循環次數了,為什麼要用while(1)呢?而且明明知道是死循環還用?三個子程序都把那個while(1)刪掉就行了!
㈣ 51單片機如何用一個按鍵控制一段程序的運行與停止
1、創建項目文件。
6、當按下一個按鍵時,關閉燈,整個程序運行,再按一次,程序停止。
㈤ 51單片機定時問題,為什麼程序那兒要加一個while(1);
main函數中while(1)之前的代碼是賦初值操作,是為中斷調用使用的。
之所以有while(1)是為了使得程序一直在運行,所以才有中斷操作的不斷執行,否則程序只運行一次就終止啦。
㈥ 51單片機中的while語句
一般格式是:while(條件或表達式){ 程序段}
如果條件成立,則(表達式)結果為1
所以while(1){ 程序段},是死循環,因結果已經是1了,條件也不用判斷了,就一直執行大括弧內的程序段,除非有break語句可以跳出
而while(1);是程序停止,同樣是一個死循環,但又沒有什麼事情可做,連跳出的機會就 沒有,所以就是停止不動了.
但如果開了中斷,中斷程序是可以執行的。
㈦ 51單片機do....while循環語句求解
do
{
}while(1)本來就是一個死循環,if()本身是不會循環的.
只要取到的鍵值num的小於10,就一定會進if判斷,不過不知道你if裡面的語句是什麼,如果if裡面語句為空的話這個IF在這里沒什麼意義啊。
還有要跳出來,是跳出WHILE循環嗎,在IF裡面加條語句「break;」,當取到鍵值小於10時,跳出,結束循環取值。