初学单片机,有错误请指正,万分感谢。
下面是这几天研究1602 液晶显示的小收获,当然对于大佬就是入门都不算的玩意。这东西的说明书找了几份,对比着看,有的文档里错误一堆,但是使用方式一样的。
外部引脚上
按照说明接引脚。vo引脚调整现实对比度,接地对比率最高,有明显拖影。接5v,看不到显示的字符。万不能悬空。
硬件接正确,便可通过mcu写代码了。因为简单了解液晶屏的开发流程,代码逻辑简单,没加一些忙判断,也没开发读功能。
首先贴一张指令图
初始化流程
网上其他教程可能因为板子开发方案不一样,实现逻辑不一样,不过按照图的逻辑我的液晶屏显示没问题。
初始化完成后,可进行字符写入逻辑。
液晶屏有两个八位寄存器,IR(指令寄存器),DR(数据寄存器)。IR保存一些清屏 显示移位等指令。DR暂存要写入到DDRAM或CGRAM的数据。
CGROM保存我们直接就可拿来用的字符,与ascii一致,CGRAM保存我们自定义的字符。DDRAM就是保存我们看到的字符的空间。两行40字符,共80字符。可看到16字符,剩余24字符不可见,可用来移位显示时的字符缓存。
00H-----27H
40H-----67H
AC(地址计数器)保存当前可编辑的DDRAM(显示数据ram)或CGRAM(字符注册ram)的地址。
我们写入指令时候,写入到IR保存。写入数据时候暂存到DR,并同时写入到ac指向的地址,并且ac同时加1.
通过指令光标和显示移位指令,我们设置可见的DDRAM地址。
看起来就是整体左或者右移动一位。每行的四十个字节如同一个双向链表,往左或者往右一直循环移动,字符就循环显示。