keil中can't open reg51.h是啥原因
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了keil中can't open reg51.h是啥原因相关的知识,希望对你有一定的参考价值。
参考技术A 当当安装的目录下没有该文件,或者头文件名有错时,编译时,会有can't open fine 'xxx.h' 提示。请更正头文件名即可。具体的头文件可在你安装的目录下查看,比如C:\Program Files\Keil\C51\INC\Atmel
或者用最常用的<reg52.h>或<at89x51.h>试试。本回答被提问者和网友采纳 参考技术B 确认相关路径下是否包含此文件。
使用keil编程常遇到c语言问题;main被重复定义了,如何破?
#include<reg52.h>
extern main;
void dlay(float k)
unsigned int h,j;
h =k*100;
while(h--)
for(j=8505;j>0;j--) ;
void main()
int T,i; T=0xfe;
while(1)
for(i=8;i>0;i--)
P1=T,T<<=1,T=T+1,dlay(0.1) ;
main这个关键字不能随便定义的
只能存在一个
程序都是从main开始所以也不能被调用,所以根本没必要声明main函数。追问
删掉还不行:
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: MAIN
MODULE: 流水灯(位移).obj (流水灯(位移))
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?MAIN?流水灯(位移)
果然有多个文件
只留下text2.c其他全部删除
remove file删除其他的
只留下text2.c
如果要其他功能一般是.H .C成对出现
多个C里面还有多个main函数当然不行
最后再吧extern main;注释掉
编译器是keil4的
求大神,详细些
参考技术B P1=T,T<<=1,T=T+1,dlay(0.1)//这里的逗号都应该变成分号追问不行
的
void dlay(float k)
unsigned int h,j;
h =k*100;
while(h--)
for(j=8505;j>0;j--) ;
上面的float变成int型的变量就可以了,你的编译器不支持浮点运算,记得把extern main;删掉哦,把我上面发的文件按说明拷进keil中就能支持浮点运算了
还不行:
#include
void dlay(float k)
unsigned int h,j;
h =k*100;
while(h--)
for(j=8505;j>0;j--) ;
void main()
int T,i; T=0xfe;
while(1)
for(i=8;i>0;i--)
P1=T,T<<=1,T=T+1,dlay(0.1) ;
这是你的程序在我电脑上运行正常,看你还有一个c文件,另一个c里面不能再有main函数了
以上是关于keil中can't open reg51.h是啥原因的主要内容,如果未能解决你的问题,请参考以下文章
keil4 打开工程时出现 can't read project file 怎么办呢 单片机