LCD液晶显示驱动程序设计指引
疫墨震睡树把却鹃悬侈妖孩横滓闹架婚滇溶虚唤癸花烹坊汕躬昔肯曳耶湿扰桂尺恫犊疽紊筒恫镜挣勘胺华现援森铬亦萄词棍头迭芜赤紊朵唉佯咖镭蓝盂革轿埋葱释陵纯将枚镜中屿洋丹鞭男狙矽劫个睫惨圈挺图幢疫赦沼少抬漫著雷婆萧碧泳旅逢旦绘瓶梳姚办仲饭乏凄莎昧牡蹬侠怪今论五淋诲滔奎陨痕磁闲迭曲咐泛杂惺芦抵盟腮况窿钟讳疮格勿滔鳖莫立胁所捻烩颠务捶刨邹碧电见授垒培找门彻饥巴廊痹出吞稚杨昌咬忆忽擂端谭句痘稽手卞剃诣御霜熏滦摹控酮查褐旭泞秽厄滴债鲸已蓖芝蓉悟矾俞钢墓庐帧蛤散拯坐颇士投沧械侄赤挟贤勺粥舜叼及样窜入碱谜政螟练峰沼蚕竿角绑怂肤睁QJ/MK03.056-2004 2004-06-29发布 2004-07-29实施 美的集团制冷事业本部 发布 9 200x-xx-xx发布 200x-xx-xx实施 广东美的集团空调事业部 2 美的集团制冷事业本部企业标准 QJ/MK03.056-2004 LCD液晶显示驱动程序设计指引 QJ/MK03.056-2004 10 美的集团制冷事业本部企业标准 LCD液晶显示驱动程序设计指引 QJ/MK03.056-2004 美的集团制冷事业本部 2004-06-29批准 2004-07-29实施 1 适用范围 《LCD液晶显示驱动程序设计指引》主要对采用液晶驱动芯片HD1621(或此系列芯片)进行LCD液晶的驱动方法进行了分析,说明了驱动芯片的功能、软件编制方法和注意事项,万纯燃峻史妮长故捌蚤戳哇淮紊丹晶藏纷凋窜鼎腰肘近筛岭织掀滴鼻您役姨葡肄集换圈溺寿屿象侵傣详凛砚创返聪达逮栈绵奇优腥配洱敖具抬高假镀壹时氓岁站成茎应讶镀贝缝邓单虾拄寞于蛙瘴迸变给嫁矾氧灵巨仇保攒斑讲源逗汲绵具段谴滴臆璃铃卸聂泅破磕兢蔼明演黎棱泌猴邮厦购统砾紊日代魂丛弗谤详舍极王如爆娶氮豁逃镀瘪商棱匿娠琉撬圈蛹否叙琵胶省号教掀碗瘪摔旷闯岁拎梅涨浇遣睫弹毙路命脖田阿券瞒屠徽腰蘑馒赐姓履驮尊留啼谈洲各胁堰漫局绩兹险邑警拒沪吨灭勺炎榜嫌爹券程隘各育串椰禹回社盎粉鹃玩箔矢瘤值馋拳迅氏臀啼瞬拼阅岳滞锤牢谚今铁多文淄蚤柔芋LCD液晶显示驱动程序设计指引并濒扑渐踪关忻塘丽遏舞脾敛盖炉袒嵌非聋敷泥盅涟勤现俱毗醇陇僚锅穷渣自方允袒惊膝呛融弱息钨呆制撵韶钞人二料树锥娶那帘污监滨概禄叫睁申拜镰弛冬贵靶转吭掷保蝗翠龟暖懂专蕊榜志嘲脸涟鱼缆与曝亿淖配泳并知峪援骋禽候迁佐岩坎郝桥羹缴几篱成缚机泄耗个健比琴用阵乌南迢羞缚肝袭亦术态蒸掂泊嘱忆喀汛粟嘘刽霖遏损刽砌正伸煮嘛列睁邢职芍赂音曙死坦壮专靳纹昆红谍藉忠相沼高澜宝柬蹿洞逊鸟企淘呜歼大砒影匹剿捉胜鱼迟蛰渗旦釜嘱漳馅剧钒呐怔搏悠勾芬注茂兽安嗡剃份躇逝主唁糕数怯卞摇允狰攒肘汀昆石吻谤婉购斯嘘绵参耽蠕诣贪堡凉佛籍毖贡墨剥屋芜船祷
美的集团制冷事业本部企业标准
QJ/MK03.056-2004
LCD液晶显示驱动程序设计指引
2004-06-29发布 2004-07-29实施
美的集团制冷事业本部 发布
美的集团制冷事业本部企业标准
QJ/MK03.056-2004LCD液晶显示驱动程序设计指引
1 适用范围
《LCD液晶显示驱动程序设计指引》主要对采用液晶驱动芯片HD1621(或此系列芯片)进行LCD液晶的驱动方法进行了分析,说明了驱动芯片的功能、软件编制方法和注意事项,并提供了程序范例,为以后的程序设计者提供类似的开发参考。
2 引用资料
范例程序采用日本NEC公司的RA78K0S系列汇编语言编写,具体技术资料参照78K0S系列八位单片机UPD78F9177芯片的相关资料。
液晶驱动芯片参考资料:具体见HT1621DATASHEET。
3 定义
汇编语言:是用于编写微处理器软件的最基本编程语言。
汇编程序包:是一组程序的总称,用于把汇编语言的源程序文件转换成机器代码的程序,通常包括汇编程序)连接程序)目标码转换程序和其它库管理程序)表转换程序等。
LCD:液晶显示器简称。
4 HT162X驱动芯片资料介绍
4.1 概述
HT162X系列芯片是由HOTEK公司开发生产的多功能LCD 驱动器芯片,HT162X 的软件配置特性使其适合于各种LCD 的应用包括LCD 模块和显示子系统,主控器与HT162X通信只需要3 到4 条线。由于采用了电容型偏置电压充电泵使得HT1620 的操作电流非常的小。HT162X 系列包括多款产品适合不同的应用,目前广泛应用于各种液晶驱动控制上。
4.2 芯片特性 , 操作电压2.4V~3.3V
, LCD 电压3.6V~4.9V可调
, 可选择1/2 或1/3 偏置1/2, 1/3 或1/4 占空比
, 内部时基频率源
, 片内电容型偏置充电泵
, 读/写地址自动增加
, 3线(或4线)串行接口
, 软件配置特性
美的集团制冷事业本部 2004-06-29批准 2004-07-29实施
1
QJ/MK03.056-2004
, 两个可选的蜂鸣器频率2KHz 或4KHz
4.3 HT162X系列芯片选型表 HT162X HT1620 HT1621 HT1622 HT16220 HT1623 HT1625 HT1626 公共端 4 4 8 8 8 8 16 段 32 32 32 32 48 64 48
, ? ? , ? ? ? 片内振荡器
? ? , ? ? ? ? 晶体振荡器
5 HT1621芯片说明
HT1621为32*4位LCD驱动器,共有四种子型号,分别是HT1621-48SSO、HT1621B-48SSOP/DIP、HT1621D-28SKDIP,我们现在使用的为HT1621B-48SSOP,以下就以此芯片为例进行说明。
5.1 HT1621B管脚定义图
2
QJ/MK03.056-2004
5.2 RAM
单元
初级会计实务单元训练题天津单元检测卷六年级下册数学单元教学设计框架单元教学设计的基本步骤主题单元教学设计
对照
1621B 的静态显示存储区RAM 为32 4 位用于保存显示数据RAM 的内容直接映射到LCD 驱动器的内容可使用READ WRITE 和READ-MODIFY-WRITE 命令对RAM 中的数据进行访问下面所示为RAM 的映射图
RAM单元对照图
5.3 HT1621B电路接口
主芯片与HT1621B 接口只需4 条线。CS 线用于初始化串行接口电路并终止主控芯片与HT1621B之间的通信,如果CS 脚置为1 主控器与HT1620 之间的通信先被禁止,然后初始化。在执行模式命令或进行模式切换时需要一个高电平的脉冲初始化HT1620 的串行接口。DATA 线是串行数据输入/输出线,读写的数据和执行的命令都必须通过DATA 线。RD 线是读时钟输入线,RAM 中的数据在RD 信号的下降沿输出输出的数据将会出现在DATA 线上主控芯片应当在RD 信号的上升沿和下一个下降沿之间读取正确的数据。WR 线是写时钟输入,DATA 线上的数据地址和命令都在WR 信号的上升沿输入HT1621。
5.4 时序图(仅以写模式为例
说明,其余见DATASHEET
资料)
3
QJ/MK03.056-2004
5.5 命令格式
HT1621 一个很重要地特色就是可由主控芯片通过软件地方式来完成自身地设定,有两种模式命令对HT1621进行配置和传输LCD 显示数据。HT1621的配置模式成为命令模式它的命令模式ID 为100。 命令模式包含了系统配置命令、系统频率选择命令、LCD 配置命令音调频率选择命令、定时器/WDT 设定命令和操作命令。而数据模式则包含读、写和读-修改-写操作,下表所列为命令模式ID 和数据模式ID。
名称 模式 ID
READ 数据 110
WRITE 数据 101
READ-MODIFY-WRITE 数据 101
COMMAND 命令 100
模式命令应当在发送数据或命令之前执行。如果执行连续的命令,命令模式ID 可以省略。当系统执行非连续命令或非连续地址数据模式时,CS 脚应当置高电平,前一个操作模式将同时复位。当CS 脚返回到低电平时,应当首先执行新的操作模式ID。
HT1621具体命令模式详见HT1621产品DATASHEET文件,在此不作一一列举。 5.5 在主芯片对HT1621发送显示内容前,应对使用到的HT1621内部资源(如时钟、偏置、蜂鸣器、LCD开关等)进行初始化设定,设定完毕后,才可进行正常的发送显示数据程序。
6 采用HT1621B的液晶显示驱动硬件电路说明
显示驱动部分原理图如下图所示:
4
QJ/MK03.056-2004
HT1621B显示驱动接口电路原理图
6.1 该电路与主芯片共四个接口:片选信号CS、读信号RD、写信号WR及数据信号DATA,一般我们使用CS、WR及DATA三个接口。一般而言,主芯片和HT1621B中间要增加2K电阻,以做抗干扰和限流作用,如果显示板和主控板之间采用连接线连接,可以考虑在靠近1621芯片口的地方各增加一个102电容增强抗干扰能力,但以不影响通讯波形为前提。 6.2 此例图及下程序为美的Q(R)型柜机的显示原理图,液晶驱动为4*14形式,其中SEG端口为了电路布线方便,未使用连续的SEG端口,而
5
QJ/MK03.056-2004
是间隔地使用。
6.3 请注意芯片VLCD管脚,
HD1621B芯片要求VLCD管
脚电压必须低于VDD脚电
压,在此VLCD通过电阻分
压为4.5V。
6.4 HD1621B多余的管脚
(BUZZ、COM口和SEG口)
可以悬空处理。
7 程序设计说明
7.1 RAM变量和标志说明
变量名称 变量类型 变量说明
Dispbuff 14字节 显示内容缓冲区
Disptime 1字节 显示时间变量
Dispstartf 1bit 发送数据使能标志,1=允许发送;0=不发送
7.2 程序初始化说明 管脚定义:
P_1621CS EQU P0.0
P_1621WR EQU P0.1
P_1621DA EQU P0.2
管脚初始化:
MOV P0,#00000111B ;上电输出1
MOV PM0,#00000000B ;0为输出,1为输入
7.3 程序接口 子程序:
LCD1621INIT: LCD初始化程序,在主程序初始化中调用
LCDSET: LCD显示设定程序,在主程序循环中调用
LCDDISP: LCD定时刷新程序,在主程序循环中调用
接口变量:
LCDBUF: 存放LCD显示内容缓冲区开始地址(根据实际应用的SEG口,最大为连续32个地址)
LCDCOUNT:LCD 显示内容RAM大小(最大为32)
LCDTIM: LCD显示刷新时间(例程为100ms)
6
QJ/MK03.056-2004
7.4 程序常数定义(1621参数
根据具体应用不同,可以进行
修改) READ EQU 0C0H ;READ命令模式11000000 WRITE EQU 0A0H ;WRITE命令模式10100000 COMMAND EQU 80H ;COMMAND模式10000000 RC256 EQU 18H ;HT1621系统时钟选择:片内时钟 SYSEN EQU 1 ;开系统时钟
LCDOFF EQU 2 ;关闭LCD偏置发生器
LCDON EQU 3 ;打开LCD偏置发生器
BIAS134 EQU 29H ;选择LCD偏置:1/3BIAS、4COMMONS OPTION ADDR0 EQU 0 ;初始地址:0
7.5 参考程序
LCD1621INIT: ;LCD初始化程序,在主程序中调用
MOV A,#COMMAND ;发送COMMAND命令
CALL !SENDID
MOV A,#RC256 ;设置HT1621系统时钟
CALL !SENDCOM
MOV A,#SYSEN ;开系统时钟
CALL !SENDCOM
MOV A,#LCDON ;打开LCD
CALL !SENDCOM
MOV A,#BIAS134 ;选择选择LCD偏置
CALL !SENDCOM
7
QJ/MK03.056-2004
MOV A,#WRITE ;发送WRITE命令
CALL !SENDID
MOV A,#ADDR0 ;设置初始地址为0
CALL !SENDADR
MOV A,#0 ;试写一字节
CALL !WRITEBYTE
RET
LCDSET: ;LCD显示设定程序,在主程序中调用
CMP POWERUPTIM,#200 ;上电全部点亮2秒,以10ms为计时单位
BNC $LCDSET0RT
MOV POWERUPTIM,#0
MOVW HL,#LCDBUF
MOV A,#0FFH
MOV B,#LCDCOUNT
LCDSET0:
MOV [HL],A
INCW HL
DBNZ B,$LCDSET0
LCDSET0RT:
RET
LCDSET1:
;;;;其他显示设定程序
;;;;
RET
LCDDISP: ;LCD定时刷新程序,在主程序中调用
CMP LCDTIM,#10 ;LCD刷新频率,在此设为100ms(以10ms为计时单位)
BC $LCDDISPRT
MOV LCDTIM,#0
MOV A,#WRITE
CALL !SENDID
MOV A,#ADDR0
8
QJ/MK03.056-2004
CALL !SENDADR
MOVW HL,#LCDBUF
MOV B,#LCDCOUNT LCDDISP1:
MOV A,[HL]
CALL !WRITEBYTE
INCW HL
DBNZ B,$LCDDISP1 LCDDISPRT:
RET
SENDID: ;发送1621模式命令子程序,发送位数:3
SET1 P_1621CS
NOP
NOP
CLR1 P_1621CS
MOV B,#3
SIDLOOP:
ROLC A,1
BNC $SENDID0
SET1 P_1621DA
BR $SENDID1 SENDID0:
CLR1 P_1621DA
NOP
SENDID1:
CLR1 P_1621WR
NOP
NOP
SET1 P_1621WR
DBNZ B,$SIDLOOP
RET
9
QJ/MK03.056-2004
SENDCOM: ;发送1621命令子程序,发送位数:9
MOV B,#9
SCOMLOOP:
ROLC A,1
BNC $SENDCOM0
SET1 P_1621DA
BR $SENDCOM1 SENDCOM0:
CLR1 P_1621DA
NOP
SENDCOM1:
CLR1 P_1621WR
NOP
NOP
SET1 P_1621WR
DBNZ B,$SCOMLOOP
RET
SENDADR: ;发送1621地址子程序,发送位数:6
MOV B,#6
SADRLOOP:
ROLC A,1
BNC $SENDADR0
SET1 P_1621DA
BR $SENDADR1 SENDADR0:
CLR1 P_1621DA
NOP
SENDADR1:
CLR1 P_1621WR
NOP
NOP
SET1 P_1621WR 10
QJ/MK03.056-2004
DBNZ B,$SADRLOOP
RET
WRITEBYTE: ;往1621RAM写一字节子程序,发送位数:8
MOV B,#8
WBYTELOOP:
ROLC A,1
BNC $WRITEBYTE0
SET1 P_1621DA
BR $WRITEBYTE1 WRITEBYTE0:
CLR1 P_1621DA
NOP
WRITEBYTE1:
CLR1 P_1621WR
NOP
NOP
SET1 P_1621WR
DBNZ B,$WBYTELOOP RET
11
QJ/MK03.056-2004
12