请大家帮忙看一下程序,在keil中编译时出现C51 FATAL-ERROR - ACTION: PARSING SOURCE-FILE,谢谢 20

;/*文件1:cs.c*/#include<reg51.h>/51系列单片机初始化头文件#defineucharunsignedchar#defineuintunsign... ;/*文件1:cs.c*/
#include<reg51.h> /51系列单片机初始化头文件
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
extern void cs_t(void); /超声波发生子程序
extern void delay(uint); /延时子程序
extern void displaya(uchar*); /显示子程序
data uchar testok; /测距成功与否标志

void main(void)
{
data uchar dispram[5]; /定义显示距离时用的数组,用于存放测出距离的个位十位百位千位
data uint i;
data ulong time; /用于存放计数器的数值,用来计算超声波从发出到接收所用时间
P0=0xff; /系统初始化,P0与P2口初始值为1
P2=0xff;
TMOD=0x11; /方式为1,为16位的定时计数器
IE=0x80; /EA=1,CPU开中断

while(1)
{
cs_t(); /超声波发生程序,用于产生40KHz方波
delay(1); /调用延时程序
testok=0;
EX0=1; /允许外部中都0中断
ET0=1; /允许T0中断
while (! testok) display(dispram); /显示dispram初始值
if(1==testok) /若testok等于1,表示接收超声波成功,记下计数器的数值,用于计算所用时间
{
time=TH0;
time=(time<<8)|TL0; /高低位赋值给time
time*=172;
time/=10000;

dispram[0]=(uchar) (time%10); /个位
time/=10;
disparm[1]=(uchar) (time%10); /十位
time/=10;
dispram[2]=(uchar) (time%10); /百位
dispram[3]=(uchar) (time/10); /千位
if(0==dispram[3]) dispram[3]=17; /显示' '
}else
{
disparm[0]=16; /显示'-'
disparm[1]=16;
disparm[2]=16;
disparm[3]=16;
}
for(i=0;ik<300;i++) display(dispram); /显示约0.5s的时间
}
}
/*超声接受程序(外中断0)*/
void cs_r(void) interrupt 0
{
TR0=0; /停止计时器T0工作
ET0=0; /禁止T0中断
EX0=0; /禁止外部中断0中断
testok=1; /测距成功
}
/*超时接受程序(内中断0)*/
void overtime(void) interrupt 1
{
EX0=0;
TR0=0;
ET0=0;
testok=2; /测距不成功, 接收超时
}

后面还有三段用汇编写的子程序,分别是超声波发生子程序,延时子程序,
显示子程序,由于字数限制没有附上,
展开
 我来答
原野yxivy
2012-05-26 · TA获得超过138个赞
知道小有建树答主
回答量:233
采纳率:0%
帮助的人:147万
展开全部
注释怎么是一个/?应该是://,另外汇编程序有一个选项要勾选
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式