• 欧陆娱乐



  • 深圳led背光源生产厂家,lcd显示屏,lcm液晶显示模块|模组厂-欧陆娱乐

    Arduino下LCD1602编程经验分享(很全面)

      这次我来分享一下我的LCD1602的编程经验:

      先说明一下,我下面要说的LCD1602的芯片驱动是HD44780,如果你们的LCD1602驱动芯片不是HD44780 ,那么下面的内容是不适用的 。

      我对LCD1602的整体理解

      这里说一下我对LCD1602的整体理解哈,LCD1602是一个可以显示两行字符的LCD显示器,每一行可以都写入40个字符,但是每行都只有前16个字符可以显示 ,每行后面的24个字符无法立即显示,只说不容易明白 ,下面看一下示意图:

     

    C51单片机编程技巧:LCD1602编程经验分享
     

      另外LCD1602只能显示字符 ,数字和一些简单的符号 ,是无法显示汉字的,切记 。

      LCD1602引脚 :

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

     

    C51单片机编程技巧:LCD1602编程经验分享
     

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

      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单片机编程技巧:LCD1602编程经验分享
     

      读函数的源码我没写,毕竟这个几乎用不到 。

      用图中可以看出:

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

      RW引脚自然就是高电平了,因为我们要读嘛;

      然后再往后就是E引脚了,我们在读取命令或者数据的时候,必须要先使能这个器件,所以E引脚要置为高电平;

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

      虽然读时序讲完了,但是在实际开发中我们几乎不需要进行读操作,我想这时有人就会说了 :不是要读取忙标志吗 ,那不就要进行读操作了吗?的确是那样,但是LCD1602的速度是纳秒级别的,而51单片机是毫秒级别的 ,所以基本不需要读取忙标志 ,只要微延时就行了。

      如图:

     

    C51单片机编程技巧:LCD1602编程经验分享
     

      LCD1602写时序:

     

    C51单片机编程技巧:LCD1602编程经验分享
     

      这个函数我写了,下面是代码:

     

    C51单片机编程技巧:LCD1602编程经验分享
     

      【注】在函数里面我用了两种方式,并4口和并8口

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

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

      RW引脚自然就是低电平了,因为这次我们要写嘛;

      然后再往后就是E引脚了 ,我们在读取命令或者数据的时候 ,必须要先使能这个器件,所以E引脚要置为高电平;

      最后D0到D7就是写入的数据或者命令了 。

      LCD1602过程

      这个我也写了,下面是代码:

     

    C51单片机编程技巧:LCD1602编程经验分享
     

      LCD1602的初始化,也就是HD44780芯片的初始化过程,这个初始化过程的版本太多了,大多数初始化过程都可以成功初始化,但是我这里是在写文章嘛,自然就不能讲一个乱七八糟的初始化过程啦 ,所以我就查了一下HD44780芯片的英文原版数据手册,下面上图:

     

    C51单片机编程技巧:LCD1602编程经验分享
     

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

      【注】很多初始化的版本都可以成功初始化,我说的那个仅仅是最正规的而已,个人喜好 ,只要可以初始化成功就可以了。

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

      免责声明:本文转载于互联网,仅代表作者观点,如对稿件内容/版权等有疑议 ,请及时联系我们删除。



  • XML地图