当前位置:首页 » 编程软件 » keilc51的编译

keilc51的编译

发布时间: 2022-08-21 04:06:45

⑴ KEIL C51的编译连接问题

字面意思是未解析的外部符号,你没把包含外部变量的c文件放在同一文件夹下,或者说你没把那个文件添加到工程。我刚测试完,就是这个问题

啊对了,如果还有问题可以网络hi我,我每天都会看。很喜欢单片机设计,愿意一起研究

⑵ KEIL C51多文件编译

首先主函数只能存在于一个文件中,这个文件可以直接取名mian.c这样比较方便管理。然后按功能分其它文件,分别编写XX.h和XX.c文件,在XX.h中写入函数的声明和全局变量的定义,在XX.c中写函数的具体内容,并且在XX.c中要include“XX.h”,在mian.c中include所有的.h文件。这样就可以正常编译和烧写了。最终生成的还是一个hex文件

⑶ 关于Keil C51编译的问题

COMMON.C(1): warning C500: LICENSE ERROR (R208: RENEW LICENSE ID CODE (LIC))
好像是说注册错误,要装破解版;
MAIN.C(9): error C202: 'TRO': undefined identifier第九行错误,应是TR0, O与0应区分

⑷ Keil编写C51程序,编译问题请教

应该是这个函数uart0_init有函数原型,也就是说能被其他文件中的函数调用,但却不存在实际的函数体,所以链接时链接器找不到这个函数对应的代码段,就报警告了,而你试图右键看这个函数的定义时,就会跳出这个框。

⑸ keil c51编译时出错error c202,求教~~

咨询记录 · 回答于2021-11-14

⑹ keil c51 问题:程序无法编译

你那程序也不长啊,直接把程序发上来,发什么图片哪?
第二个图片显示的,没有错误了,只有一个警告,是因为调用那个延时子程序delay( ) 时,打错了一个字母,打成dalay 了。
另外提示:保存C程序的文件夹,最好不 要用汉字,而且文件夹的层数不要太多了,你这一共是五层文件夹,有两层还是汉字,编译时容易出错的。

⑺ Keil C51编译的问题!

你主程序里没有别的程序代码了?
单片机在编译时,首先是进行编译预处理(头文件包括指令,宏定义处理,条件编译,各种伪指令等),然后再进入优化编译阶段,再进行汇编过程,接着是程序链接。

你在主程序中定义,unsigned char a[2]={1,2};数组,并分配两个存储单元。虽然在语法上是没有错,程序也能正确被编译。但程序在真正进行实质链接时,由于你并没有真正进行功能性的程序指定,编译时它会生成很多冗余的汇编代码,按照你定义的单元。上面生成的汇编,你如果仔细看,很多的条件跳转语句都是转到不同的内存单元。如:
DJNZ R7,C:001F //R7寄存器相减为0则转到001F,否则顺序执行。
DJNZ R7,C:004B
DJNZ R7,C:003F
INC DPTR
F2 MOVX @R0,A
INC R0
DJNZ R7,C:004B
而实际,编写程序,也没有你以上的那种做法,不可能只分配内存单元,而不做任何其它事情。我想,你这样做,无非就是想做个实验罢了。

⑻ KEIL C51的编译指令#pragma noiv什么意思

这样的问题直接查软件的帮助就可以找到啊。

编译指令NOIV
默认值:INTVECTOR(0)
描述:NOIV(NOINTVECTOR)编译指令会抑制生成中断向量。借助这个编译指令,用户可以采用其它的编程工具产生中断向量,从而与本软件联合使用。

⑼ keil C51程序编译的问题

如果你的H头文件包含在每个.C文件中,那就是说你的每个.C文件都定义了sbuf[20],KEIL就会提示你说你的sbuff[20]重复定义。我理解的应该是这个问题吧?

解决办法,要么用条件编译区分sbuff的作用域,就是在哪些.c文件中使用。
要么在一个.c文件中定义sbuff,在H文件中用外部声明包含进去,比如:
extern unsigned char data char sbuf[20];这样在其他的.C文件中,sbuff是引用而不是定义了。

一般都是采用第二种方式,H文件只存放外部声明。

⑽ keil里面编译的c51问题

你注意以下几个关键点:
uint ad_covert() //
{
uint temp1,temp2;

temp1=258;
return (temp1); //返回AD转换数据 取八位结果
}

这些,都没有问题,如果正常的话,函数永远返回的是 常数258,.
但是,如果你的 result 定义成 uchar类型的,那么,result的结果就永远都是2.
因为uchar类型的数据,是8位数据,最大的数是 255,所以,对于大于 255的数字,就相当于对256取余数,因为你的函数永远返回 258,大于 255,所以对256取余数的结果是 2。
这就是为什么总是 2的原因,如果你的result定义成 uint类型,那么,结果就永远是 258.

热点内容
keil的c51编译器 发布:2025-03-20 07:40:46 浏览:331
vpn韩国服务器地址 发布:2025-03-20 07:12:44 浏览:25
打码软件源码 发布:2025-03-20 07:08:06 浏览:109
前端android 发布:2025-03-20 06:50:42 浏览:93
进制转换栈c语言 发布:2025-03-20 06:50:31 浏览:339
myeclipse不自动编译了 发布:2025-03-20 06:41:38 浏览:777
led汽车大灯和卤素灯该选哪个配置 发布:2025-03-20 06:40:55 浏览:917
sql网校 发布:2025-03-20 06:16:42 浏览:279
安卓手机图标排列为什么会混乱 发布:2025-03-20 06:16:05 浏览:761
手机pin初始密码是多少 发布:2025-03-20 06:15:59 浏览:900