首先来看看我使用的这款液晶的结构图:
可以看到,液晶有12个引脚,1~8号引脚是SEG引脚,9~12是COM也就是公共端引脚。SEG引脚和COM引脚可以看成行和列,行列同时导通,液晶对应的段就亮。首先将液晶编一下号方便分析:
如图,如果我们想让第一位的a段亮,怎么做呢?让2号引脚导通,同时让9号引脚导通,这样第一位的a段就可以点亮了,那么怎么点亮液晶全屏并且显示我们想要的数值呐?我的想法是使用点阵动态刷新的原理就可以了。
看下图:
图中画出了TM1722与LCD的连接方法,没有画出其余电路与背光源,其余电路读者自行参照数据手册画出。
再看一个表:
这个图是TM1722的显示寄存器与TM1722的引脚对应图,也就是通过向这个寄存器写入对应位的值,便可让对应引脚所接的LCD段亮。
解释一下,这个表com0~com3对应的就是TM1722的COM0~C0M3引脚,由原理图知道,它已经和LCD的C0M0~COM3接在一起了。SEG4~SEG31对应TM1722的SEG4~SEG31引脚,原理图上只接了SEG4~SEG15这八个引脚。
举个例子,向0x02这个地址写入0x01(1000 0000 (低位在前)),也就是,SEG4引脚输出高电平,COM0(表上BIT0对应的COM0)输出高电平,对应LCD第一位的f段亮。为什么是SEG4高电平?因为寄存器的地址是0x02,对应SEG4、SEG5两个引脚,由于是低四位的bit0位为1,对应的自然是SEG4、COM0高电平,f段亮。
如果我们想要让LCD的第一位显示一个2,首先设置寄存器的地址为0x02,告诉TM1722我要操作SEG4、SEG5这两个引脚。由表知向寄存器地址0x02写入的数据一共8位,低4位控制的是由SEG4这个引脚控制的4个段,高四位控制的是由SEG5这个引脚控制的四个段。
想要显示2只需要bit0~bit7 分别为0110 1101,即1011 0110(高位在前) = 0xB6 ,试验下就可以看到,LCD第一位显示出了2,想要让LCD显示4个2只需分别向寄存器地址0x02、0x03、0x06、 0x07写入0xB6就可一了。至于TM1722是如何去刷新液晶显示的,我们实际上是不关心的,想要知道可以参考数据手册第8页。关于驱动TM1722的代码不在本文讨论范围内,读者可根据TM1722的数据手册来编写相应代码。
作者:离远
参考资料:TM1722数据手册、液晶屏图纸
声明:本文原创转载请注明来源