1. 让源文件支持内联汇编
在main.c上点击右键, options for file ‘main.c’,勾选上generate Assembler SRC file和Assemble SRC file,注意勾选上是黑色的,不是灰色的。
2. 编写内联的汇编代码
//黑马程序员
#include <STC8H.H>
void delay(void) { 延时1000ms的函数,逻辑代码来自stc-isp软件
#pragma asm //汇编开头
nop
nop
push 0x30
push 0x31
push 0x32
mov 0x30, #122
mov 0x31, #193
mov 0x32, #126
next_loop:
djnz 0x32, next_loop
djnz 0x31, next_loop
djnz 0x30, next_loop
pop 0x32
pop 0x31
pop 0x30
#pragma endasm //汇编结尾
}
void main(void) {
P5M1 = 0x00;
P5M0 = 0x00;
P53 = 1;
while(1){
delay();
P53 = 0;
delay();
P53 = 1;
}
}
3. 添加汇编代码链接支持
根据不同的编译模式,在 KEIL 安装目录表下的 keil\c51\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
我这里选择的是C51S.LIB库,效果如下:
搞定~