[51单片机] 会汇编的进来看看

[复制链接]
2773|14
 楼主| huhaomcu 发表于 2013-9-26 22:56 | 显示全部楼层 |阅读模式
现在想学下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)
lych9139 发表于 2013-9-27 09:37 | 显示全部楼层
你的文件是否在这:"D:\Keil\C51\ASM\C8051F580.INC"
 楼主| 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中包含头文件<>和""的区别,求指教!
 楼主| huhaomcu 发表于 2013-9-27 09:39 | 显示全部楼层
lych9139 发表于 2013-9-27 09:37
你的文件是否在这:"D:\Keil\C51\ASM\C8051F580.INC"

是在这里,是需要用括号如$INCLUDE (*.H),但不知括号的含义是什么,我都给出了绝对路径都无法找到,给个括号反而能找到,真不解怎么回事!
jackcms 发表于 2013-9-27 10:03 | 显示全部楼层
谢谢!
 楼主| huhaomcu 发表于 2013-9-27 10:28 | 显示全部楼层
ayb_ice 发表于 2013-9-27 09:20
$INCLUDE(reg52.h)

为什么包含了头文件后,编译器说我企图重复定义啊,找了一下明明就只有在这个头文件中有定义啊,不明白!
ayb_ice 发表于 2013-9-27 10:33 | 显示全部楼层
RT:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| huhaomcu 发表于 2013-9-27 10:45 | 显示全部楼层
ayb_ice 发表于 2013-9-27 10:33
RT:

现在可以了,大神啊!谢谢!还有关于那个头文件使用()的含义请帮我解释一下!
ayb_ice 发表于 2013-9-27 10:53 | 显示全部楼层
看帮助文档吧
q3742829 发表于 2013-9-27 11:11 | 显示全部楼层
学习一下
创隆电子 发表于 2013-9-29 18:31 | 显示全部楼层
汇编的话别用这个软件了。用51汇编编译器吧!专门用于汇编程序的编译器。我开始时用伟福6000时就报错(相同程序),用51编译器就没事,程序也能正常运行。横不错的
创隆电子 发表于 2013-9-29 18:31 | 显示全部楼层
要的话我给你,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

190

主题

509

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部