您好, 访客   登录/注册

基于MCS-51系列单片机的LCD显示系统的设计与实现

来源:用户上传      作者:

  摘要:提出一种基于MCS-51系列单片机控制液晶屏的设计方案,介绍了单片机对LM32019T单色显示屏控制的硬件接口电路以及模块化的程序编写方法,重点说明了SED1335液晶控制器的特点、使用方法及其与单片机的接口电路。
  关键词:单片机;LCD;SED1335控制器
  中图分类号:TN873.93文献标识码:A文章编号:1007-9599 (2010) 16-0000-01
  The LCD Display System Design and Implementation Based on MCS-51 Series SCM
  Yang Jie
  (Qianjiang College of Hangzhou Normal University,Hangzhou310012,China)
  Abstract:A microcontroller-based control of MCS-51 series of LCD design,the computer control of LM32019T monochrome display hardware interface circuit and method of modular programming,focusing on the characteristics of the SED1335 LCD controller,MCU use and its interface circuit.
  Keywords:SCM;LCD;SED1335 controller
  本文以EPSON公司的一种高性能LCD控制器SED1335为例,采用SHARP公司的LM32019T(320×240)液晶显示屏,研究并实现了在单片机应用领域内液晶显示的接口电路和程序设计。
  一、SED1335液晶控制器
  SED1335是一种功能强大的液晶显示控制器,其特点是指令系统丰富,四位数据并行发送,最大驱动能力为640×256点阵。SED1335的控制部是由振荡器功能逻辑电路,显示RAM管理电路,以及可产生驱动时序的时序发生器组成。SED1335控制器具有图形和字符两种驱动方式:图形显示方式是根据外接存储器中的一位数据控制LCD上的一个8×1点阵的亮与暗;字符显示方式则是通过字符代码来确定内部字符发生器的地址,并将其变换成相应的8×8的点阵数据。SED1335控制器有14条指令,多数指令带有参数,参数值由用户根据所控制的液晶显示模块的特点和显示的要求来设置。
  二、显示系统硬件设计
  在调试过程中应注意的问题:
  (一)LCD驱动电压的调节。如果驱动电压取值不合适,既是系统能正常工作,也看不到显示的内容,在此情况下需要调整PWM波形的占空比,使驱动电压在18V左右。在能观察到显示的内容时,如需要,可微调占空比,达到满意的显示效果。
  (二)SED1335控制器的驱动工作频率。此控制器使用的晶振为10MHz,在设置SYSTEM SET的第5个参数时,根据这个参数的取值范围,先选取一个数值,如果显示屏闪烁,改变这个参数的数值,调节至显示屏不再闪烁,显示效果比较理想。
  (三)整个显示屏的刷新。本系统采用单屏显示,通过按键来改变整个显示屏的内容。在切换不同的显示屏时,需对显示存储器刷新,即置零,否则屏幕将显示出多屏内容叠加的结果。
  三、显示系统软件设计
  在液晶屏的实际应用中,汉字和图形一般是以图形方式显示。液晶屏上的汉字和图形是像素点有规律组合的结果,汉字和图形的清晰度与液晶屏像素点的多少和点阵间距的大小有很大的关系。在显示之前,须先建立此系统所需的汉字库和特殊的数字库。本系统需要的所有字符是通过清华蓬远公司的液晶字库软件(V2.1)提取出来。在自造字符时,最好是不要填充到外围四条边界点阵上,以免显示内容相连。
  在使用内部字符发生器时,它的显示方式是以8×8(实际为5×7)点阵数据为一个显示地址;而在图形模式下显示,则以8×1的点阵数据为一个显示地址。两种显示方式的地址都是从左到右,从上到下的顺序排列。只要知道显示屏地址,就可以在对应的位置显示需要的内容。写命令代码的地址为0x0081,写显示数据的地址为0x0080。
  本系统软件设计采用模块化设计思想:以绘制长方形函数和显示字符函数为例作简单的介绍:void draw_rec(uint x1,uint y1,uint x2,uint y2,uchar side_l,uchar side_r)为绘制长方形的函数。其中,(x1,y1)为长方形左上角的顶点坐标,(x2,y2)为右下角的最低点的坐标。由于本系统使用图形显示方式,液晶屏为320×240的点阵,可知x1、x2的取值范围是(1~40);y1、y2的取值范围是(1~240)。side_l、side_r分别为长方形左右两侧竖线在一个字节中的显示位置,由于长方形的四条边界只需一列或一行像素点组成,side_l、side_r的取值可为(0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80)。在特殊情况下,如多个长方形之间的嵌套,此时就需先读出地址的内容,并赋给变量old,content|=old,content是在对应的地址要再次写入的数据。
  voiddis_ch(uint x1,uint y1,uint add,uint num,ucharbk_lt)为显示字符的函数。其中,(x1,y1)为显示字符在显示屏上的起始地址,本系统字库内的所有字符为16×16点阵,取值范围分别为(1~38)和(1~224)。add为要显示的字符在二维字库中的对应位置,num为需要显示字符的个数,显示过程是以字库中第add个字符开始显示,按递增顺序一直显示到第add+num个字符为止。bk_lt为字符反向显示的判断标志,由于LM32019T是单色显示屏,显示方式只有两种情况,其一背景为蓝色,字符为亮白色,其二背景为亮白色,字符为蓝色,bk_lt取0为第一种情况,取1为第二种情况。在程序的编写过程中,应定义bk_lt为全局变量,通过按键的切换来改变bk_lt的值,即可判断出字符在哪种方式下显示,显示效果为该显示内容是否被选中。
  本系统采用通用型的MCS-51系列单片机和SED1335液晶显示控制器,结合模块化程序设计的思想,可生成人机交互界面。
  四、结束语
  实践证明本系统硬件电路简单,程序简洁,通用性强,达到了设计的目的,为各种人机交互界面的设计,提供了一种有效的方法。在众多的应用领域中,少量改动程序和字符即可满足用户的不同需求。本系统具有功耗低、体积小、支持在线编程、成本低等特点。
  参考文献:
  [1]周玲.基于单片机控制的智能充电器设计[D].南宁:广西大学,2006
  [2]张芝贤,王明贺,张正吉.LCD显示模块并行接口驱动程序设计[J].国外电子测量技术,2009,28,10:64-68
  [3]孙俊喜.LCD驱动电路、驱动程序设计及典型应用[M].北京:人民邮电出版社,2009

转载注明来源:https://www.xzbu.com/8/view-8731558.htm