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

Keil C51中嵌入汇编

xjtudll14年前 (2010-04-20)技术心得13260

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

Xcode 不显示打印(NSLog)的内容

Xcode 不显示打印(NSLog)的内容

用Xcode的时候,突然发现不显示打印的消息了,感觉非常奇怪,之前一直正常可用。 最终发现原因: 自己无意中关了打印窗口了,那自然就没法显示打印信息了 如图所示,点右下角那个小按钮即可。 或者使用快捷键:command + shift + c 问题解决,打印窗口出现。...

NPOI导出Excel表 如何实现短日期格式

https://q.cnblogs.com/q/43888/ 问题: 因为导出EXCEL 档日期格式永远都是 2012-11-22 14:51:11 ,而我们希望结果永远只是 2012-11-22, 我修改完的代码如下: case "System.DateTime": //...

Quartus II计数器仿真:31之后变成字符

Quartus II计数器仿真:31之后变成字符

计数器波形仿真,在执行到31时会突然变成[] ! 之类的符号。如图: 原因: 信号的显示格式选择成了ASCII码,当数值等于ASCII码符号区的时候就会显示为符号了。 解决办法: 1、选择要显示的信号,右键,属性(Properties) 2、将显示格式改成自己所需的,一般是Hexadecimal...

再谈无线网络受限——无法获得IP地址

前面曾经写了一篇[无线网络连接受限]的解决办法(http://www.xjtudll.cn/Exp/66/),本次再谈一些这方面的内容。上次无线网络受限导致的结果就是:无线网卡无法获得IP地址,即便信号很好,也一直连不上。上次最后的解决办法是用WEP加密方式,后来在网上看到WPA2-PSK加密方式更...

android warning : Cursor finalized without prior close()

参考资料: http://stackoverflow.com/questions/22355246/cursor-finalized-without-prior-close-warning-what-does-it-mean 问题: LogCat提示:Cursor finalized with...

金蝶 从旧账套拷贝供应链单据的自定义字段到全新帐套

金蝶 从旧账套拷贝供应链单据的自定义字段到全新帐套

补充几点:1、K3的官方的工具(K3单据自定义字段复制工具),要求在官方服务期,否则工具直接报错 2、涉及的表应该有以下几个:GLNoteCitationGLNoteTypeICChatBillTitleICClassTableInfoICClassTableInfoLayoutICTemplate...

发表评论

访客

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