找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

51单片机控制1602液晶的程序,想问下错哪了

查看数: 1641 | 评论数: 6 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 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 发表于 2020-1-17 10:29
man1234567 发表于 2020-1-16 21:19
#define LCD_COMMAND 0;
#define LCD_DATA 1;
#define LCD_CLEAR_SCREEN 0x01;

老铁,我知道错哪了,你这样也可以666
ID:324844 发表于 2020-1-17 10:28
angmall 发表于 2020-1-16 19:26
给你改了一下试试。

感谢大佬,才看到
ID:282850 发表于 2020-1-17 09:27
再啰嗦一下,举个例子:
#define DQ1   P1DIR |=BIT5; P1OUT=BIT5
注意中间有个“;” 程序中拉高DQ写成
....
DQ1;
...

如果写成
#define DQ1   P1DIR |=BIT5; P1OUT=BIT5;
程序中拉高DQ写成
....
DQ1
...
这两种都没问题,但是第一种在程序里DQ1;看上去很顺眼。所以养成好习惯是#define后边不带“;”
#define DQ1 P1DIR |=BIT5; P1OUT=BIT5
程序中拉高DQ写
....
DQ1;
...

ID:282850 发表于 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 发表于 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 发表于 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 单片机教程网

快速回复 返回顶部 返回列表