自制单片机之六……LCD12864的驱动

c51单片机   2007-08-26 23:20   阅读217   评论0  
字号: 大  中  小
LCD12864的驱动
LCD12864在市面上主要分为两种,一种是采用st7920控制器的,它一般带有中文字库字模,价格略高一点。另一种是采用KS0108控制器,它只是点阵模式,不带字库。很可惜,我的这块就是KS0108控制器不带汉字库的,不过不打算用它专门显示文本,也就无所谓了。
LCD12864模块的20个引脚定义如下:
1。Vss      逻辑电源地
2。VDD 逻辑电源正 5v
3。V0  LCD驱动电压
4。RS  数据/指令选择:高电平为数据,低电平为指令
5。R/W 读/写选择:高电平为读数据,低电平为写数据
6。E  读写使能,高电平有效,下降沿锁定数据
7。DB0 数据输入输出引脚
8。DB1 数据输入输出引脚
9。DB2 数据输入输出引脚
10。DB3 数据输入输出引脚
11。DB4 数据输入输出引脚
12。DB5 数据输入输出引脚
13。DB6 数据输入输出引脚
14。DB7 数据输入输出引脚
15。CS1 片选择号,低电平时选择前64列
16。CS2 片选择号,低电平时选择后64列
17。RET 复位信号,低电平有效。
18。VEE 输出-15v电源给V0提供驱动电源
19。A  背光电源LED正极
20。K  背光电源LED负极
具体电路图如下:
制做如下:

接口说明:

装上12864
具体的电路还是两个电阻。一个背光限流电阻。一个液晶驱动电压调节电阻。背光电阻还是任何时候在19、20脚与电源之间串上个100欧电位器接上电源。调节电位器到合适亮度。具体值最好是到调试完程序能够正常显示后再将阻值确定换成固定电阻。液晶驱动电压的调整在数据线、电源线接好的前提下是在Vee(-15v)和地之间接一个电位器。中间接V0,通过调节电位器来调节V0上的电压。当V0上为-15V时为全暗(液晶显示为全黑)。当V0为0V时为全亮。调节电位器使屏幕从全暗刚好变到亮时,便可进行程序的调试。待屏幕显示正常后,进行对比度的细调,然后测量这两边的阻值在地和V0之间、V0和Vee之间换成两个固定电阻焊上就好了。注意在V0的电压是在一个很小的范围有效。我的就是在-2.2——-2.5这个范围。仔细调节V0和地之间的电阻使V0上的电压在2.3V。
更换为固定电阻后的装配图:
下面说说具体的驱动:
先来了解一下LCD12864的内部控制结构:见图
可以看出12864屏是分为左、右两块控制的。所有对屏幕的操作要受片选CS1、CS2来控制。
我们再来看一看对屏幕操作数据与屏幕点阵的排布关系:见下图。

从上图可以看出数据按字节在屏幕上是竖向排列的。上方为低位,下方为高位。因此在横向上(也就是Y)就一共是128列数据。分为CS1和CS2两个64列来写入。在竖方向上(也就是X)一字节数据显示8个点,竖向64个点分为8个字节,称做8页(X=0-7)。了解这些后我们就知道要满屏显示一张图就要从y=0…127、X=0…7一共写128×8=1024个字节的数据。同样在AT89S51中存一张图就要1024个字节的空间。
好!下面我们来了解对LCD12864进行操作的一些指令。
下面对上图的指作解释:
1.显示开关控制(DISPLAY ON/OFF)
D=1:开显示(DISPLAY ON)    意即显示器可以进行各种显示操作
D=0:关显示(DISPLAY OFF) 意即不能对显示器进行各种显示操作
2.设置显示起始行(DISPLAY START LINE)
前面在Z地址计数器一节已经描述了显示起始行是由Z地址计数器控制的。A5~A0    6位地址自动送入Z地址计数器,起始行的地址可以是0~63的任意一行。
例如: 选择A5~A0是62,则起始行与DDRAM行的对应关系如下:
DDRAM 行:62 63    0    1    2    3 ·················28 29
屏幕显示行: 1    2    3     4    5    6················· 31 32
3.设置页地址(SET PAGE “X ADDRESS”)
所谓页地址就是DDRAM的行地址,8行为一页,模块共64行即8页,A2~A0表示0~7页。读写数据对地址没有影响,页地址由本指令或RST信号改变复位后页地址为0。页地址与DDRAM的对应关系见DDRAM地址表。
4.设置Y地址(SET Y ADDRESS)
此指令的作用是将A5~A0送入Y地址计数器,作为DDRAM的Y地址指针。在对DDRA M进行读写操作后,Y地址指针自动加1,指向下一个DDRAM单元。

5.读状态(STATUS READ)
当R/W=1    D/I=0时,在E信号为“H”的作用下,状态分别输出到数据总线(DB7~DB0)的相应位。
BF:       前面已叙述过(见BF标志位一节)。
ON/OFF: 表示DFF触发器的状态(见DFF触发器一节)。
RST:      RST=1表示内部正在初始化,此时组件不接受任何指令和数据。
6.写显示数据(WRITE DISPLAY DATE)  
D7~D0为显示数据,此指令把D7~D0写入相应的DDRAM单元,Y地址指针自动加1。
7.读显示数据(READ DISPLAY DATE)  
此指令把DDRAM的内容D7~D0读到数据总线DB7~DB0,Y地址指针自动加1。
再帖一下接口时序图
1.写操作时序

2.读操作时序

