当前位置:首页 > 技术心得 > 正文内容

Keil C51中嵌入汇编

xjtudll16年前 (2010-04-20)技术心得17910

   我们知道,用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、编译,即可生成目标代码。 

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://www.xjtudll.cn/Exp/74/

标签: keilC51
分享给朋友:

“Keil C51中嵌入汇编” 的相关文章

在 Windows server 2008 下计划任务无法正常执行bat批处理文件

在 Windows server 2008 下计划任务无法正常执行bat批处理文件

windows server 2008 下计划任务执行批处理,总是提示执行成功, 但是批处理该输出的内容却没有输出, 解决办法: 如图:编辑任务 把批处理文件的起始位置加上如:在d:\aa.bat 那么起始位置就是:d:\  注:路径中不能有引号...

STM8L PC0 PC1无法输出高电平

STM8L PC0 PC1无法输出高电平

MCU:STM8L151K4 参考代码: PC_DDR |= BIT1; PC_CR1 |= BIT1; PC_ODR |= BIT1; 现象: 无法输出高电平,一直是低电平 原因: STM8L PC0和PC1是N沟道开漏输出,所以必须接上拉电阻才能输出高电平。 以下截图来自于STM8L151...

Android Warning: Converting to string: TypedValue …

参考资料:   http://stackoverflow.com/questions/4903948/android-resources-converting-to-string-typedvalue-warning   问题:   切换activity...

VS2010 RDLC报表不识别xsd数据源

VS2010 RDLC报表不识别xsd数据源

1、如果是VS2010,则只能将xsd数据源放在工程的根目录 这时候RDLC报表里添加数据集才能找到xsd数据源 2、将VS2010升级到VS2010 SP1 升级之后,就支持将xsd数据源放在任意文件夹下了...

静电实验平台的搭建及要求

静电实验平台的搭建及要求

Test setup 1、Cables: 2m, with 470KΩ * 2 ---EUT and Metal HCP (Horizontal Coupling Plate); ---HCP and Metal Plate connected to the ground 2、Insu...

金蝶 报废/补料是否会参与倒冲领料

金蝶 报废/补料是否会参与倒冲领料

产品入库倒冲领料单没有考虑报废补料数量,一般领料时则会考虑。此种情况可以通专过【报废倒冲领属料】的功能生成【生产领料单】。 请按下列方法步骤操作: 1、登录K/3主控台,依次单击【生产管理】→【生产任务管理】→【生产物料报废/补料】,双击【生产物料报废/补料单-维护】; 2、打开...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。