❶ 單片機程序中關於if語句的一些疑問,請大神指點!必採納!
if( PWM_OUT_flag ) //如果沒有PWM溢出
{
}
else //如果PWM溢出
{
PWM_OUT_flag = 1; //則讓PWM置位,待下次溢出
PWM_IO = 1; //翻轉IO,實現狀態顯示
}
這個不難理解, 如果。。。。。。那麼。。。。。。
❷ 單片機if語句格式
#include<reg52.h>
sbitA1=P2^0;
sbitA2=P1^0;//這里你定義反了,能編譯通過么?
voidmain()
{
while(1)
{//這里加個大括弧,循環執行括弧內的語句
if(A1==0)
A2=1;
esle;
A2=0;
}
}
❸ 3、單片機C語言中的」if「語句是循環語是對的嗎
不對的。if是判斷語句,不是循環語句。if要和goto配合起來才能起到循環的作用,不過現在不用goto了,因為它破壞了程序的結構化設計。
❹ 單片機if
A1,B1已經被定義為引腳,就不能再定義為變數!
把下面這句刪了試試:
int A1;int B1;
在while之前應對P1埠初始化:
P1 = 0xff;
每個case里第一個if後的break不應該有,會造成後面的程序永遠無法執行!
由於A1隻有0或1兩個值,其實不需要使用switch語句,用if就行。
另外,你的光電感測器觸發方式是正觸發還是負觸發?如果是正觸發的話,if(B1==?)語句的條件都全部需要反過來。
整個程序應改為:
#include <reg52.h>
sbit A1=P1^0; //光感測器
sbit B1=P1^1;//光感測器
sbit C1=P1^2;//控制電機左轉
sbit D1=P1^3;//控制電機右轉
sbit E1=P1^4;//前進
void main()
{
P1 = 0xff;
while(1)
{
if(A1==0)
{
if(B1==0)
{
E1=0;
C1=0;
D1=0;
}
else //B1==1
{
E1=1;
C1=1;
};
}
else //A1==1
{
if(B1==0)
{
E1=1;
D1=1;
};
else //B1==1
{
E1=1;
};
}
}
}
❺ 單片機中IF語句的使用
1、if...else
語句
除了要在括弧里條件滿足時執行相應的語句外,在不滿足該條件的時候,也要執行一些另外的語句,這時候就用到了
if...else
語句,它的基本語法形式是:
if
(條件表達式){
語句
1;
}else{
語句
2;
}
2、if...esle
語句
if...esle
語句是一個二選一的語句,或者執行
if
分支後的語句,或者執行
else
分支後的語句。還有一種多選一的用法就是
if...else
if
語句。他的基本語法格式是:
if
(條件表達式
1){語句
1;}
else
if
(條件表達式
2)
{語句
2;}
else
if
(條件表達式
3)
{語句
3;}
...
...
else{語句
n;}
他的執行過程是:依次判斷條件表達式的值,當出現某個值為「真」時,則執行相對應的語句,然後跳出整個
if
的語句塊,執行「語句
n」後面的程序;如果所有的表達式都為「假」,則執行
else
分支的「語句
n」後,再執行「語句
n」後邊的程序。
if
語句在
c
語言編程中使用頻率很高,用法也不復雜,所以必須要熟練掌握。
❻ 單片機中IF語句的使用1
1、if...else 語句
除了要在括弧里條件滿足時執行相應的語句外,在不滿足該條件的時候,也要執行一些另外的語句,這時候就用到了 if...else 語句,它的基本語法形式是:
if (條件表達式){
語句 1; }else{
語句 2;
}
2、if...esle 語句
if...esle 語句是一個二選一的語句,或者執行 if 分支後的語句,或者執行 else 分支後的語句。還有一種多選一的用法就是 if...else if 語句。他的基本語法格式是:
if (條件表達式 1){語句 1;}
else if (條件表達式 2) {語句 2;}
else if (條件表達式 3) {語句 3;}
... ...
else{語句 n;}
他的執行過程是:依次判斷條件表達式的值,當出現某個值為「真」時,則執行相對應的語句,然後跳出整個 if 的語句塊,執行「語句 n」後面的程序;如果所有的表達式都為「假」,則執行 else 分支的「語句 n」後,再執行「語句 n」後邊的程序。
if 語句在 C 語言編程中使用頻率很高,用法也不復雜,所以必須要熟練掌握。
❼ 單片機if語句。
你應該先判斷單獨的感測器能否實現功能,以排除硬體的錯誤,實際上你這個應該是
/*左轉*/ if(P3&0XF0)
{
delay(1);
P1_0=1;
P1_1=1;
P1_2=1;
P1_3=0;
delay(1);
}
也就是,只要P3的高位中有一個是1,就轉,你改成如上語句試試!
❽ if(; ; )在單片機中啥意思
單片機採用 C語言編程,題目的語法是錯誤的,該結構應該是 for(;;);
for 的語言結構為 for(①變數初始化;②判斷語句;③變數增量)④循環體內容;
程序執行到for時,會先進行①編譯,而且整個for循環只執行一次①。
程序再根據②的真假(0為假,非0為真)來決定是否執行④。
每執行完一次④內容,for 將執行一次③。
這四個要素均可以省略,但分號不能省略。
①省略,則表示 不需要初始化;
②省略,則表示 判斷條件為 空,空 非零,即恆為真。(一般會在④內增加無條件跳轉語句以結束循環);
③省略,則表示 不需要增量變化。(一般也會在④內增加變數增量,或在外部中斷中改變變數(個人不推薦此方法));
④省略,則表示,循環體執行內容為 空。
❾ 單片機關於if語句的一些疑問,請問這個語句是什麼意思,求大神指點!必採納!
第一個符合條件(PWM_OUT_flag=1 時)語句中沒有內容,或者是略去不提;
接著是(PWM_OUT_flag ≠1 時),如果(power_off_flag = 0)條件滿足,則強制設置條件:PWM_OUT_flag = 1,及 PWM_IO = 1;
如果上述語句如你所給的那樣,也可以這樣表達:
if( PWM_OUT_flag ==0 && power_off_flag == 0 )
{
PWM_OUT_flag = 1;
PWM_IO = 1;
}
❿ 關於單片機中#if,#else if 的用法
#if............
#else
if...........這是預處理語句。
預處理就是在進行編譯的第一遍詞法掃描和語法分析之前所作的工作。說白了,就是對源文件進行編譯前,先對預處理部分進行處理,然後對處理後的代碼進行編譯。這樣做的好處是,經過處理後的代碼,將會變的很精短。在單片機中屬於條件編譯,也就是說當滿足條件,就將#if後面的語句進行編譯,否則,丟棄這些部分語句,編譯#else
if後面的語句。