![]() |
發(fā)布時間: 2020-1-16 13:53
正文摘要:編譯沒通過,求大神幫忙看下 #include<reg51.h> #include<intrins.h> unsigned char code a[]={0xfe,0xfd,0xfb,0xf7}; sbit ALAM=P2^5; sbit open_led=P2^3; unsigned char countt0,second; unsigned ... |
man1234567 發(fā)表于 2020-1-16 21:19 老鐵,我知道錯哪了,你這樣也可以666 ![]() |
angmall 發(fā)表于 2020-1-16 19:26 感謝大佬,才看到 ![]() |
再啰嗦一下,舉個例子: #define DQ1 P1DIR |=BIT5; P1OUT=BIT5 注意中間有個“;” 程序中拉高DQ寫成 .... DQ1; ... 如果寫成 #define DQ1 P1DIR |=BIT5; P1OUT=BIT5; 程序中拉高DQ寫成 .... DQ1 ... 這兩種都沒問題,但是第一種在程序里DQ1;看上去很順眼。所以養(yǎng)成好習慣是#define后邊不帶“;” #define DQ1 P1DIR |=BIT5; P1OUT=BIT5 程序中拉高DQ寫 .... DQ1; ... |
正確答案: #define LCD_COMMAND 0; #define LCD_DATA 1; #define LCD_CLEAR_SCREEN 0x01; #define LCD_HOME 0x02; 這些凡是#define的,后邊的";"全刪除。因為 LCD_Write(LCD_COMMAND,0x0f); 這句編譯時被替換成 LCD_Write(0;,0x0f); 0后邊有個“;”明顯錯誤。編譯錯誤也指的是這個“;” |
#define LCD_COMMAND 0; #define LCD_DATA 1; #define LCD_CLEAR_SCREEN 0x01; #define LCD_HOME 0x02; 改成這樣試試: bit LCD_COMMAND=0; bit LCD_DATA=1; unsigned char LCD_CLEAR_SCREEN=0x01; unsigned char LCD_HOME=0x02; |
給你改了一下試試。
|