×
嵌入式 > 技术百科 > 详情

简单实用的四线点阵液晶驱动方式

发布时间:2020-06-17 发布时间:
|

    摘要:介绍了一点阵液晶的一种四线驱动方法,该方法使用四线控制,连接简单、成本较低,可产用于各种汉字及图形点阵液晶的显示。

    关键词:点阵液晶显示屏 四线控制电路 汉字显示

随着科学技术的飞速发展,电子产品越来越向智能化、小型化、人性化、低功耗等方面发展。而液晶显示屏的兴起,为上述要求的实现提供了可能。液晶显示屏大致可分为段式、字符式、点阵式,或者单色、彩色等。大多液晶显示屏都实现了标准化和模块化,采用通用的控制芯片(例如SED1330、SED1520、HD61202等)实现与单片机等的简单连接。在实际应用中,考虑到产品并行的数据线和控制线连接。在实际应用中,考虑到产品的成本和体积,采用并行的数据线和控制线连接,使用起来不是很方便。因此希望采用标准的工业总线I2C、SPI等连接,而这类产品却很少见。本文巧妙地利用液晶显示模块的特点,采用一片74LS164实际液晶的四线控制。电路简单实用。

1 点阵液晶显示模块简介

本文介绍的是一种采用SED1520芯片控制的122×32图形点阵液晶显示屏,它主要由驱动/列驱动及122×32全点阵液晶显示器组成,可完成图形显示,也可显示七个半(16×16点阵)汉字。主要技术参数和显示特性如下:

·电源:VDD为+3V~+5V;LCD外接驱动电压VDD-VLCD=5.0V。

·显示内容:122(列)×32(行)点。

·显示颜色:黄绿底蓝字。

·显示角度:6点钟直视。

·STN正视反射模式。

·驱动方式:1/32 Duty,1/6 Bias。

·驱动电流:最大240μA

液显示模块驱动原理图如图1所示。

液晶显示模块引脚特性如表1所示。

表1 液晶显示模块引脚特性

管脚号 管脚名称 电平 管脚功能描述
1
2
3
4
5
6
7
8

9~16
VDD
VSS
VLCD
RES
E1
E2
R/W
A0

DB0~DB7
3V~+5V
0V
0~+5V
H/L
H/L
H/L
H/L
H/L

H/L
电源电压
电源地
LCD外接驱动电压
复位信号
读写使能信号(MASTER)
读写使能信号(SLAVE)
读写选择信号
D/I="H",表示DB7~DB0为显示数据
D/I="L",表示DB7~DB0为指令数据
数据线

部分传送指令表如表2所示。

表2 部分传送指令表

指  令 代    码 功    能
R/W D/I D7 D6 D5 D4 D3 D2 D1 D0  
全部显示 0 0 1 0 1 0 1 1 1 1/0 全部显示开关,0:关 1:开
显示开始行 0 0 1 1 0 开始行(0~31) 显示RAM中数据的起始行
页地址设置 0 0 1 0 1 1 1 0 0~3 设置显示页地址 X address
列地址设置 0 0 0 列地址(0~121) 设置显示列地址 Y address
写显示数据 0 1   写入的数据 写显示数据到RAM
静态驱动 0 0 1 0 1 0 0 1 0 0/1 1:静态驱动,0:动态驱动
刷新率设置 0 0 1 0 1 0 1 0 0 0/1 1:1/32,0:1/16
结束 0 0 1 1 1 0 1 1 1 1 释放读写
复位 0 0 1 1 1 0 0 0 1 1 设置为初始状态

2 四线点阵液晶显示屏驱动电路

四线点阵液晶显示屏驱动电路如图2所示。

系统采用一片74LS164以串入并出方式与点阵液晶显示模块FM12232C连接,通过四条信号线(SDA串行数据线、CLK/A0串行时钟线即液晶显示模块的A0数据/指令控制线、E1主驱动芯片使能线、E2从驱动芯片使能线)实现点阵液晶显示屏的驱动。与液晶显示模块所提供的电路连接方式相比,四条线与单片机2051连接至少减少7根口线,这样大大节省了小型电子产品中宝贵的单片机口线资源,使产品更加人性化和智能化。

    根据液晶显示屏的控制指令及时时序可知,只要在对模块写入数据的同时保证模块指令操作延时足够,就可以不检查模块状态,达到直接控制的目的。点阵液显示屏的一个点对应存储器中的一位,置位则显示,清除则不显示,因此只要控制相应的数据位就可控制液晶显示屏的显示。液晶显示模块的屏示数据采用分页方式存储(存储器的划分请能阅相关资料)。

数据传送时,首先选择使能端“E1”或“E2”,送数据到74LS164,然后送指令/数据选择信号“A0”,关闭使能端,实现数据和指令的传送,使液晶显示屏显示图形或汉字等。

3 相关软件

相关软件采用汇编语言编写。由于篇幅限制,只提供传送指令和数据到液晶显示模块的子程序,并通过初始化程序和显示汉字程序介绍如何使用上述子程序。关于显示汉字子程序、其它显示字符串、动画、图形以及在Windows下提取字库和图形库相关程序,如有需要请与作者联系。

源程序如下:

sda bit p1.7;定义sda线

clk bit p1.6;定义clk线

e1 bit p1.5;定义master使能

e2 bit p1.4;定义slave使能

a0 bit p1.6;定义数据/指令选择线

outmi: ;送显示指令到master SED1520

setb e1 ;master使能

clr e2 ;slave关闭

lcall trndata ;传送一个字节

clr a0 ;设置此字节为指令

clr e1 ;master关闭

ret

outsi: ;送显示指令到slave SED1520

setb e2

clr e1

lcall trndata

clr a0

clr e2

ret

outmd: ;送显示数据到master SED1520

setb e1

clr e2

lcall trndata

setb a0

clr e1

ret

outsd: ;送显示数据到slave SED1520

setb e2 ;slave使能

clr e1 ;master关闭

lcall trndata ;传送一个字节

setb a0 ;设置此字节为显示数据

clr e2 ;slave关闭

ret

trndata: ;传送一个字节到液晶显示模块

push a ;保存原始数据

setb sda ;sda线置位

setb clk ;clk线置位

mov r7,#08h

trn_loop:

rlc a

clr clk

mov sda,C

setb clk

djnz r7,trn_loop

pop a ;恢复原始数据

ret

init: ;初始化液晶显示模块

mov a,#0e3h ;LCD复位

lcall outmi

lcall outsi

mov a,#0aeh ;关显示

lcall outmi

lcall outsi

mov a,#0a4h ;动态驱动

lcall outmi

lcall outsi

mov a,#0a9h ;刷新率选择1/32

lcall outmi

lcall outsi

mov a,#0a0h ;ADC选择右选

lcall outmi

lcall outsi

mov a,#0eeh ;设置列地址0

lcall outmi

lcall outsi

mov a,#0c0h ;设置显示开始行0

lcall outmi

lcall outsi

mov a,#0afh ;开显示

lcall outmi

lcall outsi

;下面为汉字显示

mov r1,#20 ;汉字显示的起始为第20列

mov dptr,#tian ;“天”字字库地址

clr 10h ;10h='0'显示在第一行

mov 1fh,#10h ;1fh='10h'表示为16×16点阵

lcall dishz ;调用显示汉字子程序

;子程序名称: dishz

;dptr: 对应字库的起始地址

;r1: 显示数据在122列中的起始列

;位10h: 0——显示在第一行,1——显示在第二行

;1th: 显示汉字16×16=10h,显示字符16×8=8h

 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
分拣机器人的工作原理是什么