打印
[51单片机]

会汇编的进来看看

[复制链接]
2288|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
现在想学下C和汇编语言混合编程,使用的硬件平台是C8051F930,就是如下的汇编程序
$include "D:\Keil\C51\ASM\C8051F580.INC"

?PR?UartInit?DEMO11 SEGMENT CODE
PUBLIC        UartInit
RSEG  ?PR?UartInit?DEMO11

UartInit:
CLR          EA
MOV          SCON0,#010H
SETB         ES0
SETB         EA
RET
END

编译后出现如下:
assembling asmFun.A51...
A51 MACRO ASSEMBLER V8.02b - SN: K1PMC-NCHRFC
COPYRIGHT KEIL ELEKTRONIK GmbH 1987 - 2008
"D:\Keil\C51\BIN\A51.EXE" "asmFun.A51" INCDIR(D:\Keil\C51\ASM;D:\Keil\C51\ASM;D:\Keil\C51\INC\SiLABS) SET (SMALL) DEBUG EP
A51 FATAL ERROR -
  FILE:       "D:\KEIL\C51\ASM\C8051F580.INC"
  ERROR:      FILE DOES NOT EXIST
A51 TERMINATED.
asmFun.A51 - 0 Error(s), 0 Warning(s).

说头文件没有,可是在我的安装目录里明明是有的,如果不包含的话会出现SCON0,ES0是未定义的符号,纠结啊,有谁还记得汇编的,帮我看看!

相关帖子

沙发
ayb_ice| | 2013-9-27 07:49 | 只看该作者
找不到相应的头文件
建议将头文件与项目文件放在同一个目录下

使用特权

评论回复
板凳
huhaomcu|  楼主 | 2013-9-27 08:54 | 只看该作者
ayb_ice 发表于 2013-9-27 07:49
找不到相应的头文件
建议将头文件与项目文件放在同一个目录下

这种方法也试过了,还是不行!

使用特权

评论回复
地板
ayb_ice| | 2013-9-27 09:20 | 只看该作者
$INCLUDE(reg52.h)

使用特权

评论回复
5
lych9139| | 2013-9-27 09:37 | 只看该作者
你的文件是否在这:"D:\Keil\C51\ASM\C8051F580.INC"

使用特权

评论回复
6
huhaomcu|  楼主 | 2013-9-27 09:38 | 只看该作者
ayb_ice 发表于 2013-9-27 09:20
$INCLUDE(reg52.h)

确实是要按照你的这种方式去包含.h文件,需要一个()才能正确的去链接到头文件!但是编译器去提示我REG51Si1000.h(13): error A10: ATTEMPT TO DEFINE AN ALREADY DEFINED SYMBOL
说我包含的.h文件中企图重定义已经定义了的SFR符号,可是我并之前并没有定义啊!还有此处括号的含义是什么,是否类似于c中包含头文件<>和""的区别,求指教!

使用特权

评论回复
7
huhaomcu|  楼主 | 2013-9-27 09:39 | 只看该作者
lych9139 发表于 2013-9-27 09:37
你的文件是否在这:"D:\Keil\C51\ASM\C8051F580.INC"

是在这里,是需要用括号如$INCLUDE (*.H),但不知括号的含义是什么,我都给出了绝对路径都无法找到,给个括号反而能找到,真不解怎么回事!

使用特权

评论回复
8
jackcms| | 2013-9-27 10:03 | 只看该作者
谢谢!

使用特权

评论回复
9
huhaomcu|  楼主 | 2013-9-27 10:28 | 只看该作者
ayb_ice 发表于 2013-9-27 09:20
$INCLUDE(reg52.h)

为什么包含了头文件后,编译器说我企图重复定义啊,找了一下明明就只有在这个头文件中有定义啊,不明白!

使用特权

评论回复
10
ayb_ice| | 2013-9-27 10:33 | 只看该作者
RT:

未命名.JPG (24.7 KB )

未命名.JPG

使用特权

评论回复
11
huhaomcu|  楼主 | 2013-9-27 10:45 | 只看该作者
ayb_ice 发表于 2013-9-27 10:33
RT:

现在可以了,大神啊!谢谢!还有关于那个头文件使用()的含义请帮我解释一下!

使用特权

评论回复
12
ayb_ice| | 2013-9-27 10:53 | 只看该作者
看帮助文档吧

使用特权

评论回复
13
q3742829| | 2013-9-27 11:11 | 只看该作者
学习一下

使用特权

评论回复
14
创隆电子| | 2013-9-29 18:31 | 只看该作者
汇编的话别用这个软件了。用51汇编编译器吧!专门用于汇编程序的编译器。我开始时用伟福6000时就报错(相同程序),用51编译器就没事,程序也能正常运行。横不错的

使用特权

评论回复
15
创隆电子| | 2013-9-29 18:31 | 只看该作者
要的话我给你,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

189

主题

508

帖子

3

粉丝