Keil C51中嵌入汇编
我们知道,用C语言实现精确延时是一件比较困难的事情,而用汇编写精确延时程序就简单多了,但是整个程序都用汇编,那就是件头疼的事情。要是能在C里面嵌入汇编,那就爽了,本文介绍的就是如何在Keil C51里嵌入汇编。
1、在 C 文件中以如下方式加入汇编代码:
#pragma ASM
; Assembler Code Here
#pragma ENDASM
例如:
//延时1ms程序 晶振:11.0592MHZ
void delay_1ms(void)
{
#pragma asm
DELAY1MS: MOV R7,#50
DD: MOV R6,#10
D2: DJNZ R6,$
DJNZ R7,DD
#pragma endasm
}
2、在 Project 窗口中包含汇编代码的 C 文件上右键,选择“Options for ...”,点击右边的“Generate Assembler SRC File”和“Assemble SRC File”,使检查框由灰色变成黑色(有效)状态。如图所示。
3、根据选择的编译模式,把相应的库文件(如 Small 模式时,是 Keil\C51\Lib\C51S.Lib)加入工程中, 该文件必须作为工程的最后文件。
4、编译,即可生成目标代码。