微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机系统中液晶显示器的接口设计

单片机系统中液晶显示器的接口设计

时间:11-07 来源:互联网 点击:

引言

由于液晶显示器(LCD)具有显示功耗低、体积小、重量轻、超薄等许多其他显示器无法比拟的优点,在低功耗等单片机系统中被广泛采用。LCD可分为段位式LCD、字符式LCD和点阵式LCD,其中,段位式LCD和字符式LCD只能用于字符和数字的显示。本文介绍段位式液晶显示器EDS806和EDS812,给出了它与单片机的接口及编程方法。

显示数据图中,单片机(可以选择51系列中的一种,图中省略)内经过程序处理后,输出显示信号送到P1口(数据4位,选择信号4位)。数据中4位送入MC14543(BCD --锁存/ 7段译码/ 驱动动器)中,经过译码形成MC14543的输出端a、b、c、d、e、f、g分别接到8位EDS806和3位的EDS812的,每一个数字位需要一个MC14543。

4位选择信号送到CD4514译码器(4位锁存/ 4-16线译码器),选择接收数据的MC14543芯片和浮动显示的小数点位。(8位EDS806可以浮动显示)
为了使EDS806能浮动显示,所以用MC14174B和CD4070控制小数点。

程序

当使用该显示接口图做一般数据如温、湿度、压力、流量等显示时,程序如下:

ORG 0085H
L0085: ORL P1,#0FFH ;P1口置1,4FH~40H中是要 显示的数据(高~低)
MOV A,4FH ;最高位是否为0
NOP
NOP
MOV A,4FH
ANL A,#0ffH
JZ L009E ;为0转移
MOV DPTR, #0F9BH ;第一段显示数据(此时数据为最大)
MOV 2FH,#0a0h ;送小数点数据到2FH中
LJMP L00DD
L009E: MOV A,4EH ;次高位是否为0
NOP
NOP
MOV A,4EH
ANL A,#0FFH
JZ L00B1 ;为0转移
MOV DPTR, #0155H ;第二段显示数据
MOV 2FH, #21H ;送小数点数据到2FH中
LJMP L00DD

L00B1: MOV A,4DH
NOP
NOP
MOV A,4DH
ANL A,#0FFH
JZ L00C4 ;为0转移
MOV DPTR, #0139H ;第三段显示数据
MOV 2FH, #22H ;送小数点数据到2FH中
LJMP L00DD

L00C4: MOV A,4CH
NOP
NOP
MOV A,4CH
ANL A,#0FFH
JZ L00D7 ;为0转移
MOV DPTR,#011DH ;第四段显示数据
MOV 2FH,#24H ;送小数点数据到2FH中
LJMP L00DD

L00D7: MOV DPTR,#0171H ;第五段显示数据
MOV 2FH, #28H ;送小数点数据到2FH中

L00DD: MOV B, #0DH ;显示数据中的数据个数
MOV A,2FH
ANL A,#0FH
MOV 2DH,A
MOV A,2FH
ANL A,#0F0H
SWAP A
MOV 2FH,A
CLR A

L00EE: MOVC A,@A+DPTR ;取相应段的数据进行 显示
MOV R0,A
MOV A,@R0
ORL A,#0F0H
ANL P1,A
NOP
NOP
NOP
NOP
NOP
ANL P1,A

CLR A
INC DPTR
MOVC A,@A+DPTR
ANL P1,A
NOP
NOP
NOP
NOP
ANL P1,A
ORL P1,#0F0H
ORL P1,#0FFH
CLR A
INC DPTR
DJNZ B,L00EE
END

ORG 0F9BH;以下为显示数据,浮动五位,可以类似做出浮动八位。

DB

4FH,0DFH,4EH,0CFH,4DH,9FH,4CH,8FH,4BH,7FH,

4AH,6FH,49H,5FH,48H,4FH

DB

47H,3FH,38H,2FH,37H,1FH,36H,0FH,2FH,0AFH,2DH, 0BFH, ORG 0155H

DB

4EH,0DFH,4DH,0CFH,4CH,9FH,4BH,8FH,4AH,7FH,

49H,6FH,48H,5FH,47H,4FH

DB

46H,3FH,38H,2FH,37H,1FH,36H,0FH,2FH,0AFH,2DH, 0BFH,ORG 0139H

DB

4DH,0DFH,4CH,0CFH,4BH,9FH,4AH,8FH,49H,7FH,

48H,6FH,47H,5FH,46H,4FH

DB

45H,3FH,38H,2FH,37H,1FH,36H,0FH,2FH,0AFH,2DH, 0BFH,ORG 011DH

DB

4CH,0DFH,4BH,0CFH,4AH,9FH,49H,8FH,48H,7FH,47H,

6FH,46H,5FH,45H,4FH

DB

44H,3FH,38H,2FH,37H,1FH,36H,0FH,2FH,0AFH,2DH, 0BFH,ORG 0171H

DB

4BH,0DFH,4AH,0CFH,49H,9FH,49H,8FH,47H,7FH,46H,

6FH,45H,5FH,44H,4FH

DB
43H,3FH,38H,2FH,37H,1FH,36H,0FH,2FH,0AFH,2DH, 0BFH

当使用该显示接口图用做参数设置时,需要让当前修改位数字处于闪烁状态显示,使用中断方式,程序如下:

L05E6: PUSH ACC ;保存现场
PUSH PSW
MOV PSW,#08H
MOV TL1,#00H ;设置定时器
MOV TH1,#00H
MOV R1, #24H ;24H中放的是当前位的位
置 (11~0)
MOV R0,#25H ;数据单元
MOV R7,#0BH ;显示8+3共11位数字
L05FE: MOV A,#00H
ORL A,#0F0H
ANL P1,A
CLR A
MOV A,#0BFH ;不显示EDS812的小数点
数据
ANL P1,A
ORL P1,#0F0H
MOV A,#00H
ORL A,#0F0H
ANL P1,A
ANL P1,A
CLR A
MOV A,#0AFH ;不显示EDS806A的小数 点数据
ANL P1,A
ORL P1,#0F0H
CJNE R7,#24H, L0635 ;若不是当前位转到
L0635,跳过闪烁部分
CPL 0BH ;取反0BH,每当其为1当 前位该显示,否则消隐
JNB 0BH, L0635
MOV A,#0FH
LJMP L0636
L0635: MOV A,@R0 ;显示数字位
L0636: ANL A,#0FH
MOV P1,A
ORL A,#0F0H
MOV P1,A
INC R0
L0648: DJNZ R7,L05FE ;是否显示完所有位?
POP PSW ;恢复现场返回。
POP ACC
RETI


总结

本文给出了单片机低耗系统中的液晶显示控制的硬件设计方案及其实现。软件程序给出了详细注释,以上电路作为我们自行研发的系统显示前端,已在实际应用中取得了成功。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top