一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 3265|回复: 14
收起左侧

[其他综合] 问个问题:单片机驱动段码LCD时,应该怎么写呢?

[复制链接]
发表于 2016-1-10 23:43 | 显示全部楼层 |阅读模式
      其实这个问题我昨天晚上就想要问,但凌晨4点多我打开论坛时发现论坛已经“炸”了,为了避免帖子被误删,我就没发。
      单片机驱动LED数码管是很简单的,但用单片机驱动段式LCD的好像并不多。段式LCD有带驱动芯片和不带驱动芯片的两种,现在我用的是不带芯片的LCD,好像是某种智能电表上的,4个COM,共38个引脚。我费了一下午时间终于点亮了这个LCD,但在驱动它显示数字时又蒙了,这东西每个“8”字的各个“段”的连接方式与LED差别很大,比如我这个LCD第1位数字的A段就是COM4和第5引脚控制的,而B段则是COM3和第5引脚控制的,到了E段则又是COM2和第4引脚控制,看起来好像没什么规律,这样怎么输出显示数据呢?
      我现在使用的方法是将每个段的对应关系以常量数组的形式保存在程序中,显示时读取数字字模数据后,再根据这个数组寻找对应关系,发送到对应的引脚,但这样占用的内存空间太大了,每个段占用2字节的话8位数字就要8×2×7=112字节,并且这样来回查询的话逻辑上也很复杂,耗比较长。
      请问各位,在实际产品当中一般是怎么解决这个问题的呢?
LCD裸屏.png

(我现在是按照1/2偏压的方式驱动的,效果不是非常好,需要以照片中这个奇怪的角度才能看清,估计这个屏可能是1/3偏压的)
发表于 2016-1-11 01:37 | 显示全部楼层
发表于 2016-1-11 01:42 | 显示全部楼层
实际应用中估计是要用驱动芯片来驱动的,直接用单片机驱动太费IO了,38pin要占多少个IO?至于段码分布无规律,你可以试下逐段点亮,然后做出一个表格分析下,应该是有规律的。
 楼主| 发表于 2016-1-11 03:15 | 显示全部楼层
fat32 发表于 2016-1-11 01:42
实际应用中估计是要用驱动芯片来驱动的,直接用单片机驱动太费IO了,38pin要占多少个IO?至于段码分布无规 ...

我也只是学习一下如何驱动液晶屏,有时候驱动简单的液晶屏并不使用专用的驱动芯片,而是直接用单片机解决,所以找了块屏幕试了试。
我是用Atmega16L驱动的,一共只有32个IO,驱动这个屏幕肯定是不够的。
这个屏幕虽然是捡来的完全无资料,但之前已经用信号发生器测量过所有引脚的功能了,要不然图中那三个数字都点不亮。
液晶屏详细信息.png

 楼主| 发表于 2016-1-11 03:18 | 显示全部楼层
其实也是有规律的,但比较奇怪,我不太会用。
每个数字位的A段、F段都在COM4上,B段、G段在COM3上,C段、E段在COM2上,D段在COM1上。详见楼上的图。
 楼主| 发表于 2016-1-11 03:28 | 显示全部楼层
本帖最后由 fqdatiancai 于 2016-1-11 03:32 编辑

我好像有点看明白了……
 楼主| 发表于 2016-1-11 03:46 | 显示全部楼层
Joe_Black 发表于 2016-1-11 01:37
https://goo.gl/5KhEgZ

https://xiaolaba.wordpress.com/2015/08/26/7-segment-lcd-glass-%E6%9C%89%E5% ...

他这个算法好像和我的差不多,也是定义了一堆段与引脚之间的逻辑关系。下面是我的程序的声明区和转换显示数据的函数。 定义区.png
转换显示数据.png

发表于 2016-1-11 07:33 | 显示全部楼层
没啥好方法,就是查表调用输出,自己搞个1621好弄些,啥外围元件也没有。
发表于 2016-1-11 09:15 | 显示全部楼层
定义 2个缓冲区,一个是显示缓冲区,第二个是屏幕刷新缓冲区(17字节(38-4)/2),如果是有硬件驱动的,第二个缓冲区可以省略掉

接着就是定义刷新缓冲器的刷新方式,也就是说按com口扫描还是按seg扫描了

根据段码表和扫描方式定义自己的数字段码表(这里数字排列一般都是有规律的,找出规律写出类似数码管的段码表)

接下来就是和显示缓冲区数据的连接,使用的时候只要往显示缓冲区写数据就好了

下面这个是我的段码屏 我的单片机是有lcd驱动的。所以没有定义刷新缓冲区

断码表
QQ截图20160111091146.png

刷新缓冲区格式
QQ截图20160111091308.png

显示缓冲区定义
QQ截图20160111090324.png

显示缓冲区和刷新缓冲区的数据转化
QQ截图20160111091440.png

 楼主| 发表于 2016-1-12 04:34 | 显示全部楼层
今天我又找了一块带有HT1621芯片的屏幕,驱动起来果然是轻松了不少。不过还是比较纠结与只用普通单片机驱动。
WP_20160112_007.jpg

这好像是某种电话计费装置的屏幕,下面4行共计4×16=64个“8”字,由6个HT1621芯片控制,目前只操控了其中一个,其它的程序里没写
WP_20160112_004.jpg

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-18 08:16 , Processed in 0.062446 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表