产品动态
全国统一服务热线:
15382323032
客服QQ:3234659108
手机:15382323032
地址:浙江省杭州市西湖区文一西路830号蒋村商务中心B楼2-8007室
128*64点阵液晶屏程序设计的教程
文章出处:原创 人气:发表时间:2018-01-11
使用PROTEUS的仿真软件中的液晶显示屏(型号JX12864K1G)探索点阵液晶屏的编程方式;该型号液晶屏的内部是无字库的,只能够自建字模去进行字符显示(使用方法和图形的显示方式是一致的);字模可以通过“字模提取”软件提取,可以省去手工建模
的麻烦。
整体的电路图
功能说明:该电路是使用的AT89C52作为控制器,电路的左下方是时钟芯片DS1302;用液晶屏来显示当前的时间、若干汉字、一幅小图等等内容;
电路连线:
(1)液晶模块: E=P2^0; RW=P2^1; RS=P2^2; CS2=P2^3; CS1=P2^4; RST(复位信号)=5V;
数据口D0~D7接单片机P0口;
(2)时钟芯片DS1302: RST = P3^6 ; CLK = P1^6 ; SDA = P1^7 ;
电路仿真结果如下图:
首先我们要分析下该液晶模块内部控制器的工作原理:
管脚功能:
管脚名称 | LEVER | 管脚功能描述 |
VSS | 0 | 电源地 |
VDD | +5.0V | 电源电压 |
V0 | - | 液晶显示器驱动电压 (在PROTUES仿真软件中可不接) |
RS | 1/0 |
RS=0,表示DB7∽DB0为显示数据 RS=1,表示DB7∽DB0为显示指令数据 |
R/W | 1/0 |
R/W=1,E=1数据被读到DB7∽DB0 R/W=0,E=“1→0”,数据被写到IR或DR |
E | 1/0 |
R/W=0,E信号下降沿锁存DB7∽DB0 R/W=1,E=1, DDRAM数据读到DB7∽DB0 |
DB0~DB7 | 1/0 | 数据线 |
1/0 | 0:选择芯片(左半屏)信号 | |
1/0 | 0:选择芯片(右半屏)信号 | |
1/0 | 复位信号,低电平复位 | |
VOUT | -10V | LCD驱动负电压 (在PROTUES仿真软件中可不接) |
1. 指令寄存器(IR)
IR是用于寄存指令码,与指令寄存器寄存指令相对应。当RS =0时,在E信号下降沿的作用下,指令码写入IR。
2.数据寄存器(DR)
DR是用于寄存数据的,与数据寄存器数据相对应。当RS =1时,在下降沿作用下,图形显示数据写入DR,或在E信号高电平作用下由DR读到DB7∽DB0数据总线。DR和DDRAM之间的数据传输是模块内部自动执行的。
3.忙标志:BF
BF标志提供内部工作情况。BF=1表示模块在内部操作,此时模块不接受外部指令和数据。BF=0时,模块为准备状态,随时可接受外部指令和数据。利用STATUS READ指令,可以将BF读到DB7总线,检验模块工作状态。
4.显示控制触发器DFF
此触发器是用于模块屏幕显示开和关的控制。DFF=1为开显示(DISPLAY OFF),DDRAM的内容就显示在屏幕上,DFF=0为关显示(DISPLAY OFF)。DDF的状态是指令DISPLAY ON/OFF和RST信号控制的。
5.XY地址计数器
XY地址计数器是一个9位计数器。高3位是X地址计数器,低6位为Y地址计数器,XY地址计数器实际上是作为DDRAM的地址指针,X地址计数器为DDRAM的页指针,Y地址计数器为DDRAM的Y地址指针。
X地址(页地址,页的概念迟点会解释)计数器是没有记数功能的,只能用指令设置。
Y地址(列地址)计数器具有循环记数功能,各显示数据写入后,Y地址自动加1,Y地址指针从0到63。
6.显示数据RAM(DDRAM)
DDRAM是存储图形显示数据的。数据为1表示选择显示,数据为0表示选择非显示。DDRAM与地址和显示位置的关系见DDRAM地址表。
7.Z地址计数器
Z地址计数器是一个6位计数器,此计数器具备循环记数功能,它是用于显示行扫描同步。当一行扫描完成,此地址计数器自动加1,指向下一行扫描数据,RST复位后Z地址计数器为0。
Z地址计数器可以用指令DISPLAY START LINE预置。因此,显示屏幕的起始行就由此指令控制,即DDRAM的数据从哪一行开始显示在屏幕的第一行。此模块的DDRAM共64行,屏幕可以循环滚动显示64行。
12864LCD的指令系统
该类液晶显示模块(即KS0108B及其兼容控制驱动器)的指令系统比较简单,总共只有七种。其指令表如表2所示:
指令名称 | 控制信号 | 控制代码 | ||||||||
R/W | RS | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 | |
显示开关 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1/0 |
显示起始行设置 | 0 | 0 | 1 | 1 | X | X | X | X | X | X |
页设置 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | X | X | X |
列地址设置 | 0 | 0 | 0 | 1 | X | X | X | X | X | X |
读状态 | 1 | 0 | BUSY | 0 | ON/OFF | 0 | 0 | 0 | 0 | |
写数据 | 0 | 1 | 写数据 | |||||||
读数据 | 1 | 1 | 读数据 |
R/W RS | DB7 DB6 DB5 DB4 DB3DB2DB1 DB0 |
0 0 | 0 0 1 1 1 1 1 1/0 |
2、显示起始行(ROW)设置指令
R/W RS | DB7 DB6 DB5 DB4 DB3DB2DB1 DB0 |
0 0 | 1 1显示起始行(0~63) |
3、页(PAGE)设置指令
R/W RS | DB7 DB6 DB5 DB4 DB3DB2DB1 DB0 |
0 0 | 1 0 1 1 1页号(0~7) |
4、列地址(Y Address)设置指令
R/W RS | DB7 DB6 DB5 DB4 DB3DB2DB1 DB0 |
0 0 | 0 1显示列地址(0~63) |
用读、写指令读出该单元中的内容或向该单元写进一个字节数据。
5、读状态指令
R/W RS | DB7 DB6 DB5 DB4 DB3DB2DB1 DB0 |
1 0 | BUSY 0 ON/OFF 0 0 0 0 |
BUSY: 1-内部在工作 0-正常状态
ON/OFF:1-显示关闭 0-显示打开
: 1-正常状态 0- 复位状态
在BUSY和状态时,除读状态指令外,其它指令均不对液晶显示模块产生作用。
在对液晶显示模块操作之前要查询BUSY状态,以确定是否可以对液晶显示模块进行操作。
6、写数据指令
R/W RS | DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
0 1 | 写数据 |
R/W RS | DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
1 1 | 读显示数据 |
12864由两个完全相同的左右半屏拼成,两个半屏的显示通过CS1和CS2来选择,如CS1=0、CS2=1时选择左半屏显示,每页占8行(指令0xb8~0xbf分别指定页0~页7地址);
写入液晶的数据在屏上为纵向显示,如在指定位置(页0第0列)显示12H:
0xb8 指定页0
0x40 指定列0
0x12 送入数据,该数据的最高位对应“该页该列”最下端的点(第0行)
下面以“你”字为例,分析其字模(16*16点阵,占两页位置)
从最左边上半部开始
上页字模0x80,0x40,0xF0,0x2C,0x43,0x20,0x98,0x0F,0x0A,0xE8,0x08,0x88,0x28,0x1C,0x08,0x00
下页字模0x00,0x00,0x7F,0x00,0x10,0x0C,0x03,0x21,0x40,0x3F,0x00,0x00,0x03,0x1C,0x08,0x00
上一篇:12864液晶模块的介绍 下一篇:LCD1602的自定义点阵字符屏
最新资讯
- 2024-07-05 高亮液晶屏在工业和航空领域的应用
- 2024-07-05 低温环境下工业液晶屏的性能差异分
- 2024-06-25 立煌的LH0255ZJ01条形屏的相关介绍
- 2024-06-14 高温对工业液晶显示屏封装材料的影
- 2024-06-12 京东方MV238FHB-NG0的简介
- 2024-06-12 深入探讨宽屏分辨率的工作原理
- 2024-06-12 深入探讨宽屏分辨率的工作原理
- 2024-06-06 如何选择适合自己的宽屏触摸屏产品
- 2024-06-06 极端环境挑战下超宽温液晶屏的应用
- 2024-06-05 条形屏是如何根据客户的需求来进行