STM8L152C8T6TAB段式LCD液晶驱动原理

最近项目中做流量仪表测量产品,使用到了段码LCD,为了简化硬件设计,节约硬件成本,于是想到STM8L152系列单片机集成了LCD 控制器,直接驱动LCD很方便,于是开始了硬件设计,硬件设计不是特别复杂,根据LCD的规格书,有几个公共端,对应的单片机就使能几个公共端与LCD对应公共端连接,段码根据数量使用,stm8l152最多有28个段码,硬件设计完,开始软件调试,问题来了,硬件段码如何与软件显存数据对应,尤其是动态显示的LCD需要公共端和段码配合使用,百度吧,资料有不少,看了好多也没有看明白,于是自力更生,通过阅读手册理解了。
STM8L152C8T6TAB段式LCD液晶驱动原理
这个图讲的是单片机硬件端口和LCD的对应关系,一共做多28个段码,用哪个段码了,软件上就使能那个iO的段码功能。那么对于多为数据,用同一个段码,那软件如何操作呢,平时我们知道动态显示就是段码送显示的数据,对应为的公共端COMX使能,对应为就亮,万变不离其中,这个也是这样的原理只不过,对于stm8l152不是直接操作段码而是把数据先写到显存中,显存中每个公共端对应最多28位,你想让哪位数码管亮,就把数据写到对应显存上去,单片机会自动映射到硬件的段码上
STM8L152C8T6TAB段式LCD液晶驱动原理
STM8L152C8T6TAB段式LCD液晶驱动原理

看上图了么,比如硬件上你使能了12个段码seg0 ~ seg11,LCD一共有四位数码管,那么就有4个公共端com0 ~ com3,想要数码管1亮,那么数据写到缓存s0[0:11],那么单片机会自动把数据通过硬件的seg对应的io输出到lcd点亮数码管,以此类推如果要第二位数码管亮,那就要把段码数据写到s1[0:11],这样第二位数码管就亮了。

还有个注意点,就是硬件设计上,如果单片机的VLCD信号外接了电源,那软件中要使能外部电源,反之则使能内部电源。