- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
19、KEIL 的混合编程操作
2023-03-01 17:44
这一篇来讲讲混合编程的问题,在网上找了一下,讲混合编程的文件章也有不少, 但进展实例操作讲解的不多也不完整,原来书上混合编程的内容看着就让人觉得抽象难懂,再没有个实际操作图例,就很让人觉得云里雾里。在这里我就针对KEIL 做个混合编程的实例的文章期望对初学者有所帮助。先搞清几个问题。
①混合编程的必要性:也就是为什么需要混合编程,初学者肯定会觉得,我 C 用的好好的为什么要混进汇编呢,不是自找麻烦吗?其实不然,最简洁的例子就是延时子程序,用 C 写的话连你自己也不知道几层的循环后精准地用多少时间吧?但用汇编写你就能很准确地计算出要延时的时间。还有当你要对那些时序要求很高 IC 模块或步进电机行操作时用汇编来写就能做到操控的直接与精准。
②在进展实际操作前要弄清 C 与汇编之间的调用关系,C 的函数大家都会用了, 主要分为无反回参数的和有反回参数的,例如 void delay(void);就是无反回参数的,int readdata(void);就是有返回参数的。还有就是有参数传递和无参数传递的,void delay(void);就是无参数传递的,unsigned int add(unsigned char aa,unsigned char bb);就是有参数传递的函数。在教材上讲起 C 与汇编的混合编程就会说起存放器最多传递三个函数,这样可以产生高效代码。
在参数返回时存放器的传递规律为:
下面我们用实际的混合编程操作来讲讲如何实现函数的调用及参数的传递。
翻开 KEIL,我的用的版本是绿色免安装 2.0 中文版,编译器为 7.0:无程序代码长度限制。现在有 3.0 版也是绿色免安装版本,好处是已支持双字节中文注释,但是英文版。用哪个版本都无所谓,只要用着习惯功能够用就行。
下面是版本信息:
在网上常常有朋友说为什么我下载了 KEIL 解压知名目后运行却不能编译呢,老是报告出错:
--- Error: can”t execute ”E:\old_pc\txz001\单片机c51\KEIL4\C51\BIN\C51.EXE”
--- 错误: 不能执行 ”E:\old_pc\txz001\单片机c51\KEIL2_70\Keil2\C51\BIN\C51.EXE”
这是由于编译时,C51.exe 编译器没能在你给出的路径上找到。你需要修改路径。在选择 KEIL 的菜单栏“工程”--“文件扩展名、书籍和编译环境属性”-- “环境设置”的如以下图:
看到上图的“使用 TOOLS.INI 设定”前的钩了吗?对了,它是依据你 TOOLS.INI 里给出的路径去找的。因此的得翻开那个 tools.ini 文件修改它。KEIL 的名目构造一般是这样的:
我们KEIL 软件运行主程序uvision2 是在名目UV2 里,而那个设置文件TOOLS.INI 文件是在它的上一级名目 Keil 里,见上图。用记事本翻开这个 TOOLS.INI 文件:
观察红笔圈出的[C51]下的路径了吗?将它修改正确指向你硬盘上 KEIL 下 C51
名目,存盘,运行KEIL。就可以正确编译了。(废话又多了。。。)好!言归正传。我们在 KEIL 里创立一个的工程 TEST1。在这个工程里我们添加了两个文
件,main.c 和 delay.c,程序如下: 文件 main.c:
#include AT89X52.H extern void delay(void); main(void)
{
delay;
}
文件 delay.c
#define uchar unsigned char void delay(void)
{ uchar i; for(i=255,i0,i--);
}
可以看出,这两个文件里的程序很简洁,主程序里先定义了一个外部函数delay;然后就调用了这个无参数函数。而文件 delay.c 里也就是用 for 循环做了 255 次循环。
下面我们先进展编译,调试让程序正确,通过编译。然后我们选择左边工程窗口, 选中文件 delay.c,鼠标右击它消灭以下图。
选择“文件”delay.c”属性”后如以下图:
见上图,有“产生汇编文件”和“汇编源代码文件”两项前的钩选框是灰色的, 分别点击它们两次使它呈黑色钩选状态。如以下图。
点击下面确实认钮,回到主界面。这时你再进展一次全部的重编译,就会觉察在你建立这个工程的名目下将多产生一个 delay.src 文件。
用记事本翻开这个 delay.src 文件。觉察它就是一个汇编文件。
; .\delay.SRC generated from: delay.c
; COMPILER INVOKED BY:
; E:\old_pc\txz001\单片机 c5
您可能关注的文档
最近下载
- 五恒系统方案书.pdf VIP
- 全套干扰峰分析图解析.docx
- 第十五讲新时代与中华民族共同体建设(2012— -中华民族共同体概论专家大讲堂课件.pdf VIP
- 种植施肥机械——栽植机械(水稻钵苗栽植机械)课件讲解.pptx VIP
- 企业工会助推企业高质量发展.docx VIP
- 施工技术管理措施.doc VIP
- 第六章维生素与辅酶.ppt VIP
- DB65T 4063-2017 沙化土地封禁保护区沙障技术技术工程.pdf VIP
- 2026江苏辖区农村商业银行泗阳农村商业银行校园招聘15人笔试备考试题及答案解析.docx VIP
- 种植施肥机械——栽植机械(水稻插秧机)课件讲解.pptx VIP
文档评论(0)