原创 【博客大赛】 Keil生成lib文件(C51版本)(含视频教程)

2012-11-22 00:48 3475 20 27 分类: MCU/ 嵌入式

有时候我们会看到一些半导体厂商提供的代码是.lib文件的,只告诉我们一些接口。.lib文件对我们来说是内容不可见的,这对保护知识产权等,很有用,那这.lib文件是如何生成的呢?现在我们在Keil中来试试,以C51为例。

 

硬件平台:51开发板(STC12C5A60S2+1602LCD

软件平台:Keil μVison2C语言

目标:在Keil中生成关于1602液晶的lib文件,然后在新的工程中使用lib文件。

 

STEP1

先新建一个工程,里面的源文件在附件1602_creat_lib.zip中,其中的代码我们不一一详述,关于1602液晶的使用,大家可以参考网上其他朋友的文档,我也不详细讲解了。其中的源程序中有以下几个函数:

void Delay(unsigned int t);             //延时函数

void WriteCMD(unsigned char CMD);   //1602LCD发送指令

void WriteData(unsigned char Data);    //1602LCD发送数据

void LCDInitial(void);               //1602LCD初始化

void PutString2LCD(unsigned char addr, unsigned char *p); //LCD发送要显示的字符串

这几个函数的功能从名字基本就可以知道,而且也加了简单的注释。最后一个解释一下,输入的第一个参数是要在液晶上显示的地址,按说明书,第一行首地址为0x00,第二行首地址为0x40,每行可显示16个字符;第二个参数是要显示的字符串的指针。

注意,没有main()函数!

STEP2

选择工程的设置,如下图

20121122004037930001.gif

在弹出的对话框中,选择图中红圈的部分,生成库。注意蓝圈中的名字,可以改成其他名字,这样生成的lib文件名也会改变,我们就用1602好了。

20121122004042464002.jpg

 

STEP3

Build,这样就会发现新生成的lib文件。

20121122004047515003.jpg

 

STEP4

重新建一个工程,我们使用库里面的两个函数,就是STEP1提到的后两个,一个液晶的初始化,一个是向液晶发送字符串。

所以我们在程序的开头加入

extern void LCDInitial(void);

extern void PutString2LCD(unsigned char addr, unsigned char *p);

或者如下面视频里面提到的,加一个头文件,在头文件里面声明这些外部函数。

 

只编写一个主函数

void main(void)

{

       LCDInitial();

       PutString2LCD(0x00,"****Welcome!****");

       PutString2LCD(0x40,"www.ednChina.com");

       while(1);

}

 

可以看到是向液晶发送两个字符串:"****Welcome!****" www.ednChina.com

build一下,没有任何错误和警告,我们把生成的hex文件下载到STC单片机中看下效果:

20121122004052772004.jpg

 

下面我录了一段视频,折腾一晚上,终于弄好了,但是ms挺模糊44.gif

文章评论7条评论)

登录后参与讨论

用户1041631 2013-1-18 10:45

很不错哦!

handong123123_906892115 2012-12-10 09:44

不错

用户412065 2012-12-9 12:58

真的不错,很实用的技巧!

飞言走笔 2012-11-29 11:20

谢谢捧场:)

luoyp8805_694243840 2012-11-27 09:28

不错,学习下了。

飞言走笔 2012-11-26 11:28

:)谢谢!就是那个视频太烂了,呵呵

用户425756 2012-11-23 22:08

真的不错,很实用的技巧!
相关推荐阅读
飞言走笔 2017-01-06 21:56
2017,新的博客旅程
EDNChina 改版终于成功了!祝贺! 2017年,开始新的旅程~ ...
飞言走笔 2016-06-01 10:17
【博客大赛】《白鹿原》读后
《白鹿原》这本书已经买了很久,多次以来,都是只翻看几页,顶多几章就放下了,觉得这是一个大部头,得有足够的时间才行。前几天陈忠实先生去世的消息传来,让我很震惊和惭愧。 一口气读完这本书,畅快淋漓,又意...
飞言走笔 2016-03-26 16:42
【博客大赛】《毛斯朝》读后
这本书最早是在凤凰卫视曾子墨主持的一期关于沈志华先生的《世纪大讲堂》节目中知晓的。但是一直拖到今天才读完。 说实话,书的主要内容与当前官方的宣传口径有很多不一致的地方,而沈先生作为中国掌握苏联档...
飞言走笔 2016-03-08 13:46
【博客大赛】蓝牙4.0低功耗技术及其认证要求
详见附件 ...
飞言走笔 2016-02-02 14:20
【转】蓝牙4.0协议官方手册(一)——通用属性配置文件
转自:http://blog.csdn.net/jinzhichaoshuiping/article/details/43370009 通用属性配置文件 (GATT)——该说明书定义了通用属性配置...
飞言走笔 2016-01-31 23:24
【博客大赛】脑洞大开、三观重塑——《人类简史》读后
终于读完了《人类简史》,没有把这本书拖到二月份,这也是2016年读完的第一本书。之前也有所耳闻,但是没有太在意,倒是罗胖子的跨年演讲上偶然提到,不知怎么就勾起了阅读此书的欲望。 本文的标题用了“脑洞...
我要评论
7
20
关闭 站长推荐上一条 /2 下一条