首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

指令出错的有关问题

2012-04-02 
指令出错的问题下面这段程序 是向12864液晶写如一段汉字 可是在编译到flagXBYTE[comre]&0x80XBYTE[com

指令出错的问题

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

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





#include<reg51.h>
#include<absacc.h>

#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外边的双引号。
[解决办法]
XBYTE 是这个样的

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

你是搞软件的这个肯定能看懂。
[解决办法]
XBYTE两边的引号去掉。其他应该就pass了

热点排行