單片機if語句格式
sbit P2^0=A1;
sbit P1^0=A2;
sbit 語句等號后邊應該是地址。
sbit P2^0=A1;能通過編譯碼?本人試一下:test.C(6): error C141: syntax error near '^', pected '='
很遺憾,沒通過。
如果改成 sbit A1=P2^0; sbit A2=P1^0;試試。注意分號,語句只能使用英文字符。
還有if(A1=0) 也不妥吧,比較應為== 即 if(A1==0)才好。
另外else 后邊不應有分號。
修改后的代碼如下:
#include
sbit A1=P2^0; //sbit P2^0=A1;
sbit A2=P1^0;//sbit P1^0=A2;
void main()
{
while(1)
{
if(A1==0)
{
A2=1;
}
else//esle;//單詞也不對。
{
A2=0;
}
}
}
僅供參考。
單片機中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 語言編程中使用頻率很高,用法也不復雜,所以必須要熟練掌握。
51單片機中if語句的一個問題
單片機程序在執行完main程序后會跳回到住main程序入口再重新執行的。
把這個程序反匯編以后可以看到在C:0x0018行跳回主函數入口C0003
C:0x0000
02000F
LJMP
C:000F
4: void main(void)
5: {
6:
if(k)
C:0x0003
E508
MOV
A,k(0x08)
C:0x0005
6004
JZ
C:000B
7:
P0=0xff;
8:
else
C:0x0007
7580FF
MOV
P0(0x80),#0xFF
C:0x000A
22
RET
9:
P0=0x00;
C:0x000B
E4
CLR
A
C:0x000C
F580
MOV
P0(0x80),A
10: }
C:0x000E
22
RET
C:0x000F
787F
MOV
R0,#0x7F
C:0x0011
E4
CLR
A
C:0x0012
F6
MOV
@R0,A
C:0x0013
D8FD
DJNZ
R0,C:0012
C:0x0015
758108
MOV
SP(0x81),#k(0x08)
C:0x0018
020003
LJMP
main(C:0003)
C:0x001B
00
NOP
C:0x001C
00
NOP
C:0x001D
00
NOP
C:0x001E
00
NOP
51單片機中if語句的一個問題
單片機程序在執行完main程序后會跳回到住main程序入口再重新執行的。
把這個程序反匯編以后可以看到在C:0x0018行跳回主函數入口C0003 C:0x0000 02000FLJMP C:000F 4: void main(void) 5: { 6: if(k) C:0x0003 E508 MOV A,k(0x08) C:0x0005 6004 JZ C:000B 7:P0=0xff; 8: else C:0x0007 7580FFMOV P0(0x80),#0xFF C:0x000A 22 RET9:P0=0x00; C:0x000B E4 CLR A C:0x000C F580 MOV P0(0x80),A10: } C:0x000E 22 RET C:0x000F 787F MOV R0,#0x7F C:0x0011 E4 CLR A C:0x0012 F6 MOV @R0,A C:0x0013 D8FD DJNZ R0,C:0012 C:0x0015 758108MOV SP(0x81),#k(0x08) C:0x0018 020003LJMP main(C:0003) C:0x001B 00 NOP C:0x001C 00 NOP C:0x001D 00 NOP C:0x001E 00 NOP。