以LCD1602驱动程序为例剖析C51单片机编程技巧

|
许多的新手或许是工程师在单机片编程时都会遇到一些很杂乱的问题,其实许多的问题我们都是有小技巧去简化它的。下面就以LCD1602的芯片驱动来讲讲在C51单片机编程中有哪些技巧对错常好用的。由于下面要说的LCD1602的芯片驱动是HD44780,如果你们的LCD1602驱动芯片不是HD44780,那么下面的内容可能就不适用了。

LCD1602是一个能够显现两行字符的LCD显现器,每一行能够都写入40个字符,可是每行都只需前16个字符能够显现,每行后边的24个字符无法当即显现,只说不容易理解,下面看一下示意图:

浅谈C51单片机编程技巧有哪些

别的LCD1602只能显现字符,数字和一些简略的符号,是无法显现汉字的,牢记。

LCD1602引脚:

然后再说一下引脚,每逢学习一个芯片或许模块,最早要了解的就是引脚:

浅谈C51单片机编程技巧有哪些

由于我们现在仅仅学习怎样编程,所以电路的衔接就不讲了,下面说一下与编程有关的引脚:

1.RS引脚:数据/指令挑选端(H/L)

当你要给LCD发送指令的时分,就给这个引脚低电平;

当你要与LCD交互数据的时分,就给这个引脚高电平。

2.R/W引脚:读/写挑选端(H/L)

当你要向LCD写入数据的时分,就给这个引脚低电平;

当你要读LCD中的数据的时分,就给这个引脚高电平。

3.E引脚:使能端(这儿照料一下爱钻牛角尖的人:E为什么叫 使能 啊?别的 使能 啥意思,我怎样从来没听说过啊?)

答1:E引脚英文全称:Enable引脚,En是英语中的一个前缀,译为 使... ,然后边的able是译为 能够 ,所以合起来就叫 使能 引脚了。

答2:使能啥意思呢,这儿不说专业术语哈,你能够理解为使能端就是一个开关,当这个引脚是高/低电平常这个器材是能够用的,当它为相反电平常这个器材就是没用的,你不管怎样做它也是不作业的。当然到底是低电平器材有用呢,仍是高电平器材有用呢?这个就要看详细器材的数据手册或许有的引脚上也会直接标出来,比方E就是高电平有用,E( )就是低电平有用。

4.D0~D7引脚:这个就没什么好说的了,就是传输数据或许指令的引脚。

5.其他的电源引脚,背光电源什么的就不说了,表格里边现已说得十分清楚了,并且我们现在仅仅是学习编程,电路衔接不讲。

引脚说完了,那么下面我们就能够说LCD1602的编程部分了:

我以为关于LCD1602需求记住的就两部分,时序和指令(并不对错要彻底记住,学完后自己写一个函数库,今后开发用到的时分直接调用就行了)

先说一下时序和初始化进程:

LCD1602读时序:

浅谈C51单片机编程技巧有哪些

读函数的源码没写,究竟这个简直用不到。

用图中能够看出:

RS引脚依照你的读取什么而定,读取数据就高电平,读取指令就是低电平;

RW引脚天然就是高电平了,由于我们要读嘛;

然后再往后就是E引脚了,我们在读取指令或许数据的时分,必需要先使能这个器材,所以E引脚要置为高电平;

最终D0到D7就是读取的数据了,我们找个变量数组保存起来就行了。

尽管读时序讲完了,可是在实践开发中我们简直不需求进行读操作,我想这时有人就会说了:不是要读取忙标志吗,那不就要进行读操作了吗?的确是那样,可是LCD1602的速度是纳秒等级的,而51单片机是毫秒等级的,所以根本不需求读取忙标志,只需微延时就行了。
浅谈C51单片机编程技巧有哪些

浅谈C51单片机编程技巧有哪些

在函数里边用了两种方法,并4口和并8口

下面说一下最重要的写操作时序,从图中能够看出:

RS引脚依照你的读取什么而定,读取数据就高电平,读取指令就是低电平;

RW引脚天然就是低电平了,由于这次我们要写嘛;

然后再往后就是E引脚了,我们在读取指令或许数据的时分,必需要先使能这个器材,所以E引脚要置为高电平;

最终D0到D7就是写入的数据或许指令了。

LCD1602进程

下面是代码:

浅谈C51单片机编程技巧有哪些

LCD1602的初始化,也就是HD44780芯片的初始化进程,这个初始化进程的版别太多了,大多数初始化进程都能够成功初始化,可是我这儿是在写文章嘛,天然就不能讲一个杂乱无章的初始化进程啦,所以我就查了一下HD44780芯片的英文原版数据手册,下面上图:

浅谈C51单片机编程技巧有哪些

我们如果想看懂的话就从上往下一步一步地看,然后就理解为什么初始化要像上面那样写了。

许多初始化的版别都能够成功初始化,我说的那个仅仅是最正规的罢了,个人喜爱,只需能够初始化成功就能够了。

最终写好LCD1602的头文件,然后LCD1602的函数库就做好了,当然我们没写读函数,这些你想写的话自己加上去就行了。有了这个函数库,今后用LCD1602的时分直接调用就行了,多方便。

请尊重我们的辛苦付出,未经允许,请不要转载ca88亚洲城【官】_电子爱好者网的文章!
上一篇:LPC11C14单片机为例剖析IO无法输出凹凸电平的处理方法
下一篇:为你回答无线充电的有什么奥秘技能