zoukankan      html  css  js  c++  java
  • [STM8L]基于STM8L152的TAB段式LCD液晶驱动的分析

    [STM8L]基于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;
    三:写入显示数据到显示缓冲区;
    而关于显示数据的处理办法:先根据段码顺序制作好段码表,在写入时根据对应位做相应处理。
    应工作要求只能提供以下附件,程序为EVAL板的程序,非此次LCD相关程序,可供大家参考,抱歉! STM8L_LCD.rar (75.52 KB, 下载次数: 264)
    STM8L152C4T6Datasheet.pdf (1.83 MB, 下载次数: 202)

    这次也只是做了初步了解,以后有机会再仔细研究!






  • 相关阅读:
    java程序调用CMD命令启动tomcat替换环境变量
    解决mysql中只能通过localhost访问不能通过ip访问的问题
    mysql 主从配置
    maven私服上传jar包
    mysql 服务【安装】【启动】【停止】【卸载】【重置密码】
    spring boot 文件上传大小限制
    Mysql 字符串分隔函数
    上取整和下取整之间的转换关系
    chapter3 数据链路层
    Chapter2 物理层
  • 原文地址:https://www.cnblogs.com/mcumagic/p/6908154.html
Copyright © 2011-2022 走看看