找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

51單片機控制1602液晶的程序,想問下錯哪了

查看數(shù): 2133 | 評論數(shù): 6 | 收藏 1
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(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 ...

回復

ID:324844 發(fā)表于 2020-1-17 10:29
man1234567 發(fā)表于 2020-1-16 21:19
#define LCD_COMMAND 0;
#define LCD_DATA 1;
#define LCD_CLEAR_SCREEN 0x01;

老鐵,我知道錯哪了,你這樣也可以666
ID:324844 發(fā)表于 2020-1-17 10:28
angmall 發(fā)表于 2020-1-16 19:26
給你改了一下試試。

感謝大佬,才看到
ID:282850 發(fā)表于 2020-1-17 09:27
再啰嗦一下,舉個例子:
#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;
...

ID:282850 發(fā)表于 2020-1-17 09:14
正確答案:
#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后邊有個“;”明顯錯誤。編譯錯誤也指的是這個“;”


ID:584814 發(fā)表于 2020-1-16 21:19
#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;
ID:155507 發(fā)表于 2020-1-16 19:26
給你改了一下試試。
  1. sbit  LcdRS=P2^0;
  2. sbit  LcdRW=P2^1;
  3. sbit  LcdEn=P2^2;
  4. sfr   LcdIO=0x80;  // P0

  5. #define LCD_COMMAND 0          // --->不用加分號
  6. #define LCD_DATA    1          // --->不用加分號
  7. #define LCD_CLEAR_SCREEN 0x01  // --->不用加分號
  8. #define LCD_HOME 0x02          // --->不用加分號
復制代碼

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表