找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2725|回复: 9
打印 上一主题 下一主题
收起左侧

这段程序keil报错怎么修改啊,希望能有前辈指点一下

[复制链接]
跳转到指定楼层
楼主


单片机源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit lcden=P2^2;
  5. sbit lcdrs=P2^0;
  6. sbit lcdrw=P2^1;
  7. sbit sd =P2^3;
  8. sbit bj =P2^7;
  9. uchar code table[]="Humidity:     ";
  10. uchar code table1[]="   Normal    ";
  11. uchar code table2[]="Humidity:     ";
  12. uchar code table3[]="   Deviant    ";

  13. uchar num;                //延时程序
  14. void delay(uint z)
  15.   {
  16.   uint x,y;
  17.   for(x=z;x>0;x--)
  18.   for(y=110;y>0;y--)
  19.   }

  20. void write_com(uchar com) 、、//写入地址
  21. {
  22.   lcdrs=0;
  23.   P0=com;
  24.   delay(5);
  25.   lcden=1;
  26.   delay(5);
  27.   lcden=0;
  28. }

  29. void write_date(uchar date)   //写入数据
  30. {
  31.   lcdrs=1;
  32.   P0=date;
  33.   delay(5);
  34.   lcden=1;
  35.   delay(5);
  36.   lcden=0;
  37. }

  38. void init()   //初始化程序
  39. {
  40.   P0=0xff;
  41.   lcdrw=0;
  42.   lcden=0;
  43.   write_com(0x80);   //地址指针初始化
  44.   write_com(0x38);   //初始化液晶显示器
  45.   write_com(0x0c);         //控制光标
  46.   write_com(0x06);         //写一个字符后地址加一
  47. }

  48. void main()
  49. {
  50.   init();
  51.   sd=1;
  52.   while(1);
  53.   {
  54.     if(sd==1)  //正常情况显示
  55.         {
  56.           write_com(0x80+0x00);   //lcd第一排写入地址
  57.           for(num=0;num<15;num++)
  58.           write_date(table[num]);  //lcd第二排写入地址
  59.           for(num=0;num<13;num++)
  60.           write_date(table1[num]);  //lcd第二排写入数据
  61.           bj=1;   //不报警
  62.          }
  63.       
  64.         else if(sd==0)   //不正常显示情况报警
  65.         {
  66.           write_com(0x80+0x00);   //lcd第一排写入地址
  67.           for(num=0;num<15;num++)
  68.           write_date(table2[num]);  //lcd第二排写入地址
  69.           for(num=0;num<13;num++)
  70.           write_date(table3[num]);  //lcd第二排写入数据
  71.           bj=0;   //报警
  72.          }
  73.         }
  74. }         
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:203000 发表于 2018-3-28 08:34 | 只看该作者
19行的代码:for(y=110;y>0;y--)后面缺;修正后不会报错。
回复

使用道具 举报

板凳
ID:85702 发表于 2018-3-28 08:57 | 只看该作者
void write_com(uchar com) 、、//写入地址  后面加、、啥意思??删除了试下
回复

使用道具 举报

地板
ID:280682 发表于 2018-3-28 09:48 | 只看该作者
19行少分号,22行多顿号
回复

使用道具 举报

5#
ID:290391 发表于 2018-3-28 09:56 | 只看该作者
七彩缤纷 发表于 2018-3-28 08:57
void write_com(uchar com) 、、//写入地址  后面加、、啥意思??删除了试下

嗯嗯,好的我试试
回复

使用道具 举报

6#
ID:282519 发表于 2018-3-28 09:56 | 只看该作者
楼上的两位工程师都指出来了,第19行少;  而第22行多了、、

评分

参与人数 1黑币 +4 收起 理由
yocan + 4 很给力!

查看全部评分

回复

使用道具 举报

7#
ID:290391 发表于 2018-3-28 09:57 | 只看该作者
qiangcn 发表于 2018-3-28 08:34
19行的代码:for(y=110;y>0;y--)后面缺;修正后不会报错。

嗯嗯,我这就试试
回复

使用道具 举报

8#
ID:290391 发表于 2018-3-28 09:59 | 只看该作者
七彩缤纷 发表于 2018-3-28 08:57
void write_com(uchar com) 、、//写入地址  后面加、、啥意思??删除了试下

是输入法的问题,切换到汉语输入时、、没有显示,然后我没看到就没删掉....真是尴尬
回复

使用道具 举报

9#
ID:298530 发表于 2018-3-28 20:16 | 只看该作者
上面错误时有提示出来的,例如C(22),表示22行有错误了。这样你就回头看一下就知道错在哪里了
回复

使用道具 举报

10#
ID:290391 发表于 2018-4-1 11:14 | 只看该作者
hpshhh 发表于 2018-3-28 20:16
上面错误时有提示出来的,例如C(22),表示22行有错误了。这样你就回头看一下就知道错在哪里了

好的谢谢呢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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