怎么把keil程序变成一个子函数加进另一个程序里面运行?

怎么把keil程序变成一个子函数加进另一个程序里面运行?,第1张

Keil中序变成一个子函数加进另一个程凯袭序里面运行方法如下:

把这个程序的main函数换个名字,

然后返塌在另一个程序中通过新的盯世兄名字调用这个函数即可。

模块内接口:

使用如下标志符:

#pragma

asm

汇编语句

#pragma

endasm

注意:如果在c51程序中使用了汇编语言,注意在Keil编译器中睁盯需要激活Properties中的

“Generate

Assembler

SRC

File”

和“Assembler

SRC

File

”两个选项

1、把"xx.c"加入工程中,右击"xx.c"选择“options

for

file"xx.c"

选择

“Generate

Assembler

SRC

File”和“Assemble

SRC

File”打上黑勾有效;

2、兄早渗根据选择的编译模式,把相应的库文件象加"xx.c"一

样加入工程中并放在"xx.c"下面,如smail模式下选"keil\c51\lib\c51s.lib"

加入工程中,如果要进行浮点运算把"keil\c51\lib\c51fpl.lib"也加入工程中。

即:

Keil

安羡脊装目录下的

\C51\LIB\

目录的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

例:

#include

void

delay(void)

{

#pragma

asm

MOV

R5,#5

DEL:

MOV

R6,#2

DEL1:

MOV

R7,#255

DJNZ

R7,$

DJNZ

R6,DEL1

DJNZ

R5,DEL

MOV

A,P1

CPL

A

MOV

P1,A

#pragma

endasm

}

void

delay1(unsigned

int

cnt)

{

while(cnt--)

}

void

main()

{

while(1)

{

delay1(1000)

P1=0x55

delay()

}

}

#pragma

asm

汇编代码

#pragma

endasm

这是写法

但是要完成这种写法需要进行设置

首先看到你keil左边那个工程列表

选中你嵌入了汇编的C文件

右键→选择Option

for

file

然后看到d出的对话框

在对话框右边偏少

有5个复选框

初雹稿始的设置时

复选框前面全是灰色纤肆兆的勾

点击“Generate

Assembler

SRC

File”和“Assemble

SRC

File”这两个选项

直到勾变成黑色

保存即完成设毁租置


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12415094.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存