首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

在KEIL中实现C语言嵌套汇编语言

在KEIL中实现C语言嵌套汇编语言

一、讲解背景
在单片机学习的过程中,掌握一点汇编语言是非常有必有的,作为低级语言汇编语言在单片机开发中有它不可取代的作用,比如每条指令可以精确的确定延时时间,便于理解非常适合硬件工程师学习。但是要提高单片机技能,必须掌握C 语言编程,因为C 语言有强大的模块化管理思想。我想在很多人学习的过程中即学了汇编语言,又学习了C  语言,那么一个问题便随之而产生,如果将C  语言与汇编语言相互结合,达到更好的编程效果,本次讲解就是基于这个问题而生成的。
二、操作步骤
第一步:
在KEIL 中新建工程及文件并复制以下程序并保存为C 文件:
/*
功能:C 语言里嵌套汇编语言,起到抛砖引玉的作用
*/
#include<reg51.h>
delay()
{
int i,j;
for(i=0;i<1000;i++)
for(j=0;j<120;j++); //12M 晶振下延时1MS
}
main()
{
P2=0x00; //控制8 个LED 亮
delay(); //延时1S
#pragma ASM//汇编嵌套开始
MOV P2,#0FFH   //汇编嵌套结束
#pragma ENDASM//汇编嵌套开始
while(1); //C 程序结束
}第二步:
选中 Project   窗口中的C  文件,比如CX1.C,并右键,选择“Options   for   ...”,点击右边的“Generate Assembler SRC File”和“Assemble SRC File”,使复选框的打钩由灰色变成黑色状态(双击即可);
第三步:
将相应的库文件(如 Small        模式时,是 KeilC51LibC51S.Lib)加入工程中,       该文件必须作为工程的最后文件 (将该文件像头文件一样加载到工程中);
第四步:
在KEIL 中编译生成HEX 文件,并按如下图设计仿真图,在仿真中查看效果。
三、演示效果
如下图,如果你在你自己的仿真软件PROTEUS 上看到单片机P2  口控制的8 个LED 先亮延时1S 左右自动熄灭的效果。那说明你已经完全掌握C 语言里嵌套汇编语言的方法了。
返回列表