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

Keil C51中嵌入汇编

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

   我们知道,用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中嵌入汇编” 的相关文章

DBNull.Value(数据库写入NULL)与null

DBNull.Value,, 适用于向数据库的表中插入空值。 null,是指在程序中表示空引用。 或者对象为空。就是没有实例化。 如果要向数据库写NULL,应该写入的是DBNull.Value,而不是直接赋值null。...

Multisim仿真过慢

Multisim仿真过慢

在用Multisim仿真的时候,有时候会仿真过慢,实际等了半天,而传递函数才走了几秒而已,有时候要看最后稳定的结果,得等N长时间,这个是无法忍受的。这个问题实际上是所有Spice类软件的通病,如果你按照软件的默认设置的话,有些仿真进程就是很慢。 解决办法: 修改仿真的步进值。如图(以中文版为例)...

把存储过程结果集插入临时表

--使用sp_helpserver 显示可用的服务器。  exec sp_helpserver  --打开服务器的"data access"属性  exec sp_serveroption '服务器名',...

IAR显示行号

IAR显示行号

个人比较习惯用外部编辑器来编辑程序,但是调试工具还是得用IAR,有时候要找到某一行程序,就必须知道行号。 Tools-> Option -> Editor -> Show line numbers(勾选)...

Xcode显示行数

Xcode显示行数

操作步骤如下: Xcode->Preferences - > text editing - > show:line numbers...

430仿真器安装驱动提示INF找不到所需的段落

430仿真器安装驱动提示INF找不到所需的段落

在安装msp430 USB仿真器驱动程序时,出现问题:在inf中找不到所需段落。 打开setupapi.log(windows目录下)一看,发现是找不到 [ClassInstall32] 段。 找到原因,就知道如何解决了。解决方法如下 1、打开UIF的驱动程序,其下有2个INF文档,umpusb...

发表评论

访客

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