3569|4

67

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

AT89S52程序错误,望指教! [复制链接]

本人写AT89S52单片机1602显示程序出现问题,始终找不到症结,向大家请教!先行谢过!!!!
#include
sbit RS=P3^4;
sbit LCDCS=P1^5;
#define uchar unsigned char;
uchar mydata;
uchar command;
uchar a;
uchar code table[]={"i love you"};
uchar code table1[15]={"my motherland"};
void delay();
void write_data();
void write_command();
void delay(uchar a)
{
   unsigned int i,j;
        for(i=0;i<200;i++)
        for(j=0;j }
void write_data(uchar mydata)
{
        RS=1;
    P2=mydata;
        delay(5);
        LCDCS=1;
        delay(5);
    LCDCS=0;               
}
void write_command(uchar command)
{
        RS=0;
        P2=command;
        delay(5);
        LCDCS=0;
        delay(5);
        LCDCS=1;
}       
void init()
{
        LCDCS=1;
        write_command(0x38);
        write_command(0x0e);
        write_command(0x06);
        write_command(0x01);
        write_command(0x80+0x10);
}
void main()
{   int num;
        init();
        for( num=0;num<11;num++)
        {
                write_dat(table[num]);
                delay(20);
        }
        wtite_command(1);
        write_command(0x80+0x53);
        for( num=0;num<15;num++)
    {
                write_command(table1[num]);
                delay(20);
        }
while(1);
}
****************************************************************
编译提示:
compiling xian.c...
XIAN.C(8): error C247: non-address/-constant initializer
XIAN.C(13): error C141: syntax error near ';'
XIAN.C(19): error C141: syntax error near ';'
XIAN.C(28): error C141: syntax error near ';'
xian.c - 4 Error(s), 0 Warning(s).

最新回复

使用#define 宏定义 没有分号呢 因为不是一个语句  详情 回复 发表于 2010-4-7 20:10
点赞 关注

回复
举报

73

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
//

  1. #include
  2. sbit RS=P3^4;
  3. sbit LCDCS=P1^5;
  4. #define uchar unsigned char
  5. uchar mydata;
  6. uchar command;
  7. uchar a;
  8. uchar code table[]={"i love you"};
  9. uchar code table1[15]={"my motherland"};
  10. void delay(uchar a);
  11. void write_data(uchar);
  12. void write_command(uchar);
  13. void delay(uchar a)
  14. {
  15.   unsigned int i,j;
  16. for(i=0;i<200;i++)
  17. for(j=0;j
  18. }
  19. void write_data(uchar mydata)
  20. {
  21. RS=1;
  22.   P2=mydata;
  23. delay(5);
  24. LCDCS=1;
  25. delay(5);
  26.   LCDCS=0;
  27. }
  28. void write_command(uchar command)
  29. {
  30. RS=0;
  31. P2=command;
  32. delay(5);
  33. LCDCS=0;
  34. delay(5);
  35. LCDCS=1;
  36. }
  37. void init()
  38. {
  39. LCDCS=1;
  40. write_command(0x38);
  41. write_command(0x0e);
  42. write_command(0x06);
  43. write_command(0x01);
  44. write_command(0x80+0x10);
  45. }
  46. void main()
  47. { int num;
  48. init();
  49. for( num=0;num<11;num++)
  50. {
  51. write_data(table[num]);
  52. delay(20);
  53. }
  54. write_command(1);
  55. write_command(0x80+0x53);
  56. for( num=0;num<15;num++)
  57.   {
  58. write_command(table1[num]);
  59. delay(20);
  60. }
  61. while(1);
  62. }
复制代码
这个可以编译通过的
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
问题如下.
1 #define uchar unsigned char; 多了个分号,这种定义,不应该用 #define 而应该是
typedef unsigned char U16,BYTE,ucahr;  这种写法.

2 void delay(uchar a);
void write_data(uchar);
void write_command(uchar);
这几个函数的定义没有写清楚参数表.

3 有个函数有拼写错误
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

4
 
只需要把第四行的分号去掉即可
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

5
 
使用#define 宏定义 没有分号呢 因为不是一个语句
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表