关于LCD12864液晶显示器、ST7920、Arduino、U2G8的一些值得记录的细节

本文详细介绍了LCD 12864屏幕的型号、电压版本选择、使用Arduino驱动的方法,特别是针对V0引脚、背光控制(BLA、BLK)以及对比度调整等进行了深入探讨,同时还分享了实际操作中的一些注意事项和技巧。
摘要由CSDN通过智能技术生成

这里我将记录下整个过程中所有的关键信息,有缘人得之。

一、型号简介

12864是用于LCD的名字,基本都是基于ST7920芯片来设计生产的。有12864ZA、ZB、ZC、ZW、T等等,应该不同厂家有自己不同名字。我的这块是12864ZW,引脚与12864ZB基本一致(除了背光BLA和BLK恰恰相反以外),我的背面没有写绘晶科技,有一些网上图片是有贴纸的,基本视同为绘晶科技的产品;

以上是我的屏,包括焊接之后的样子。

 

以上是网图。

二、屏幕支持的电压版本

屏幕分为5V和3.3V两种版本,5V比3.3V多10元钱,我为了便宜买了3.3V的屏幕,但是我推荐购买5V,少一点坑,下文会说;

三、如何使用Arduino驱动它

拿到屏幕之后,最关心的问题就是如何驱动,而驱动最关键的几个问题如下:

(一)并行还是串行。

这个好办,两种方式:硬件或软件。软件使用PSB引脚,高电平为并行,低电平为串行;硬件使用背部焊盘,S(Serial)代表串行、P(Parallel)代表并行,这是一个三个点点的焊盘,中间那个点跟S焊在一起就是使用串行。以上各大说明书上都有提到,值得注意的是如果硬件上指定了某一种,而软件上又冲突地指定另一种,这种不仅是不能用,更有甚者会伤及芯片,切记切记;

(二)U8g2

我使用串行,因为接线简单。使用Arduino的SPI接口,使用Arduino的U8g2库(它是U8glib的二代),不用多想,这个库写得非常抽象,可以适用于好多好多屏幕的驱动,非常香;这个库里有很多行用来声明屏幕的,反注释掉对应于屏幕的那一行。其中SW和HW分别代表模拟SPI和硬件SPI,这两个英文应该是Software和Hardware的缩写,硬件比软件更快,更直接。我使用硬件的,所以对应那一行为:

U8G2_ST7920_128X64_1_HW_SPI u8g2(U8G2_R0, /* CS=*/ 10, /* reset=*/ 8);

可以看出,需要指定的引脚非常少,因为全部都使用了硬件SPI的专用引脚,SPI总共要接3根,CS/SS(10)、MOSI(11)、SCK(13),这些不赘述。

(三)样图

没有意外的话,图形是有的,一切很完美,世界也很美好。

 

四、一些额外的细节研究

好,到这里并非结束,好戏才刚刚开始 ,下面来研究几个耐人寻味的细节。

(一)V0引脚

        凡是耍过这块屏幕的人,估计都不会忘记这个东西究竟耗费了自己多少时间和精力,下面是我比较确定的几项内容,尚不完全掌握板子全部的引脚和焊盘的情况,只能慢慢摸索,慢慢补充:V0为LCD驱动电压,范围是3.0~5.0V,用来调整屏幕对比度,电压越高,对比度越大。按理来说,用个电位器,给这个引脚施加电压就行了,但是这里又牵扯出几个问题:

1、VR1

背面有一个叫做VR1的焊盘,这里本应该是一个3x3的10K硬封电位器的,但是出厂时可能没有焊在上面,它本来正是调整对比度的,这也正是商品介绍中说的V0可不接,不接就用这个内部的来调。接的话,就内部电位器和外部电位器两者都可以调;

2、J1

还有一个J1的跳线焊盘,这个焊盘不短接的话,V0其实是与外部断开的,无论你怎么加电位器,都不可能引入电压给到芯片;

 3、V0~V4

可以看出,芯片内部还有V1、V2、V3、V4,但只有V0引出来用了,它们之间有如下关系需要维持:VDD>=V0>=V1>=V2>=V3>=V4。左边这一串电阻构成分压器,对应实物图的那一横排小电阻R1-R5,其中R6=0,R7未焊接。同时,正因为这些电阻值都是固定的,所以推荐的R10=10K电位器不是随便拍脑袋的,是内在决定的,也不要钻牛角尖。

4、20K

还会碰到一个值,叫做分压负载电阻总和,为20K,它是R1+R2+R3+R4+R5=4.7*4+2.2=21。不要跟这个电位器搞混淆了。

(二)BLA、BLK

1、推荐电压

BLA和BLK是背光的正负极,这里是推荐5V左右电压的,所以,如果逻辑电路使用了3.3V,那么这里需要另一个不同的电压才好使。虽然3.3V也会亮,但是在我的屏幕上有明显的顿挫感。

2、单电源供电

如果买的是5V的屏幕,那么单电源就可以了,很方便,并且还有一个更方便的方法:焊接短路J5和焊接短路J6,这招叫做“逻辑电路电压和LCD供电电压一致”。

3、电位器调整电压范围

都是5V的情况下,很多事情都变得顺滑。此时V0的调节电压也会比较容易设定,试想,如果逻辑电路用的3.3V,然后LCD用的5V,这个时候调节对比度,那么3.3V的电压只能覆盖5V的一部分。

 我用一块木块封装了屏幕,这样接线更直截了当,更稳定,更舒服。

 

 我做了几根杜邦线和排线,让连接进一步简化和稳定。

(三)Vout(VEE)

1、基于上面提及的电压问题,所以3.3V屏在Vout设置了一个升压(倍压)引脚,这个地方可以让3.3V的逻辑电路电压产生足够的电压来驱动LCD;2、Vout也是与外部断开的,因为缺少了R12;

(未完待续)

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

safirst

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值