基于Keil u4创建库文件的讨论.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Keil u4创建库文件的讨论.pdf

基于Keil u4创建库文件的讨论 相信很多学习51 单片机的朋友,特别是高级学习者,都特别想创建一个属于自己的库 文件吧。把自己常用的函数封装到一个库中,供自己和别人使用,不仅在编写大程序凸现优 越性,而且能有效保护自己的知识贡献,何乐而不为呢!好了,废话不多说,下面我就来详 细讲一讲如何成功地在Keil 中建立自己的库文件,并且保证在最后的项目中结果是0 错误、 0 警告。 一、首先讲一下第一种做法 1、首先在桌面上建立一个工程文件夹lib,见下图 2 、打开Keil (我用的是u4 ,不同版本若有不一样的地方,请读者自己解决)。新建工程lib 。 其中弹出的一个对话框,问是否要生成startup.a51 文件,我选了“是”。(暂时没研究这 个文件)如图: 3、提前用记事本写好下面两个C 延时文件(暂以2 个来讲,多个就差不多了)和一个头文 件,C 文件放在工程目录里,头文件话在Keil 安装目录的INC 文件夹内,然后添加两 个C 文件进工程。如: 头文件:DELAY.H #ifndef _DELAY_H_ //读者可尝试将extern 去掉,看看有何影响 #define _DELAY_H_ //我去了之后,感觉好像没啥影响,不知为何 extern void delay1s(); extern void delay5ms(); #endif c 文件1:delay.1s.c void delay1s() { unsigned char i,j,k; for(i=100;i0;i--) for(j=20;j0;j--) for(k=248;k0;k--); } c 文件2 :delay5ms.c void delay5ms() { unsigned char i,j; for(i=10;i0;i--) for(j=248;j0;j--); } 4 、然后在target option 中的output 选项栏勾选create library,编译,并把生成的lib.lib 文件 复制到Keil 安装目录下的LIB 文件夹内。如: 5、编译显示结果: 6、然后,在project 面板中右击C 文件,将以上两个延时文件remove 掉,并且新建主C 文 件 a.c,添加进工程。注意在主文件的上部包含DELAY.H 并把 lib.lib 添加进工程。a.c 代码如下: #include reg52.h #include DELAY.H typedef unsigned char uchar; typedef unsigned int uint; sbit led=P2^0;//让接在P2^0 口的二极管间隔1s 闪烁 void main() { while(1) { led=0; delay1s(); led=1; delay1s(); } } 7、在option 中勾选产生Hex 文件。 8、点Rebuild 按钮,显示结果: 9、下载进单片机,我就不截图了,事实上二极管确实间隔1s 闪烁了。 二、下面换一种做法,改变一下库文件的生成方式。刚才是软件生成,现在手动生成。 1、从之前的第6 步开始,在project 栏中将 lib.lib 去掉。在工程目录里找到delay1s.obj 和 delay5ms.obj 文件,复制到Keil 安装目录下的BIN 文件夹内。如: 2 、打开上图中突显的LIB51.EXE 。在上面输入以下代码: 3、这时在BIN 中就出现了mylib.lib 文件,它已经被添加了之前的两个延时程序。 4 、复制这个库到LIB 中。像刚才一样添加。如: 5、点rebuild ,显示结果 6、事实证明,二极管如期“听话” 了。 读者不知有没有注意到这一点,手动生成lib 有一好处,那就是等以后你有新的模块要添加 时,就可手动添加,而不需再生成一次lib 。 有的朋友可能会问:“你这个做法为什么没有出现像这样的提示: UNCALLED SEGMENT,IGNORED FOR OVERLAY PROCESS 警告,比如这: 得提前声明,我的Keil 的警告可不低啊,我没故意将级别设置为0.见图: 这个警告是说其中delay5ms()函数未被调

文档评论(0)

ypwx + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档