3514|4

73

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

指令出错的问题 [复制链接]


下面这段程序 是向12864液晶写如一段汉字 可是在编译到         
    flag="XBYTE"[comre]&0x80;
    XBYTE[comwr]=command;  

时  系统总提示语法错误 因为本人是做软件的 现在刚转硬件 所以不是很懂  哪位高手能指下
这是什么错误 XBYTE 指令如何使用





#include
#include

#define uchar unsigned char

#define datawr 0E8FFH          //写数据通道
#define comwr  0E0FFH         //写控制命令通道
#define datare 0EFFFH          //读数据通道
#define comre  0E7FFH    //读忙状态
uchar code disp_data[]={"二次矩阵的可逆转换"
                        "测试程序"};
void Ini12864();
void write_command(uchar command);
void write_page(uchar data_add);
void read_page(uchar data_add);
void delays(uchar cont);
void main()
{
    while(1)
    {
        Ini12864();             //初始化12864
        write_page(0);          //写入一页数据
        read_page(0x30);        //读出一页数据到内部RAM
        delays(2);              //延时2s
        write_page(64);         //写入下一页数据
        delays(2);              //延时2s
    }
}
//初始化12864子程序
void Ini12864()
{
    write_command(0x30);        //功能设定控制字
    write_command(0x0c);        //显示开关控制字
    write_command(0x01);        //清除屏幕控制字
    write_command(0x06);        //进入设定点控制字
}
//写控制命令子程序
void write_command(uchar command)
{
    bit flag="1";                 //12864空闲标志位
    while(flag)                 //检查12864是否空闲
        flag="XBYTE"[comre]&0x80;
    XBYTE[comwr]=command;       //空闲传送控制字
}
//写一页子程序
void write_page(uchar data_add)
{
    bit flag="1";                 //12864空闲标志位
    uchar num="64";               //64个循环,连续写入32个汉字或是64个西文字符
    write_command(0x80);
    for(;num>0;num--)
    {
        while(flag)             //检查12864是否空闲
            flag="XBYTE"[comre]&0x80;
        XBYTE[datawr]=disp_data[data_add++]; //空闲传送数据
    }
}
//读一页子程序
void read_page(uchar data_add)
{
    bit flag="1";                 //12864空闲标志位
    uchar num="64";               //64个循环,连续写入32个汉字或是64个西文字符
    write_command(0x80);
    for(;num>0;num--)
    {
        while(flag)             //检查12864是否空闲
            flag="XBYTE"[comre]&0x80;
        DBYTE[data_add++]=XBYTE[datare]; //空闲传送数据
    }
}
//延时cont秒子程序
void delays(uchar count)
{
    unsigned char h,i,j,k;
    do
    {
    for(h=5;h>0;h--)
    for(i=4;i>0;i--)
    for(j=116;j>0;j--)
    for(k=214;k>0;k--);
    }while(--count);
}

最新回复

XBYTE两边的引号去掉。其他应该就pass了  详情 回复 发表于 2008-5-13 13:42
点赞 关注

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
进来了就留个脚印吧
 
 

回复

90

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
去掉XBYTE外边的双引号。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

4
 
XBYTE 是这个样的

#define XBYTE ((unsigned char volatile xdata *) 0)

你是搞软件的这个肯定能看懂。
 
 
 

回复

91

帖子

0

TA的资源

一粒金砂(初级)

5
 
XBYTE两边的引号去掉。其他应该就pass了
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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