- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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()函数未被调
您可能关注的文档
最近下载
- 中学地理学科课程标准与教材研究教学大纲.pdf VIP
- 中建X局各类建筑工程技术经济指标.docx VIP
- 我们的手上有多少细菌?.doc VIP
- 第一单元 观察物体 大单元教学设计2025数学人教版三年级上册(新教材).pdf
- 年东北财经大学国际商学院(校本部) 联招联考项目招生指南.pdf VIP
- 驾驶员安全生产操作规程 - 生产安全.docx VIP
- 公务员(国考)之行政职业能力测验题库附答案(基础题)收藏.docx VIP
- 全册部编版六年级上册全册道德与法治教学课件.pptx
- 第二章-空气流动压力及阻力.pptx VIP
- 2025年全国农产品质量安全检测技能竞赛理论知识考试题库(含答案.docx VIP
文档评论(0)