资讯详情

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

一、讲解背景

在单片机学习的过程中,掌握一点汇编语言是非常有必有的,作为低级语言汇编语言在单片

机开发中有它不可取代的作用,比如每条指令可以精确的确定延时时间,便于理解非常适合

硬件工程师学习。但是要提高单片机技能,必须掌握C 语言编程,因为C 语言有强大的模

块化管理思想。我想在很多人学习的过程中即学了汇编语言,又学习了C 语言,那么一个

问题便随之而产生,如果将C 语言与汇编语言相互结合,达到更好的编程效果,本次讲解

就是基于这个问题而生成的。

二、操作步骤

第一步:

在 中新建工程及文件并复制以下程序并保存为C 文件:

/*

功能:C 语言里嵌套汇编语言,起到抛砖引玉的作用

作者:三维电子杨荣国

日期:2010-5-16

*/

#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,#0F //汇编嵌套结束

#pragma ENDASM//汇编嵌套开始

while(1); //C 程序结束

}

第二步:

选中 Project 窗口中的C 文件,比如1.C,并右键,选择“Options for ...”,点击右边的

“Generate Assembler SRC File”和“Assemble SRC File”,使复选框的打钩由灰色变成黑色

状态(双击即可);

第三步:

将相应的库文件(如 Small 模式时,是 Keil\C51\Lib\C51S.Lib)加入工程中, 该文件必须作为

工程的最后文件 (将该文件像头文件一样加载到工程中);

第四步:

在KEIL 中编译生成HEX 文件,并按如下图设计仿真图,在仿真中查看效果。

三、演示效果

如下图,如果你在你自己的仿真软件PROUS 上看到单片机P2 口控制的8 个LED 先亮延

时1S 左右自动熄灭的效果。那说明你已经完全掌握C 语言里嵌套汇编语言的方法了。

作业:实现C 语言嵌套汇编语言,C 语言实现控制P2.0 的红色LED 以0.1S 的时间间隔闪

烁5 次,汇编语言实现控制P2.1 的绿色LED 以0.1S 的时间间隔闪烁3 次,并停止。

-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司