时序参数表:
又帖了这么多指令呀时序图什么的,看了就头晕。我也和你一样不爱看这些枯燥的东西。
下面实际写些程序让屏幕亮起来。

运行:

lcd12864资料相关推荐

  1. 【资料转发分享】基于8086和LCD12864液晶显示仿真设计、基于8086计算器系统仿真设计、基于8086家具房间灯光控制设计-设计资料

    1184基于8086和LCD12864液晶显示仿真设计-设计全套资料 本设计完整的实现基于8086红外报警仿真设计,protues仿真中, 红外传感用按键模拟(红外原理也是通过高低电平来检测感知的), ...

  2. FPGA 资料搜集记录

    一套典型的开发板,其资源扩展板目前有卖两个版本 扩展板V5.0 V5系列是在V3的基础上,把flash由V3的2MByte统一升级为8Mbyte,V5实验板在V3的基础上, 增加了两个4位数码管,10 ...

  3. LCD12864 液晶显示-汉字及自定义显示(串口)

    在网上找了许久,发现FPGA用串口驱动LCD12864程序很少,基本上没有.刚开始窃喜,中间郁闷,最后还是高兴,为什么这样说呢!头一回在没有参考程序的情况下,完全是照时序图写(自信),中间调试过程遇到 ...

  4. 51单片机的LCD12864电子秤设计

    硬件方案 本设计利用压力传感器采集因压力变化产生的电压信号,经过电压放大电路放大,然后再经过模数转换器转换为数字信号,最后把数字信号送入单片机.单片机经过相应的处理后,得出当前所称物品的重量及总额,然 ...

  5. 进阶项目(6)LCD12864液晶屏幕设计讲解

     写在前面的话 液晶(LCD)显示具有功耗低.体积小.重量轻.超薄等许多其他显示器无法比拟的优点,近几年被广泛应用于FPGA控制的智能仪器.仪表和低功耗的电子产品中.LCD可分为段位式LCD.字符式L ...

  6. 51单片机学习:LCD12864液晶显示实验(带字库)

    实验名称:LCD12864液晶显示实验(带字库) 接线说明:     实验现象:下载程序后,LCD12864上显示汉字字符信息 注意事项:                               ...

  7. STM8控制LCD12864液晶屏实验

    本文分以下几个部分: 第一部分:并口传输显示中英文 第二部分:并口传输显示图片 第三部分:串口传输 首先说明,我使用的LCD12864是采用ST7920控制器芯片的,操作LCD12864其实是在操作S ...

  8. 【资料分享】基于51单片机的智能指纹考勤系统设计-原理图-PCB-程序-报告、基于51单片机和MAX1898的智能手机充电器设计

    1661[毕设课设]基于51单片机的智能指纹考勤系统设计-原理图-PCB-程序-报告 摘 要 随着科学技术的不断发展带动着电子行业的地位越来越重,现在电子产品几乎在社会的各个领域都可以见到.这些技术的 ...

  9. STM32 LCD12864 原理和实现代码

    硬件原理图 LCD12864.c 你主要看每个功能函数是如何实现的 /***************************************** 按照自己的硬件电路图来设置* -------- ...

  10. 基于51单片机的SHT11温湿度检测调节系统(LCD12864显示)

    目录 具体实现功能 设计介绍 51单片机简介 资料内容 仿真实现(protues8.7) 程序(Keil5) 全部资料(压缩文件) 具体实现功能 (1)实时检测温湿度值,LCD12864分别显示温度值 ...

最新文章

  1. 设计模式之五 责任链模式(Chain of Responsibility)
  2. winform checkbox要点击两次_开源C# Winform控件库SunnyUI强力推荐
  3. 信息学奥赛C++语言:最大数max(x,y,z)
  4. 常见的Java基础的面试题
  5. 数据分析中数据概览神器pandas_profiling介绍
  6. Facebook怎样开发软件:工程师驱动的文化
  7. 超级终端连接华为交换机_win10深度系统怎么使用超级终端连接华为交换机?
  8. 通达信 移动平均算法_高德网络定位算法的演进
  9. 01 基本句型 + 补语
  10. 2018美国大学计算机科学,美国大学计算机2018最新排名
  11. 记录一次Tx_LCN连接失败的问题( There is no normal TM )
  12. 家用计算机键盘图,电脑键盘示意图,教您如何正确的使用键盘
  13. 基于Pytorch实现自建数据库的深度神经网络模型案例
  14. 蚁群优化算法之精华蚂蚁系统和排列蚂蚁系统学习笔记
  15. 轻量级封装DbUtilsMybatis之四MyBatis主键
  16. 什么是Linux内存管理中的RSS和VSZ
  17. iOS高德地图路径选择
  18. OJ---腐烂的橘子
  19. 图像恢复系列之(6)超分(7)反光去除(8)光斑去除 (9)阴影去除(10)水下图像失真去除 | ICCV2021生成对抗GAN...
  20. linux下几种目标文件的分析

热门文章

  1. CAPL学习之路-SOME/IP相关函数
  2. 概率算法/拉斯维加斯 蒙特卡洛 舍伍德算法
  3. 全国省市区数据SQL - 2017年数据(三级联动)
  4. GitHub 优秀的 Android 开源项目和框架
  5. 完整制作网吧系统全过程
  6. 汽车汽配行业供应链协同管理系统一体化管理,SCM供应链提升企业竞争力
  7. 农产品SCM供应链协同系统解决方案
  8. 【iOS自动化测试】第一章:方案调研
  9. IntelliJ IDEA之Java开发常规项目配置介绍
  10. Java 映射(Map)和集合(Set) 用法总结