基于单片机C8051F020的液晶显示的接口电路和程序实现与设计

控制/MCU

1878人已加入

描述

在单片机系统设计中,LCM(液晶显示模块)人机交互界面的设计往往是很重要的一个环节。LCM可以用于智能仪器上的显示设定参数、状态提示符、检测结果和待输入参数等功能。本文结合电解质分析仪的设计要求,采用液晶显示模块YXD—12864A2LCM,研究并实现了以单片机C8051F020为基础的液晶显示的接口电路和程序设计,添加了按键系统,从而达到方便用户使用的目的。

1电解质分析仪简介

本系统所设计的电解质分析仪(Electrolyte Analyzer)是一种具有高分辨率和高精度的仪器,可以与多种离子选择电极配套使用,可用自动方法测定样品中钾、钠、氯、钙离子的浓度和pH值。其结构方框图如图1所示。仪器采用单片机C8051F020为核心芯片进行设计,在测量室内由化学传感器采集电解质的电位信号传送给信号调理电路,经过信号调节后送给主电路板进行A/D转换,然后输出显示到LCM上,LCM参数、测量结果的显示等都可由键盘操作。与上位机的通信上,采用RS 232通信方式传输数据。本仪器的特点是可以单机使用、也可以与上位机连接使用,与上位机连接后通过界面操作可以帮助用户完成病人信息的查询、存储、仪器工作情况的实时检测等功能。

单片机

图1电解质分析仪结构方框图

系统显示部分采用图形液晶显示模块YXD-12864A2LCM,安装在仪器的表面,用来显示参数设置、测量结果、定标、质控等的情况。界面显示与参数设定及翻页等功能通过按键的控制来实现。

2 YXD-12864A2LCM

2.1模块介绍

YXD-12864A2LCM是一种图形点阵液晶显示模块,它主要由行驱动器、列驱动器及128x64全点阵液晶显示器组成。可完成图形显示,也可以显示4x8个(16×16点阵)汉字。YXD-12864A2模块共有20个引脚。其中,第1脚VSS接系统地;第2脚VDD接电源电压;第3脚V0接液晶显示器驱动电源;第4脚D/I接数据指令选择信号;第5脚R/W接读写选择信号;第6脚接读写使能信号,E为高时,数据被读出,而在E的下降沿到来时,数据被锁存到DB0~DB7;第7~14脚接三态数据总线;第15、16脚接片选信号;第17脚接复位信号;第18脚Vout接内部负压发生器输出电压端;第19脚接LED背光电源正极;第20脚接LED背光电源负极。

2.2接口电路

接口电路图和原理图如图2,图3所示,C8051F020的P3口作为数据口与液晶模块DB口相连;P2.0为复位引脚控制端;P2.1、P2.4、P2.5作为普通的I/O口使用,分别接液晶模块的使能端E、寄存器选择引脚D/I、读写引脚R/W;P2.2、P2.3分别接片选信号左或者右,对显示进行定位。

单片机

图2 LCM接口电路图

图2的电路图中,R28和R41为上拉电阻,因为它每个端口是与单片机相连的,对于显示器而言工作电压是5 V,而C8051F020工作电压是3.3 V,要使C8051F020输出能更好地驱动5 V输入的LCM,就要将每个端口通过一个上拉电阻接到5 V电源,这样就可以保证C8051F020的逻辑“1”输出能被提升到5 V.

单片机

图3接口电路原理图

2.3软件设计

显示字符:从屏幕指定的位置开始显示指定的字符串。此LCM是128x64位的液晶显示屏,每个字符所占用的点阵是8x8.显示位置由两个坐标参数据决定,横坐标x表示“行”,取值范围为0~7;第0行对应屏幕最上边的一行,第7行对应最下面一行。纵坐标y表示“列”,取值范围为0~15,第0列对应屏幕最左边的一列,第15列对应屏幕最右边的一列。

假设要从第4行第8列的位置显示字符“K”,则程序段如下:

;entrancd:C(left,right),R4(X),R5(Y),DPTR,R6(length)

data_to_lcd:

SETB CS1_LCD

CLR CS2_LCD

JNC data_to_lcd2

CLR CS1_LCD

SETB CS2_LCD

data_to_lcd2:

MOV A,R4

LCALL display_X_line

MOV A,R5

LCALL display_Y_line

MOV A,R6

MOV R7,A

LCALL write_LCD_bytes

MOV A,R4

INC A

LCALL display_X_line

MOV A,R5

LCALL display_Y_line

MOV A,R6

MOV R7,A

INC DPTR

LCALL write_LCD_bytes

CLR CS2_LCD

CLR CS1_LCD

RET

SETB C;片选的设定

MOV R4,#04H;位置行号

MOV R5,#08H;位置列号

MOV DPTR,#K;字符内容

MOV R6,#08;定义字符的长度

LCALL data_to_lcd;调用输出字符的子程序

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分