一乐电子

一乐电子百科

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

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 6353|回复: 7
收起左侧

[其他综合] 一乐超值 128*32LCD的三种驱动方法和代码

[复制链接]
发表于 2009-12-30 23:34 | 显示全部楼层 |阅读模式
本帖最后由 lordyeye 于 2009-12-31 00:21 编辑

一乐超值 128*32LCD,采用ST7920芯片,品质不错,成本不低,可惜内置的不是中文字库,显示中文很麻烦,但是其中的ascii码表与一般标准的液晶无异,所以可以替代大部分1602液晶,但是由于是128个像素,所以还不当成真的1602用,不过做个1502也不错哦。

矽创ST7920PDF   ST7920V40_E.pdf (696.88 KB, 下载次数: 1551)

ST7920有三种驱动方式,三线串行,四位并行,标准的八位并行。

今天没事,按照ST7920官方的PDF上的时序图,做了3套程序来驱动这个3元液晶。


三线串行:

连线方式:
1.jpg
程序: 三线驱动.rar (30.37 KB, 下载次数: 851)
优势:节省IO口
不足:功能不强,据说7920一些高级的功能比如画线等,无法实现(别人的结论,还未考证)


四位并行:

连线方式:
2.jpg
优势:懒人专用,在CVAVR中可以直接调用LCD驱动函数,傻瓜式操作,简单之极。(但是LCD_GOTOXY命令不能使用,定位光标位置需要自己稍微修改一下函数)
不足:占用6个IO口(R/W直接接地,只写不读),稍微有点多

八位并行:

连线方式: 3.jpg
程序: 八位驱动.rar (24.28 KB, 下载次数: 839)
优势:最标准的操作,功能最强。
不足:占用IO口太多,需要3+8=11个

128*32伪装成1602需要注意的事项:

1.每行只能显示15个 字母 数字 符号

2.1602的显示首地址位置是0X80与128*32一样,
但是第二行起始地址1602是 0X40   128*32是0X90,这点很重要,如果还是按照0X40来写,第二行什么都显示不出来。

3.控制指令略微有区别,具体请看PDF,ST7920要高级一些,比如支持反白等特效。


三段代码中 三线串行/八位并行 是根据时序图写出来的,并且测试成功,属于底层驱动,可以直接移植到各种MCU平台上,当然在高速的DSP或者ARM上,是需要考虑指令的延时的,传统的低速8位单片机上直接移植问题不大,仅需修改引脚定义即可。


四位并行只可在CVAVR平台上编译和使用,适合懒人使用,呵呵。

测试环境:ATMEGA16 (内部晶振4M)
 楼主| 发表于 2009-12-30 23:49 | 显示全部楼层
4线并行 刚才发现有点问题,等测试好了再传
发表于 2010-1-1 00:13 | 显示全部楼层
谢谢分享!
发表于 2010-1-2 10:40 | 显示全部楼层
不错,LZ强人!!
发表于 2010-1-7 20:40 | 显示全部楼层
这个就是带中文字库的12832,而且是串口驱动的http://item.taobao.com/auction/item_detail-0db2-371a0f8bcc88946cb1cab5e265e56266.htm
DSCF0431.JPG
发表于 2010-10-24 00:18 | 显示全部楼层
三线串行方式需要改电路吗?
发表于 2010-10-24 07:14 | 显示全部楼层
好像要把p/s那根线改一下的。
楼主有发过图片的,

本版积分规则

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

GMT+8, 2024-5-27 05:33 , Processed in 0.072710 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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