‘壹’ 在C51语言中如何嵌入汇编语言
keil C 语言中嵌入汇编语言进行混合编程,方法如下:
1、在C 文件中要嵌入汇编代码片以如下方式加入汇编代码
#pragma ASM
; Assembler Code Here
#pragma ENDASM
2、在Project 窗口中包含汇编代码的C 文件上右键,选择“Options for ...”
4、编译,即可生成目标代码
实例:
#include<reg52.h>
#define uchar unsigned char
sbit LED1=P1^0;
//C 嵌入汇编例程
void delay_ms(void)
{
#pragma asm
MOV R0,#0FFH
MOV R1,#0FFH
D_LOOP1:
DJNZ R0,D_LOOP1
MOV R0,#0FFH
DJNZ R1,D_LOOP1
#pragma endasm
}
void main(void)
{
uchar i;
P1 = 0xFF;
while(1)
{
i++;
delay_ms();
if(i>=7)
{
LED1 =~LED1;
i=0;
}
}
}
‘贰’ 如何使用KeilC51创建一个工程文件
如何使用KeilC51创建一个工程文件
建立一个项目:
点击工程菜单中选择弹出的下拉式菜单中的新建 工程...,接着弹出一个标准Windows文件对话窗口,在"文件名"中输入您的第一个程序项目名称,这里我们用"test",这是笔者惯用的名称,大家不必照搬就是了,只要符合Windows文件规则的文件名都行。"保存"后的文件扩展名为uv2,这是KEIL uVision2项目文件扩展名,以后我们可以直接点击此文件以打开先前做的项目。
这时会弹出让你选择单片机型号的对话框,我们选择ATMEL---AT89C51
然后点击Target 1前面的“+”,出现Source Group 1,选中右键点选“增加文件到组 Source Group 1”
这时选择文件类型为Asm 源文件,再选中001.asm文件,再按添加,在随后出现的提示框中按“确定”
仿真器采用Mon51协议,在使用之前应必须对软件项目进行如下设置:
1、单击工程菜单,再在下拉菜单中单击"目标target 1属性" 在下图中,单击"Target"输入仿真器的工作频率(11.0592MHz)。
2、在调试菜单中点选"Keil Monitor-51 Driver",即选择了STC89C516RD硬件仿真器。
3、单击“R外围设备”选Target Setup设置选项选择您要使用串口(必须和实际相符合),波特率 38400。
如果被仿真的目标板使用12MHZ或者是11.0592MHZ晶振时波特率选择38400,如果被仿真的目标板使用6MHZ晶振时波特率选择18400。
4、如果需要生成HEX代码给编程器烧写芯片的话,需要选中“生成 HEX 文件”的选项,按钮“选择OBJ文件夹...”是用来选择最终HEX文件的存放目录的。
5、按F7快捷键可以进行编译,编译成功后如会出现上图红箭头所指的文字,表示编译成功!
然后可以进行硬件仿真了,将仿真器放入51单片机试验开发板的40脚活动插座中,这时仿真器的电源由实验开发板提供。
现在按Ctrl+F5可以进入仿真,这时再按F5全速运行状态。
这时你会看到实验板开发板P1的八个红色LED,轮流点亮,表示运行成功,你可以查看相关的变量和参数,非常方便,这里我们完整演示一个汇编语言的仿真过程,其实KEIL C最擅长的还是C语言,建议有基础的网友尽量采用C语言。
当首次使用一新的工程调试时可能出现下面的界面,说明KEIL软件和仿真器之间通讯失败,原因是你尚未
设定好串口及波特率。
请按选Settings然后按下图设好串口(根据你的实际使用端口,以下假定为COM1)及波特率。
然后按F7,进行通讯连接,再按Ctrl+F5可以进入仿真,这时再按F5全速运行状态。
‘叁’ 在KEIL C51里,如果不只一个C文件,有多个C文件,如何烧录
在左边的工程栏里面,在Source Group上面点击右键,选择Add File to Group "Source Group1"选项,把你想要编译的C文件全部添加进去,然后按编译按钮,就全部编译了。但是多个C文件编译有很多地方要注意,不是一下子能说清楚的。