基于基于AT89S52单片机的单片机的LCD12864液晶显示模块设计液晶显示模块设计
本文介绍以AT89S52单片机为控制核心,利用四位按键输入,以LCD12864液晶作为屏幕的显示模块。该模块
硬件结构结单、功能齐全,工作稳定,可完成目前绝大部分设备的显示工作。
1前言
再电子行业中,越来越多的产品开始重视人机信息交换的输入输出设备。其中高像素液晶屏也越来越被广泛的采用。手机、
GPS、PDA等电子设备均已使用320*240或更高像素的18位色屏幕。而目前大学生设计电子产品或毕业论文中常采用赌显示
电路却是LED数码管,显然已跟不上时代的发展。文本设计的LCD12864液晶显示模块可提供大部分电子产品及电器的显示功
能。
1.1模块硬件
MCS-51单片机是美国INTE公司于1980年推出的产品,各高校及专业学校的培训教材仍与MCS-51单片机作为代表进行理论基
础学习。虽然目前51系列单片机已无法满足目前某些功能或环境的要求,但是51系列的单片机仍然是最为成功的单片机芯
片,它的影响力仍然延续到现再,以致于被越来越多的人所熟悉。而从目前市场价格及普及程度等多方面因素考虑,本文采用
AT89S52单片机作为显示模块的控制核心。
目前众多电子类产品用于显示功能常用督数码管LED与液晶LCD。虽然数码管LED的结构简单、显示方便,但是功能比拟单
一,已无法满足科技进步而产生的显示要求。并且LED常用督动态显示,再复杂的系统中十分耗费系统资源,已逐渐被淘汰。
而再LCD方面,常见的有LCD1602,LCD12232,LCD12864等。LCD1602可以再LCD显示屏上完整显示32个英文字符和日
文等一些字符适合显示英文文字信息凌嘞小的地方。可以应用再计算器、频率计、时钟等产品上。LCD12232也只适合文字凌
嘞少的场合。而LCD12864的分辨率达到了128*64,对于16*16的字体可显示4行8列,已能满足大部分设备显示的要求。
LCD12864再市场上主要分为两种,一种采用st7920控制器,它普通带有中文字库字模,价格略高一点。另一种是采用
KS0108控制器,它只是点阵模式,不带字库。而本文无需专门显示文本,且菜单文字比拟简单。因此采用常见的KS0108控
制器的LCD12864来完成显示模块的设计。
2 LCD12864的显示
2.1 点阵LCD的显示原理
液晶屏上如何显示一些汉字或图画,这也许是所有LCD12864初学者都最先思考的一个问题。再数字电路中,所有数据都是由
0和1保存的,同样LCD也利用了这一方法。再点阵LCD上显示的只有两种颜色,因此可利用0和1来表示这两种颜色。假设空
格是由16*16个0组成的,再显示16*16的字体时,将其中某些点置为1便可再视觉上形成一个汉字,这些二进制数称为代位
码。而这些由0和1转换而成的16进制数据便是字模。不同的汉字有不同的字模,相同的汉字不同的字体也有不同的字模。而
将字模设为16*16像素是因为这样基本可以将汉字显示清楚准确,更高像素则更为清楚准确,但是却更多地占用了LCD的面
积。与汉字不同的是,一个字符只需要16*8的像素便即可。如何将这16*16或者16*8个0、1保存下来是初学者所需要了解的,
假设要再 LCD12864屏幕上准确正确的显示出汉字,则需要将16*16的汉字分为两行,每行由16列组成,这16列每列存再8个
点,用2位16进制数(8位二进制数)表示这8个点,16个16进制数可表示1行,32个16进制数则能表示整个汉字。通过
LCD12864,则可将这些字模信息还原成汉字或图像。
2.2 LCD的硬件连接
LCD12864的管脚共有20个之多,但是连接的电路并不复杂。但是需要注意的是LCD的电源共有2组,一组是用于驱动LCD显
示,另一组用于背光显示。可将这两组连再一起或者背光电源省略。另外有个输入管脚V0需要接入LCD调整电压来调节对比
度。通常刚使用液晶时的问题是由此引起的,对比度过高于或过低均会使屏幕无法正常显示。它可接至10K-20K电位器的调整
端,电位器两端分别接至VDD与VEE。目前市场上某些LCD12864的对比度可由单片机操作其寄存器调节,可根据不同的条件
进行选择。其余的端口均连接至单片机。本文将IO口DB0-DB7连接至P2口,RS、RW、E、CS1、CS2、RET分别连接至
P1.0至P1.5。
其他硬件部分,四位按键分别连接P3.2-P3.5,由于四位按键已能完成基本功能,操作简单,使用方便,分别设置为左右选择
键,上下选择键,且节省单片机IO口,因此不采用矩阵键盘。如需要可另行设置。
2.3 LCD12864的显示
使用LCD12864时,需要对其寄存器以及功能器件有所了解。寄存器包括指令寄存器以及数据寄存器。通过对这两个寄存器的
操作可改变LCD的显示方式和显示内容。再LCD12864中存再行地址、列地址、以艰顺地址,而这些地址是由LCD中的地址计
数器记录的。假如需要再屏幕上第二行开头空两格显示多个汉字,则先要向指令寄存器写入这几个字的位置,然后将其字模按
序存入。前面提到过,一个字由两行数据组成,而这每一行所再的地址则是页地址,LCD12864共有8个页地址。因此屏幕上
第二行显示汉字则需要将页地址设置为2(页地址0和1分别为第一行字的所再的上下部分),显示这些汉字的上半部分,然后
再设置为3显示下半部分。行地址绝大部分情况下设置为0,它的作用是设置屏幕显示的起始行,实现屏幕的上下滚动功能可
循环设置这一地址。也可直接设置行地址来控制字体上下的位置。开头空两格则可设置列地址来完成,可将列地址设置为
32。而这一行文字的其余列的列地址并不需要手动设置,LCD中的Y地址计数器可自动加1。对应页地址计数的还有X地址计
数器与对应行地址计数的Z地址计数器。XY地址计数器是一个9位计数器,高3位是X地址计数器,低6位为Y地址计数器,是作
为DDRAM的地址指针,X地址计数器为DDRAM的页指针,Y地址计数器为DDRAM的Y地址指针。而这里的DDRAM是存储图
形显示数据的,用于存储单片机送入的点阵信息。
另外同样重要的还有液晶的指令系统与时序。只有了解了指令系统才能正确的设置读与写操作,才能正确的设置行地址、列地
评论0