require include 区别>和<%@require include 区别%>的区别

本帖子已过去太久远了,不再提供回复功能。21ic官方微信-->
后使用快捷导航没有帐号?
请完成以下验证码
查看: 186|回复: 11
求助#include&reg51.h&这句如何理解
&&未结帖(20)
主题帖子积分
实习生, 积分 15, 距离下一级还需 35 积分
实习生, 积分 15, 距离下一级还需 35 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 15, 距离下一级还需 35 积分
实习生, 积分 15, 距离下一级还需 35 积分
#include&reg51.h&的编译错误如下:
组态王.C(9): 错误 C141: syntax error near '&'
组态王.C(9): 错误 C129: missing ';' before '.'
组态王.c(9): 错误 C309: bad or missing filename
组态王.c(9): 警告 C318: can't open file ''
主题帖子积分
实习生, 积分 15, 距离下一级还需 35 积分
实习生, 积分 15, 距离下一级还需 35 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 15, 距离下一级还需 35 积分
实习生, 积分 15, 距离下一级还需 35 积分
以下是完整的程序
/******************************************************************
** 开关量输出
** 晶 振 频 率:11.0592M
** 线路-&单片机实验开发板B
与组态王联机 实验板地址为:15 存储地址为15
测试代码(通过串口助手以16进制发送):40 30 46 43 35 30 30 30 46 30 31 30 41 30 36 0d
*************************************************************************************************/
#include&reg51.h&
/****************************开关端口定义*********************************************/
sbit sw_0=P3^3;
sbit sw_1=P3^4;
sbit sw_2=P3^5;
sbit sw_3=P3^6;
sbit jdq1=P2^0;//继电器1
sbit jdq2=P2^1;//继电器2
unsigned char rec[50];//用于接收组态王发送来的数据,发送过来的数据不能超过此数组长度
unsigned char code error[]={0x40,0x30,0x46,0x2a,0x2a,0x37,0x36,0x0d};//数据不正确
unsigned char code send[]={0x40,0x30,0x46,0x23,0x23,0x37,0x36,0x0d};//正确的数据
void sw_out(unsigned char);//开关量输出
unsigned int htd(unsigned int); //进制转换函数
unsigned char ath(unsigned char,unsigned char);//ASIIC码转换为十六进制数
void uart(void);//串口中断程序
/************************************************************************************************/
void main(void)
unsigned char a=0;
TMOD=0x20; //定时器1--方式2
TH1=0 //11.0592MHZ晶振,波特率为9600
SCON=0x50; //方式1
TR1=1; //启动定时
IE = 0x90; //EA=1,ES=1:打开串口中断
sw_out(sw); //输出开关量
void sw_out(unsigned char a)
if(a==0x00)
jdq1=1; //接收到PC发来的数据00,关闭继电器1和2
else if(a==0x01)
jdq1=1; //接收到PC发来的数据01,继电器1关闭,继电器2打开
else if(a==0x10)
jdq1=0; //接收到PC发来的数据10,继电器1打开,继电器2关闭
else if(a==0x11)
jdq1=0; //接收到PC发来的数据11,打开继电器1和2
/**************************十六进制转十进制函数**************************/
/*函数原型:uint htd(uint a)
/*函数功能:十六进制转十进制
/*输入参数:要转换的数据
/*输出参数:转换后的数据
/*调用模块:无
/******************************************************************/
unsigned int htd(unsigned int a)
unsigned int b,c;
c=b; //*16^0
c=c+(b&&4);//*16^1
c=c+(b&&8);//*16^2
c=c+(b&&12);//*16^3
/********************ASIIC码转换为十六进制程序*************************/
/*函数原型:unsigned char ath(unsigned char a,unsigned char b)
/*函数功能:ASIIC码转换为十六进
/*输入参数:要转换的数据
/*输出参数:转换后的数据
/*调用模块:无
/**********************************************************************/
unsigned char ath(unsigned char a,unsigned char b)
if(a&0x40)
else if(a&0x47)
else if(a&67)
if(b&0x40)
else if(b&0x47)
else if(a&67)
return((a&&4)+b);
/**************************串口中断程序******************************/
/*函数原型:void uart(void)
/*函数功能:串口中断处理
/*输入参数:无
/*输出参数:无
/*调用模块:无
/**********************************************************************/
void uart(void) interrupt 4
unsigned char a,b;
if(a==0x40)//接收到字头
if(a==0x0d)//接收到字尾,开始出路数据
if(ath(rec[1],rec[2])==15)//判断是否为本机地址
for(a=1;a&i-3;a++)//产生异或值
b^=rec[a];
if(b==ath(rec[i-3],rec[i-2]))//接收到正确数据
if((ath(rec[3],rec[4])&0x01)==1)//写操作
sw=ath(rec[11],rec[12]);
sw=htd(sw);
for(a=0;a&8;a++)
SBUF=send[a];
while(TI!=1);
else//接收到错误数据
for(a=0;a&8;a++)
SBUF=error[a];
while(TI!=1);
主题帖子积分
实习生, 积分 15, 距离下一级还需 35 积分
实习生, 积分 15, 距离下一级还需 35 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 15, 距离下一级还需 35 积分
实习生, 积分 15, 距离下一级还需 35 积分
不过编译出以下错误
组态王.C(9): 错误 C141: syntax error near '&'
组态王.C(9): 错误 C129: missing ';' before '.'
组态王.c(9): 错误 C309: bad or missing filename
组态王.c(9): 警告 C318: can't open file ''
主题帖子积分
初级工程师, 积分 2255, 距离下一级还需 745 积分
初级工程师, 积分 2255, 距离下一级还需 745 积分
主题帖子积分
专家等级:结帖率:100%打赏:1.00受赏:55.00
主题帖子积分
初级工程师, 积分 2255, 距离下一级还需 745 积分
初级工程师, 积分 2255, 距离下一级还需 745 积分
#include&reg51.h&& &改成&&#include&reg51.h&
主题帖子积分
实习生, 积分 15, 距离下一级还需 35 积分
实习生, 积分 15, 距离下一级还需 35 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 15, 距离下一级还需 35 积分
实习生, 积分 15, 距离下一级还需 35 积分
改成#include&reg51.h&后报如下错
组态王.C(81): 错误 C202: 'lt': undefined identifier
组态王.C(81): 错误 C141: syntax error near ';'
组态王.C(81): 错误 C141: syntax error near ')'
组态王.C(84): 错误 C202: 'lt': undefined identifier
组态王.C(84): 错误 C141: syntax error near ';'
组态王.C(84): 错误 C141: syntax error near ')'
组态王.C(87): 错误 C202: 'lt': undefined identifier
组态王.C(87): 错误 C141: syntax error near ';'
组态王.C(87): 错误 C141: syntax error near ')'
组态王.C(99): 错误 C202: 'lt': undefined identifier
组态王.C(99): 错误 C141: syntax error near ';'
组态王.C(99): 错误 C141: syntax error near ')'
组态王.C(101): 错误 C141: syntax error near 'else'
组态王.C(101): 错误 C202: 'lt': undefined identifier
组态王.C(101): 错误 C141: syntax error near ';'
组态王.C(101): 错误 C141: syntax error near ')'
组态王.C(103): 错误 C141: syntax error near 'else'
组态王.C(103): 错误 C202: 'lt': undefined identifier
组态王.C(103): 错误 C141: syntax error near ';'
组态王.C(103): 错误 C141: syntax error near ')'
组态王.C(105): 错误 C202: 'lt': undefined identifier
组态王.C(105): 错误 C141: syntax error near ';'
组态王.C(105): 错误 C141: syntax error near ')'
组态王.C(107): 错误 C141: syntax error near 'else'
组态王.C(107): 错误 C202: 'lt': undefined identifier
组态王.C(107): 错误 C141: syntax error near ';'
组态王.C(107): 错误 C141: syntax error near ')'
组态王.C(109): 错误 C141: syntax error near 'else'
组态王.C(109): 错误 C202: 'lt': undefined identifier
组态王.C(109): 错误 C141: syntax error near ';'
组态王.C(109): 错误 C141: syntax error near ')'
组态王.C(111): 错误 C202: 'lt': undefined identifier
组态王.C(111): 错误 C141: syntax error near ';'
组态王.C(111): 错误 C141: syntax error near ')'
组态王.C(111): 错误 C141: syntax error near ')'
组态王.C(136): 错误 C202: 'lt': undefined identifier
组态王.C(136): 错误 C141: syntax error near ';', expected ')'
组态王.C(136): 错误 C141: syntax error near ')'
组态王.C(140): 错误 C202: 'amp': undefined identifier
组态王.C(140): 错误 C141: syntax error near ';'
组态王.C(140): 错误 C141: syntax error near '=='
组态王.C(140): 错误 C141: syntax error near ')'
组态王.C(144): 错误 C202: 'lt': undefined identifier
组态王.C(144): 错误 C141: syntax error near ';', expected ')'
组态王.C(144): 错误 C141: syntax error near ')'
组态王.C(154): 错误 C202: 'lt': undefined identifier
组态王.C(154): 错误 C141: syntax error near ';', expected ')'
组态王.C(154): 错误 C141: syntax error near ')'
目标未产生
主题帖子积分
主题帖子积分
专家等级:结帖率:94%打赏:141.96受赏:359.98
主题帖子积分
keil对中文支持不好,先把文件名改为英文字母和数字的组合吧
欢迎进入& && &21ic TI技术交流1群:(已满),&&21ic TI技术交流2群:
主题帖子积分
实习生, 积分 15, 距离下一级还需 35 积分
实习生, 积分 15, 距离下一级还需 35 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 15, 距离下一级还需 35 积分
实习生, 积分 15, 距离下一级还需 35 积分
改完了还是与之前一样的错误。
主题帖子积分
资深技术员, 积分 458, 距离下一级还需 42 积分
资深技术员, 积分 458, 距离下一级还需 42 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
资深技术员, 积分 458, 距离下一级还需 42 积分
资深技术员, 积分 458, 距离下一级还需 42 积分
一看就是拷贝过来的工程,你还是先学学C语言的基础吧
主题帖子积分
实习生, 积分 39, 距离下一级还需 11 积分
实习生, 积分 39, 距离下一级还需 11 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 39, 距离下一级还需 11 积分
实习生, 积分 39, 距离下一级还需 11 积分
我估计问题应该就在#include&reg51.h&这条语句上,建议可以找找reg51.H这个文件的位置在哪儿。复制到你的项目文件同目录下试试。include与文件之间要隔开,“”这个符号也要分中文还是英文状态。该用双引号还是尖括号都可以考虑。
主题帖子积分
中级工程师, 积分 3169, 距离下一级还需 1831 积分
中级工程师, 积分 3169, 距离下一级还需 1831 积分
主题帖子积分
专家等级:结帖率:94%
主题帖子积分
中级工程师, 积分 3169, 距离下一级还需 1831 积分
中级工程师, 积分 3169, 距离下一级还需 1831 积分
觉得先学习一下C语言
主题帖子积分
高级工程师, 积分 7801, 距离下一级还需 199 积分
高级工程师, 积分 7801, 距离下一级还需 199 积分
主题帖子积分
专家等级:结帖率:95%
主题帖子积分
高级工程师, 积分 7801, 距离下一级还需 199 积分
高级工程师, 积分 7801, 距离下一级还需 199 积分
一看就是从网上复制的程序。
别人进行了html编码。 把 引号&&替换成了&&&&&
把一些英语的大于号等符号,替换成了汉语的。
所有你复制进来后,keil会报错,哪行报错改哪行。
I find it amusing that you didn't even consider a third reason for the problem was an error on your part.
主题帖子积分
高级工程师, 积分 7801, 距离下一级还需 199 积分
高级工程师, 积分 7801, 距离下一级还需 199 积分
主题帖子积分
专家等级:结帖率:95%
主题帖子积分
高级工程师, 积分 7801, 距离下一级还需 199 积分
高级工程师, 积分 7801, 距离下一级还需 199 积分
我替换后的
/******************************************************************
** 开关量输出
** 晶 振 频 率:11.0592M
** 线路-&单片机实验开发板B
与组态王联机 实验板地址为:15 存储地址为15
测试代码(通过串口助手以16进制发送):40 30 46 43 35 30 30 30 46 30 31 30 41 30 36 0d
*************************************************************************************************/
#include&reg51.h&
/****************************开关端口定义*********************************************/
sbit sw_0=P3^3;
sbit sw_1=P3^4;
sbit sw_2=P3^5;
sbit sw_3=P3^6;
sbit jdq1=P2^0;//继电器1
sbit jdq2=P2^1;//继电器2
unsigned char rec[50];//用于接收组态王发送来的数据,发送过来的数据不能超过此数组长度
unsigned char code error[]={0x40,0x30,0x46,0x2a,0x2a,0x37,0x36,0x0d};//数据不正确
unsigned char code send[]={0x40,0x30,0x46,0x23,0x23,0x37,0x36,0x0d};//正确的数据
void sw_out(unsigned char);//开关量输出
unsigned int htd(unsigned int); //进制转换函数
unsigned char ath(unsigned char,unsigned char);//ASIIC码转换为十六进制数
void uart(void);//串口中断程序
/************************************************************************************************/
void main(void)
& & & & unsigned char a=0;
& & & & TMOD=0x20; //定时器1--方式2
& & & & TL1=0
& & & & TH1=0 //11.0592MHZ晶振,波特率为9600
& & & & SCON=0x50; //方式1
& & & & TR1=1; //启动定时
& & & & IE = 0x90; //EA=1,ES=1:打开串口中断
& & & & while(1)
& & & & {
& & & & & & & & sw_out(sw); //输出开关量
}
void sw_out(unsigned char a)
{
& & & & if(a==0x00)
& & & & {
& & & & & & & & jdq1=1; //接收到PC发来的数据00,关闭继电器1和2
& & & & & & & & jdq2=1;
& & & & }
& & & & else if(a==0x01)
& & & & {
& & & & & & & & jdq1=1; //接收到PC发来的数据01,继电器1关闭,继电器2打开
& & & & & & & & jdq2=0;
& & & & }
& & & & else if(a==0x10)
& & & & {
& & & & & & & & jdq1=0; //接收到PC发来的数据10,继电器1打开,继电器2关闭
& & & & & & & & jdq2=1;
& & & & }
& & & & else if(a==0x11)
& & & & {
& & & & & & & & jdq1=0; //接收到PC发来的数据11,打开继电器1和2
& & & & & & & & jdq2=0;
& & & & }
}
/**************************十六进制转十进制函数**************************/
/*函数原型:uint htd(uint a)
/*函数功能:十六进制转十进制
/*输入参数:要转换的数据
/*输出参数:转换后的数据
/*调用模块:无
/******************************************************************/
unsigned int htd(unsigned int a)
{
& & & & unsigned int b,c;
& & & & b=a%10;
& & & & c=b; //*16^0
& & & & a=a/10;
& & & & b=a%10;
& & & & c=c+(b&&4);//*16^1
& & & & a=a/10;
& & & & b=a%10;
& & & & c=c+(b&&8);//*16^2
& & & & a=a/10;
& & & & b=a%10;
& & & & c=c+(b&&12);//*16^3
& & & &
}
/********************ASIIC码转换为十六进制程序*************************/
/*函数原型:unsigned char ath(unsigned char a,unsigned char b)
/*函数功能:ASIIC码转换为十六进
/*输入参数:要转换的数据
/*输出参数:转换后的数据
/*调用模块:无
/**********************************************************************/
unsigned char ath(unsigned char a,unsigned char b)
{
& & & & if(a&0x40)
& & & & & & & & a-=0x30;
& & & & else if(a&0x47)
& & & & & & & & a-=0x37;
& & & & else if(a&67)
& & & & & & & & a-=0x57;
& & & & if(b&0x40)
& & & & & & & & b-=0x30;
& & & & else if(b&0x47)
& & & & & & & & b-=0x37;
& & & & else if(a&67)
& & & & & & & & b-=0x57;
& & & & return((a&&4)+b);
}
/**************************串口中断程序******************************/
/*函数原型:void uart(void)
/*函数功能:串口中断处理
/*输入参数:无
/*输出参数:无
/*调用模块:无
/**********************************************************************/
void uart(void) interrupt 4
{
& & & & unsigned char a,b;
& & & & if(RI)
& & & & {
& & & & & & & & a=SBUF;
& & & & & & & & RI=0;
& & & & & & & & if(a==0x40)//接收到字头
& & & & & & & & & & & & i=0;
& & & & & & & & rec[i]=a;
& & & & & & & & i++;
& & & & & & & & if(a==0x0d)//接收到字尾,开始出路数据
& & & & & & & & {
& & & & & & & & & & & & if(ath(rec[1],rec[2])==15)//判断是否为本机地址
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & b=0;
& & & & & & & & & & & & & & & & for(a=1;a&i-3;a++)//产生异或值
& & & & & & & & & & & & & & & & & & & & b^=rec[a];
& & & & & & & & & & & & & & & & if(b==ath(rec[i-3],rec[i-2]))//接收到正确数据
& & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & if((ath(rec[3],rec[4])&0x01)==1)//写操作
& & & & & & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & & & & & sw=ath(rec[11],rec[12]);
& & & & & & & & & & & & & & & & & & & & & & & & sw=htd(sw);
& & & & & & & & & & & & & & & & & & & & & & & & for(a=0;a&8;a++)
& & & & & & & & & & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & & & & & & & & & SBUF=send[a];
& & & & & & & & & & & & & & & & & & & & & & & & & & & & while(TI!=1);
& & & & & & & & & & & & & & & & & & & & & & & & & & & & TI=0;
& & & & & & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & else//接收到错误数据
& & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & for(a=0;a&8;a++)
& & & & & & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & & & & & SBUF=error[a];
& & & & & & & & & & & & & & & & & & & & & & & & while(TI!=1);
& & & & & & & & & & & & & & & & & & & & & & & & TI=0;
& & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & & }
& & & & & & & & }
& & & & }
& & & & else
& & & & {
& & & & & & & & TI=0;
& & & & }
}复制代码
I find it amusing that you didn't even consider a third reason for the problem was an error on your part.
终身成就奖章
等级类勋章
坚毅之洋流
发帖类勋章
时间类勋章
技术领袖奖章
人才类勋章
精华达人奖章
等级类勋章
湍急之河流
发帖类勋章
时间类勋章
技术导师奖章
人才类勋章
时间类勋章
沉静之湖泊
发帖类勋章
无冕之王奖章
等级类勋章
热门推荐 /3拒绝访问 | www. | 百度云加速
请打开cookies.
此网站 (www.) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(3a6dd7-ua98).
重新安装浏览器,或使用别的浏览器

我要回帖

更多关于 import include区别 的文章

 

随机推荐