导航:首页 > 源码编译 > keilc51有代码被编译没了

keilc51有代码被编译没了

发布时间:2022-05-18 17:57:20

A. keilc51+编译后+有些代码无法执行

咨询记录 · 回答于2021-10-06

B. Keil C51编译问题

(1)可能需要设置系统的环境变量
(2)可能你的程序有问题,因为根据提示“FATAL ERROR L213: I/O ERROR ON WORK FILE:”字面意思就是工作文件中的I/O错误。
(3)建议你吧程序贴出来帮你分析一下。

C. keil 编译不了

是你的编译器问题,也有可能是你安装的时候安装错了,你重新去下载安装一个吧

D. 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文件只存放外部声明。

E. 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
而实际,编写程序,也没有你以上的那种做法,不可能只分配内存单元,而不做任何其它事情。我想,你这样做,无非就是想做个实验罢了。

F. 51单片机使用KEIL C51 数据碰到编译异常

AAA是个long型数据吧?
问这样的问题之前,你应当先了解一下Keil
Cx51的默认数据类型。Cx51在不修改项目配置时,计算时默认的数据类型是int型的(有符号整型),所以在没有类型指定的前提下,9600×4会计算得到溢出的结果变成-27136(0x9600),接下来执行赋值操作时promote类型为四字节,即0xFFFF9600。
要想得到正确的结果,应当加上强制类型转换:
AAA
=
(long)9600*4;

G. keil c51 汇编程序调试有的指令不能执行

C语言会被优化掉一些代码,汇编没有用过,但我判断不大可能,汇编好像是没有优化处理的。你光标在MOV R0,#00H的上一行是PC值是多少?跳过不跳过时相同吗,如果相同不可跳过,PC值怎么会突变的?如果不同就是被优化了,你调出Disassemble窗口就知道有没有被优化掉了。

看不到图。我是说MOV R0,#00H上一行肯定不是跳转指令,PC值怎么会变,PC值不变肯定会连续执行了。能发到我邮箱不?[email protected].
还有一点,如果你修改了程序,没有重新编译,进入调试窗口将执行以前的代码。如果整行的增加或减少很容易发现,如果你在一行后面增加删减,不注意不好发现的。

H. 我用keil c51仿真软件编的汇编程序,编译后显示目标没产生

作为新手,还是按照KEIL默认的安装路径安装吧(虽然这个路径是可以任意修改的)。
你看看你的Keil是否装在了 C:\keil\ 这个文件夹下,,如果不是,你默认配置文件中的配置是找不到相应A51、C51、BL51等工具的。你可以尝试装到那路径下。

另外,如果是没有注册过的KEIL,当程序超过2K时,会出现代码限制的错误,也是不能通过编译的,,,这个可以通过KEIL的注册机解决。

其实当你遇到编译不能通过时,最好能把你的编译信息发上来,这样就能更好的了解你那里的情况。

我的邮箱是 [email protected]
如果有问题,我有时间的话,可以帮助你.

I. keil51编译提示没了keil51编译提示没了一个字也没有提示了,咋回事,重装了好多次了

先translate current file 通过(它左边的按钮)没有错误,再编译

J. 关于c51单片机使用keil编译器的一些问题

1.如果没有被调用,就不会被编译,自然不占用空间。
2.只要结构体有元素被使用,就要占据整个结构体的空间。
3.多出来的0.2是位变量,表示你用了两个bit的变量。

阅读全文

与keilc51有代码被编译没了相关的资料

热点内容
学好玩命令方块 浏览:953
手机解压两个分开的压缩包 浏览:963
程序员想调薪怎么和领导说 浏览:856
编译的底层实现 浏览:550
32位机器上编译出64的动态库 浏览:924
python办公数据类型 浏览:913
传统8051单片机介绍 浏览:628
app拉新公司如何运营 浏览:618
枪法pdf 浏览:62
ios如何设置安卓虚拟返回键 浏览:697
mysql命令执行sql 浏览:97
惠普内嵌服务器怎么打开 浏览:413
cmd命令查看网络 浏览:819
程序员秘密 浏览:932
如何宣传app引流 浏览:73
图说红楼梦中央编译 浏览:173
php查询赋值 浏览:271
java程序员面试宝典第四版pdf 浏览:931
2021流行加密加长睫毛膏 浏览:644
怎么用windows自带编译器 浏览:397