单片机编程问题,请教大神,急急急!!!

# include<reg51.h>
# include<absacc.h>
# define N 128 /*定采样长度,如128点*/
sbit BYTE=P1^0;
sbit RC=P1^1;
sbit BUSY=P1^2; /*定义特殊位*/
int XDATA array(N); /*在外部存储器内定义长度为N的有符号整数数组*/
int ADS7804(void)
{ uint ul,uh;int u;
RC=0; /*R/C低电平,进入转换模式*/
ul=XBYTE[0xffff]; /*产生读脉冲,启动A/D转换*/
while (BUSY= =0); /*等待转换完成*/
RC=1;BYTE=0; /*进入读模式,选择低字节*/
ul=XBYTE[0xffff]; /*读转换结果低8位*/
BYTE=1; /*选择高字节*/
uh=XBYTE[0xffff]&0x0f;/*读转换结果高4位*/
u=uh*256+ul; /*得到12位转换结果*/
if(u>=0x0800)
u=u 0xf000; /*如果为负值,则符号扩展*/
return(u); /*返回转换结果*/
}

一直提示
AD-MCU.C(1): warning C500: LICENSE ERROR (R208: RENEW LICENSE ID CODE (LIC))
AD-MCU.C(7): error C129: missing ';' before 'array'

#include<reg51.h>
#include<absacc.h>
#define N 128 /*定采样长度,如128点*/
#define uint unsigned int
sbit BYTE=P1^0;
sbit RC=P1^1;
sbit BUSY=P1^2; /*定义特殊位*/
int xdata array[N]; /*在外部存储器内定义长度为N的有符号整数数组*/
int ADS7804(void)
{
uint ul,uh;
int u;
RC=0; /*R/C低电平,进入转换模式*/
ul=XBYTE[0xffff]; /*产生读脉冲,启动A/D转换*/
while (BUSY==0); /*等待转换完成*/
RC=1;BYTE=0; /*进入读模式,选择低字节*/
ul=XBYTE[0xffff]; /*读转换结果低8位*/
BYTE=1; /*选择高字节*/
uh=XBYTE[0xffff]&0x0f;/*读转换结果高4位*/
u=uh*256+ul; /*得到12位转换结果*/
if(u>=0x0800)
u=0xf000; /*如果为负值,则符号扩展*/
return(u); /*返回转换结果*/
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-13
弟7行有误。
第2个回答  2014-10-13
你的KEIL没破解,还有第129行出错,是不是前面少了一个分号?还是写错了?
第3个回答  2014-10-13
AD-MCU.C这个文件第129行少了分号?
相似回答