单片机实现液晶显示.doc
单片机实现液晶显示一背景对于现在流行的嵌入式电子产品,如便携式仪表,智能电器,消费类电子产品等,显示输出模块是必不可少的,在诸多的显示方式中,液晶显示已经成为首选。本次主要介绍如何在51单片机系统中实现液晶显示;即在51单片机系统上运行C51程序,通过单片机与液晶模块之间的接口电路,控制液晶模块,显示需要的内容,并控制显示的格式。二设计思路分析1液晶显示模块单片机的主要输出方式有放光二极管,数码管,和液晶显示。而液晶显示是通过液晶显示模块实现的。液晶显示模块是一种将液晶显示器件,链接件,集成电路,PCB线路板,背光源,结构件装配在一起的组件单片机系统使用液晶显示模块作为输出的优点:a显示质量高。b数字式接口。c体积小,重量轻。d功耗低。根据显示方式和内容的不同,液晶显示模块可以分为数显液晶模块,点阵字符液晶模块,点阵图形液晶模块。数显液晶模块是一种由段型液晶显示器件与专用的集成电路组装成一体的功能部件,只能显示数字和一些标识符;点阵字符液晶模块是由点阵字符液晶显示器件和专用的行列驱动器,控制器及必要的链接件,结构件装配而成的,可以显示数字和西文字,但不能显示图形;点整图形液晶模块的点阵像素连续排列,行和列在排布中均没有空格,不仅可以显示字符,而且也可以显示连续,完整的图形。点阵图形液晶根据液晶模块的驱动方式可以分为行列驱动型,行列驱动控制型,行列控制型。2液晶显示原理以显示功能最完整的点阵图形液晶而言,液晶显示可分为线段显示,字符显示以及汉字显示。1)线段显示液晶的显示屏有64行,每行有128列,每8列对应1个字节的8个位,即每行由16字节,共16*8=128个点组成,屏上64*16个显示单元和显示RAM区1024个字节相对应,每个字节的内容和屏上的相应位置的亮暗对应。2)字符显示一个字符由6*8或8*8这样的点阵组成,要正确显示,必须要找到和屏上某几个位置对应的显示RAM区得8个字节,并且要使每个字节的不同的位为1,其他位为0,为1的点亮,为0的点暗,通过明暗的变化显示某个字符。3)汉字显示汉字显示一般采用图形方式,首先需要获得待显示的汉字的点阵码,每个汉字占32个字节,分左右两部分,各占16个字节,根据在液晶上开始显示的行列号以及每行的列数可找出显示RAM所对应的地址,然后设立光标,送上要显示的汉字的第一个字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节,直到32字节显示完成,这样就可以在液晶上得到一个完整的汉字了!3设计思路电源模块:由于液晶模块的驱动需要两种不同的电源电压,所以需要设计专门的液晶电源电路。单片机系统:典型的51单片机系统即可。单片机与液晶模块之间的接口电路:这是硬件设计的关键电路,在对具体液晶模块资料分析的基础上才可以得出。软件设计:主要指对液晶模块控制和操作的程序。三硬件电路设计1器件选取器件的选取是系统硬件设计的基础和前提,它关系到整个系统的设计,功能的实现以及成本的控制等方面,所以应该全面而慎重!液晶显示模块:此次选用内含KS0101B/HD61202控制器的图形液晶显示模块GXM12864,它是一种采用低功耗CMOS技术实现的点阵图形LCD模块,有8位的微处理器接口,通过内部的128*64位映射DDRAM(DisplayDataRAM)实现128*64点大小的平板显示,可以满足一般的显示要求。单片机模块:选用常用的Ateml公司的89C52即可。电压转换芯片:选用美信公司的双电压输出升压芯片MAX1677,它是一种专用LCD电源芯片。2电源模块一般情况下,液晶器件的驱动需要两种不同的电源电压,一种是+5V(工作电压),另一种是-10V(偏置电压),所以使用液晶模块时需要设计专门的液晶电源电路,将输入电压转换成这液晶工作电压。此次设计单片机系统采用电池供电,其输入电压为+3V,所以电源部分的设计要求为+3V输入,+5V和-10V双电压输出。MAX1677芯片简介:输人电压范围为07-55V;主输出电压2.5-5.5V(可调电压输出),预设值为3.3V,最大输出电流可达350mA;次输出电压-28V-+28V,可为LCD提供对比度调节电压;静态工作电流只有20A;有电池欠压检测功能。具体资料请参考附带的MAX1677芯片手册!MAX1677引脚定义:典型电路原理图电路器件说明:图中MAX1677的输入电压为Vin=3V(在0.75.5V之间),输出两路电压Vout1和Vout2,分别是+5V和-10V,+5V为系统电源,而-10V作为液晶显示模块的背光电源。L1,L2为CoilCraft(线艺)的DO1608C-103表贴磁芯电感,电感值为10uH.D1,D2是反向耐压大于16V的肖特基二极管,也可选用具有相同耐压参数的其他型号二极管。电阻R6,R7的比值决定了主输出电压值Vout1,满足公式:R6=R7*Vout1/1.25-1(R7的取值范围10200K)电阻R5,R8的比值决定了次输出电压值Vout2,满足公式:R8=R5*|Vout2|/1.25(R8的取值范围5002000K)电阻R1,R2的比值决定了系统欠压检测的门槛电压值Vtrip,满足公式R1=R2*Vtrip/0.614-1(R2<=130k)当电池正常时,输出引脚LBO(LowBatteryOutput)输出保持高电平;一旦电池电压低于门槛电压Vtrip时,LBO引脚输出低电平,如果不使用欠压检测的话就把引脚3(LBI)接地即可。3液晶显示模块此次显示模块选用GXM12864,它内含KS0108/HD61202控制器,是一种采用低功耗CMOS技术实现的点阵图形LCD模块,有8位的微处理器接口,通过内部的128*64位映射DDRAM(DisplayDataRAM)实现128点*64点大小的平板显示。该液晶显示模块使用KS0108B作为列驱动器。同时使用KS0107B作为行驱动器。KS0107B不与MPU发生联系,只要提供电源就能产生行驱动型号和各种同步信号,比较简单!GXM12864的内部逻辑电路如图在CXM12864中,两片KS0101B的ADC均接高电平,RST也接高电平,这样在使用GXM12864是就不必要再顾忌这两个引脚的功能。/CSA引脚与KS0101B(1)的CS1相连,/CSB引脚与KS0101B(2)的CS1相连,因此/CSA,/CSB选通组合信号:/CSA,/CSB=01是选通KS0108B(1);/CSA,/CSB=10时选通KS0108B(2);其他则禁止选通,总线处于高阻状态。具体资料请参考CXM12864手册!CXM12864引脚定义GXM12864共有20个引脚,其中DB0DB7是8位双向数据总线,它的方向是有控制引脚R/W来决定,高电平为读,此时数据出现在总线上,可以由CPU读取;低电平为写,可以写入8为数据。E为使能