新闻中心

EEPW首页>嵌入式系统>设计应用> 单片机keil 常见问题

单片机keil 常见问题

作者: 时间:2013-08-02 来源:网络 收藏

一、混合编程

1、模块内接口:

使用如下标志符:

#pragma asm

汇编语句

#pragma endasm

注意:如果在c51程序中使用了汇编语言,注意在编译器中需要激活Properties中的“Generate Assembler SRC File” 和“Assembler SRC File ”两个选项

来个实例吧:

#i nclude

void main(void)

{

P2=1;

#pragma asm

MOV R7,#10

DEL:MOV R6,#20

DJNZ R6,$

DJNZ R7,DEL

#pragma endasm

P2=0;

}

另:

1、把"xx.c"加入工程中,右击"xx.c"选择“options for file"xx.c" 选择“Generate Assembler SRC File”和“Assemble SRC File”打上黑勾有效;

2、根据选择的编译模式,把相应的库文件象加"xx.c"一样加入工程中并放在"xx.c"下面,如smail模式下选"c51libc51s.lib"加入工程中,如果要进行浮点运算把"c51libc51fpl.lib"也加入工程中。

在 Keil 安装目录下的 C51LIB 目录的LIB 文件如下:

C51S.LIB - 没有浮点运算的 Small model

C51C.LIB - 没有浮点运算的 Compact model

C51L.LIB - 没有浮点运算的 Large model

C51FPS.LIB - 带浮点运算的 Small model

C51FPC.LIB - 带浮点运算的 Compact model

C51FPL.LIB - 带浮点运算的 Large model

3、在"xx.c"头文件中加入优化:比如#pragma OT(4,speed)

4、在"xx.c"中加入汇编代码

#pragma ASM

;Assembler Code Here

#pragma ENDASM

5、编译生成xx.hex

注意:

没有做第一步会有如下警告:'asm/endasm' requires src-control to be active

没有做第二步会有如下警告:UNRESOLVED EXTERNAL SYMBOL;

REFERENCE MADE TO UNRESOLVED EXTERNAL等

没有做第三步会有如下警告:UNDEFINED SYMBOL (PASS-2)

51单片机相关文章:51单片机教程


c语言相关文章:c语言教程


单片机相关文章:单片机教程


单片机相关文章:单片机视频教程


单片机相关文章:单片机工作原理



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