基于STM8L152的TAB段式LCD液晶驱动的分析 - 单片机干货 - 中国电子技术论坛 - 最好最受欢迎电子论坛!.md 主控芯片为STM8L152C4T6自带LCD控制器,低功耗系列,最近公司用到这个芯片,第一次接触STM8,刚毕业第一次做产品,也算是满成功的,发个帖纪念一下, 顺便记录一下自己学习段式LCD的过程,在查找段式LCD工作资料的过程中,确实有几篇好的博客,给了很大的帮助,但是仍然觉得不够详细,希望这次分析能够帮助到大家。
首先看STM8的LCD控制器的两个关键寄存器:
一: Port mask registers (LCD_PM)
这是映射LCD控制IO的寄存器,寄存器内容如下:
由图可知,当你使用了对应的IO口作为LCD的控制IO时,将对应的位置一即可,否则做普通IO处理。
二:LCD display memory (LCD_RAM)
这是LCD显示缓冲寄存器,把需要写入的显示数据写入该寄存器即可显示,这个结合下面公司制作的LCD详细分析。
下面是我们公司制作的LCD原理图以及LCD接口原理:
因为截图限制,在此说明LCD另外两个重要的工作参数,LCD_Duty_1_4,LCD_Bias_1_3,内部3V工作电压,这三个参数的具体含义在STM8L手册有关LCD的章节可以查阅到。
由段式LCD原理图可以看到,用户编号为S1,个数为S2,信号为S3,S4,S5,S6,S7,电池电量为S8,S9,S10,S11,五个“8”分别为1,2,3,4,5,以第一个“8”为例,七个段分别为1A,1B,1C,1D,1E,1F,1G,分别由PIN5,6跟COM1,2,3,4一起控制,因此需要将Port mask registers (LCD_PM) 中的SEG20,SEG21置一,同时要在LCD display memory (LCD_RAM)中将显示的数据写入S0,S1,S2,S3对应的20,21位,这样就可以显示你想要的数据,前提是LCD初始化成功,下面分析下LCD初始化,是基于库函数形式的,工程模板是STM8L-EVAL板的LCD TEST工程,这是根据模板移植的初始化函数:
首先是开启LCD工作时需要的时钟:
接着是配置LCD需要的工作参数,即前面提到的三个重要参数以及其他参数,在STM8L参考手册中可查阅,最后使能LCD:
再介绍一下清屏函数:
将显示缓冲寄存器中的所有地址写0即可实现LCD的全屏清除。
接下来在介绍下在初始化完毕后如何向LCD显示缓冲区写入显示数据:
先介绍下显示字符缓冲区的设计:
这是按照ABCDEFG的断码顺序设计的段码表,最后一位没有用到定为0,假设我们要写入0,那么需要将0对应的0XFC写入显示缓冲区,以第一个“8”为例,我们需要写入1A,1B,1C,1D,1E,1F,1G对应的数据,即1A=1,1B=1,1C=1,1D=1,1E=1,1F=0,1G=0,而1A,1B,1C,1D,1E,1F,1G的地址结合LCD原理图,LCD接口原理图,以及显示缓冲寄存器可知1A=S0[21],1B=S1[20],1C=S3[20],1D=S3[21],1E=S2[21],1F=S1[21],1G=S1[20],所以讲上述数据写入这些地址后即可显示“0”。那么问题来了,1A对应[7]位,而S0[21]对应显示缓冲区的[5]位,无法直接写入怎么办?
所以在写入数据前需要对数据进行处理:
过程不多做解释啦,希望大家看得明白。
下面是显示缓冲地址与段码对应的表格,大家或许能看的更清楚:
总结一下:
一:初始化LCD,开启对应时钟,设置好工作模式及工作电压;
二:配置好LCD控制IO;
三:写入显示数据到显示缓冲区;
而关于显示数据的处理办法:先根据段码顺序制作好段码表,在写入时根据对应位做相应处理。
上一篇:SM8L显示屏的LCD_WriteRAM怎么用
下一篇:STM8L15X液晶初始化程序
推荐阅读最新更新时间:2024-11-03 11:24
设计资源 培训 开发板 精华推荐
- 使用 IXYS 的 Z8F042A 的参考设计
- LTC3803HS6-3 恒频电流模式反激式 DC/DC 控制器的典型应用电路
- arduino mega4809
- AD9510/PCBZ,用于评估 AD9510 时钟发生器和合成器的评估板
- 【训练营】瘸腿的狗子
- FEBFOD8333,基于 FOD8333 输入 LED 驱动、2.5A 输出电流、具有去饱和检测、隔离故障检测和有源米勒钳位的 IGBT 驱动光耦合器的评估板
- LED 上的 ESD 电容器 (CPx =10 nF) 的典型应用,A8511 2 MHz、4 通道 x 150 mA WLED/RGB 驱动器与输出断开的热降额
- MIKROE-3555,用于 TIVA TM4C129ENCPDT 的 MCU 卡 3
- 3.3V RS-232 工业控制接口
- 用于电缆调制解调器的 20V DC 至 DC 单路输出电源