基于单片机的液晶显示_第1页
基于单片机的液晶显示_第2页
基于单片机的液晶显示_第3页
基于单片机的液晶显示_第4页
基于单片机的液晶显示_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE滨江学院学年论文题目基于单片机的液晶显示院系自动控制系专业电气工程与自动化学生姓名学号指导教师二零一三年十二月二十五号目录1.引言TOC\o"1-1"\h\z 12.现状 13.主要目的 24.实现方案和步骤 24.1KS0108 24.1.1KS0108特点 24.1.2KS0108的引脚功能 34.1.3KS0108的指令系统 44.2图形点阵式液晶显示控制 54.3汉字编码原则 84.4程序实现流程 95.实验结果及结果讨论 106.结论 117.参考文献 118.附件 121滨江学院学年论文基于单片机的液晶显示南京信息工程大学滨江学院自动控制系,南京210044摘要:本文围绕设计以单片机作为LCD液晶显示系统控制器为主线,基于单片机8051,采用的液晶显示控制器的芯片是SED1520,主要实现中文显示、滚屏以及左右移动功能。同时也对部分芯片和外围电路进行了介绍和设计,并附以系统结构框图加以说明,着重介绍了本系统应用的各硬件接口技术和各个接口模块的功能及工作过程,并详细阐述了程序的各个模块。关键字:单片机、液晶显示、8051、SED15201、引言单片机液晶显示系统主要是指单片机以及由单片机驱动的点阵式液晶显示屏所组成的一个显示系统[1]。我们在许多地方可以看到LCD显示屏的应用,例如空调,车内广告,冰箱和显示仪表盘等等,它们都是一个小型的单片机控制液晶显示系统。在日常生活中,我们也可以看到一些类似的由单片机控制的显示系统,如火车站售票大厅的候车信息显示屏,在这些屏幕上,可以显示各种不同的图形、汉字等,并且可以实现上下滚屏与左右移动等。这就是在现代工业控制和一些智能化仪器仪表中,越来越多的场所需要用点阵图形显示器显示汉字,需要能够显示更丰富信息和通用性较强的显示器,便于开发和应用,并要求其体积小、重量轻、功耗小。图形点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕画面滚动等功能,是信息处理、信息输出的重要手段之一,具有广泛的应用前景[2]。我选择的单片机液晶显示系统的开发,是基于KS0108液晶显示控制器,在C8051F020单片机实验系统上实现KS0108是点阵型液晶显示控制器,利用单片机控制液晶显示系统的原理,完成单片机液晶显示系统的设计。2、现状液晶显示器具有功耗低、体积小、重量轻、超薄等许多其它显示器无法相比的优点。近年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品当中。液晶显示器分为字符型LCD显示模块和点阵型LCD显示模块。字符型LCD是一种用5×7点阵图形来显示字符的2液晶显示器[3]。点阵型液晶可显示用户自定义的任意符号和图形,并可卷动显示,它作为便携式单片机系统人机交互界面的重要组成部分被广泛应用于实时检测和显示的仪器仪表中。支持汉字显示的点阵型液晶在现代单片机应用系统中是一种十分常用的显示设备,手机上的显示屏就是点阵型LCD。点阵型LCD是现代单片机应用系统中最常用的人机交互界面之一。3、主要目的本课题主要是实现显示汉字、位图静态显示、位图上下左右移动显示的功能,从而能够简单地模拟现实生活中的一些单片机控制的液晶显示系统的实现,现主要实现一些位图的静态显示和上下左右显示的功能,并且显示“单片机液晶显示系统设计”几个字。4、实现方案和步骤4.1KS0108液晶显示控制器KS0108是一种带有驱动输出的点阵型液晶显示控制器,它可直接与8位微处理器相连,它可与KS0107配合对液晶显示控制器进行行、列驱动,组成液晶显示驱动控制系统[4]。首先是介绍液晶显示控制器KS0108的特点、外部部分引脚功能、复位时序、显示RAM地址结构及指令集等。4.1.1KS0108的特点如下:1、内藏64×64=4096位显示RAM,RAM中每位数据对应LCD屏上一个点的亮、暗状态;2、KS0108是列驱动器,具有64路列驱动输出;3、KS0108读、写操作时序与68系列微处理器相符,因此它可直接与68系列微处理器接口相连;4、可直接与8位微处理器相连;5、KS0108的占空比为1/48~1/64;6、具有专用指令集,可完成文本显示或图形显示的功能设置;7、具有实现画面滚动、光标、闪烁和位操作等功能;8、KS0108可管理64KB显示RAM。其中,图形方式为64KB;字符方式为4KB.34.1.2KS0108的引脚功能见表1:表1引脚功能[5]引脚符号状态引脚名称功能CS1,CS2,CS3输入芯片片选端CS1和CS2低电平选通,CS3高电平选通E输入读写使能信号在E下降沿,数据被锁存(写)入KS0108;在E高电平时,数据被读出R/W输入读写选择信号R/W=1,为读选通;R/W=0为写选通RS(也习惯叫做D/I)输入数据、指令选择信号RS=1为数据操作RS=0为写指令或读状态DB0-DB7三态数据总线RST输入复位信号低电平有效,复位信号有效时,关闭液晶显示,使显示起始终不渝行为0,RST可跟MPU相连,由MPU控制;也右直接接VDD,使之不起作用。复位时序:复位后,KA0108显示关闭,显存地址归零。复位条件如表2:表2复位条件[6]项目符号最小值典型值最大值单位复位时间Trs1.0……微秒上升时间Tr……200纳秒4.1.3KS0108的指令系统KS0108的指令系统比较简单,总共只有七种。现分别介绍如下:(1)显示开/关指令见表3:表3显示开/关指令[7]R/WRSDB7DB6DB5DB4DB3DB2DB1DB00000111111/0当DBO=1时,LCD显示RAM中的内容;DBO=0时,关闭显示。(2)显示起始行(ROW)设置指令见表4:4表4显示起始行指令[7]R/WRSDB7DB6DB5DB4DB3DB2DB1DB00011显示起始行(0-63)该指令设置了对应液晶屏最一行的显示RAM的行号,有规律的改变显示起始行,可以使LCD实现显示滚屏的效果。(3)页设置(RAGE)指令见表5:表5页设置指令[7]R/WRSDB7DB6DB5DB4DB3DB2DB1DB00010111页号(0-7)显示RAM共64行,分8页,每页8行。(4)列地址(YAddress)设置指令见表6:表6列地址设置指令[7]R/WRSDB7DB6DB5DB4DB3DB2DB1DB00001显示列地址(0-63)设置了页地址和列地址,就唯一确定了显示RAM中的一个单元这样MPU就可以用读、写指令读出该单元中的内容或向该单元写进一个字节数据。(5)读状态指令见表7:表7读状态指令[7]R/WRSDB7DB6DB5DB4DB3DB2DB1DB010BUSY0ON/OFFREST0000该指令用来查询KS0108的状态,各参量含义如下:BUSY:1-内部在工作0-正常状态ON/OFF:1-显示关闭0-显示打开REST:1-复位状态0-正常状态在BUSY和REST状态时,除读状态指令外,其它指令均不对KS0108产生作用。在对KS0108操作之前要查询BUSY状态,以确定是否可以对KS0108进行操作。(6)写数据指令见表8:表8写数据指令[7]R/WRSDB7DB6DB5DB4DB3DB2DB1DB001写数据(7)读数据指令见表9:表9读数据指令[7]R/WRSDB7DB6DB5DB4DB3DB2DB1DB011读显示数据5读、写数据指令每执行完一次读、写操作,列地址就自动增一,必须注意的是,进行读、写操作之前,必须有一次空读操作,紧接着再读才会读出所要读的单元中的数据。4.2图形点阵式液晶显示控制C8051F020实验板中使用的是内置液晶显示模块CGM12864B的液晶屏。CGM12864B内部没有振荡器电路,它必须由外部提供一个时序发生器作为振荡源方可工作,它由两片带有64列驱动控制器KS0108和一片带有64行驱动控制器KS0107组合而成[8]。另外还可以附加负压发生电路。显示是以一128×64个点的液晶屏显示。图形液晶显示模块KS0108将显示区分为左右半屏,整个屏从上到下64行分为8页,每页8行,页地址范围为:B8H~BFH。列地址范围为:40H~7FH。数据为纵向读写,即每页的第一行对应D0……第八行对应D7。左、右半屏由CS1、CS2选择。控制器KS0108的指令相对简单,总共七条指令:显示开关设定(3EH/3FH),显示起始行设定(C0H/FFH),页地址设定(B8H/BFH),列地址设定(40H/7FH)状态读取,写数据,读数据[9]。128×64点阵式液晶模块的逻辑图见下图1:图1液晶模块逻辑图KS0108采用8位数据传送,间接控制方式。所谓间接控制方式就是通过单片机的并行接口与液晶显示模块直接连接,单片机通过对这些接口的操作,实现对液晶显示模块的控制,完成相应的显示,可以显示数字、字母、图形符号及自定义符号。使用LCD做数据显示,一旦数据写入LCD,数据就会一直显示在液晶屏上,不必像数码管显示那样要定时扫描才能将数据显示,其显示效果远远超过数码管显示。6外部接口信号见下表10:表10外部接口信号[10]管脚号管脚名称LEVER管脚功能描述1Vss0电源地2Vdd+0.5V电源电压3V0-液晶显示器驱动电压4D/IH/LD/I=“H”,表示DB7~DB0为显示数据D/I=“L”,表示DB7~DB0为显示指令数据5R/WH/LR/W=“H”,E=“H”数据被读到DB0~DB7R/W=“H”,E=“HL”数据被写到IR或DR6EH/LR/W=“L”,E信号下降沿锁存DB7~DB0R/W=“H”,E=“H”DDRAM数据读到DB7~DB07DB0H/L数据线8DB1H/L数据线9DB2H/L数据线10DB3H/L数据线11DB4H/L数据线12DB5H/L数据线13DB6H/L数据线14DB7H/L数据线15CS1H/LH:选择芯片(右半屏)信号16CS2H/LH:选择芯片(左半屏)信号17RSTH/L复位信号,低电平复位18Vee-10VLCD驱动负电压19LED--LED背光板电源20LED+-LED背光板电源74.3汉字编码原则一般地,常用点阵液晶显示模块的汉字字模是直接从中文系统汉字字库中提取的,然后经过格式上的调整和转换,可以得到欲显示的汉字字模。在这次设计中,我用的汉字不是从字库中提取字模,而是采用了一个字模软件来取模(将图形点阵转换为计算机内部显示缓冲单元的数据)。字模软件的界面如图2所示:图2字模软件界面图这个字模软件使用起来相当简单和方便。LCD显示模块显示中文字符串中,显示汉字(16×16点阵)必须使用图形方式。在使用KS0108图形方式时,显示缓冲区单元与显示屏的对应关系如下图所示:图3显示缓冲区单元与显示屏的关系上图所示的显示格式与我们的习惯正好相反,如想在显示屏上显示10010110,则须向RAM中写入01101001。这适应人们的习惯,在字模软件取模时设置“字节倒序”,字模软件在取模的参数设置见图4.5所示。16×16汉字共有32个字节。32字节存放方式见如表11所示:8表1132字节存放方式117218··.1632图4取模参数设置在取模时,须设置取模参数如图3所示:纵向取模、字节倒序。在对字符取模时,可以根据个人需要设置不同字体和字号。不同字体和字号,取模之后得到的对应字阵的宽和高不同,但建议最好用16×16字阵,这是为了在显示过程中便于控制写数据。94.4程序实现流程见图4:图5主程序流程图[10]图6LCD测试流程图实现方案和步骤[10]11105、实验结果及结果讨论在C8051F020系统实验箱上的液晶显示屏上,实验设计的程序见如下附件8,我实现了这些动态显示功能,特设计了以下三个显示结果:(1)结果一:第一个场景是在液晶显示屏上静态显示位图,如图6所示:图7位图上下滚动(2)结果二:第二个场景显示的内容较少,只有几个字——“单片机液晶显示系统设计”是静态的显示效果,如图7所示:图8显示汉字(3)结果三第三个场景是图形动态显示模拟,它们是从左向右推出的,一直移动到显示屏最右端。如图8所示:图9位图从左向右移动6、结论液晶显示器(LCD)具有图形显示功耗低、体积小、质量轻、超薄等诸多其它显示器无法比拟的优点,被广泛用于智能型仪器和低功耗电子产品中。图形点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动、动画、闪烁、文本特征显示等功能,用途十分广泛。本文介绍采用新华龙分司的内置两片KS0108驱动控制器的点阵型液晶显示模块CMG12864B与C8051F020接口的性能特点、硬件电路接口时序和接口软件编程思路及其接口调试。DSP(数字信号处理)系统液晶模块的使用,在硬件方面,关键要满足液晶的接口时序:在软件方面,要正确进行初始化[11]。这样就可以随心所欲显示信息了。7、参考文献[1]李朝青.单片机原理及接口技术[M].北京航空航天大学出版,1999.3:11-67.[2]吴金戎.8051单片机实践与应用[M].清华大学出版社,2001.9:266-293.[3]李秉操.单片机接口技术及其在工业控制中的应用[M].陕西电子编辑部,1991.3:314-336.[4]薛栋梁.MCS-51/151/251单片机原理与应用[M].中国水利水电出版社,2001.6:177-202.[5]新华龙有限公司.C8051F020单片机实验系统使用说明书.[6]刘乐善.微型计算机接口技术及应用[M].武汉:华中科技大学出版社,2000.4:167-177.[7]应自炉.一种8031单片机控制的液晶汉字显示系统.自然科学版,1995第9卷.第3期.[8]童长飞.C8051F系列单片机开发与C语言编程[M].北京:北京航空航天大学出版社,2005:428-444.[9]杨光友、朱宏辉,单片微型计算机原理及接口技术,中国水利水电出版社,北京,2002:55-60.[10]G.EdwardSuh,CharlesW.O’Donnell,SrinivasDevas,Aegis:asingle-chipsecureprocessor,IEEEDesignandTestofComputer.2008.24(6)510-520.[11]M.MorrisMano,CharlesR.Kime.LogicandComputerDesignFundamentalsSecondEditionUpdated.北京:电子工业出版社.2002.7:391-396.14128、附件(1)LCD初始化:voidInitLCD(void) //初始化LCD{ chari,j; LCD_RST=0; Delay1ms(1); LCD_RST=1; LCD_WriteCommand1(0xc0); LCD_WriteCommand2(0xc0); LCD_WriteCommand1(0x3f); //开显示 LCD_WriteCommand2(0x3f); for(j=0;j<8;j++) //清屏 { LCD_WriteCommand1(0xB8+j); //清左半屏 LCD_WriteCommand1(0x40); for(i=0;i<64;i++) LCD_WriteData1(0x00); LCD_WriteCommand2(0xB8+j); //清右半屏 LCD_WriteCommand2(0x40); for(i=0;i<64;i++) LCD_WriteData2(0x00); }}(2)静态显示一幅位图:voidDispBmp(char*buf) //显示一幅位图{inti,j; for(j=0;j<8;j++) //显示位图{ LCD_WriteCommand1(0xB8+j); LCD_WriteCommand1(0x40); for(i=0;i<64;i++) LCD_WriteData1(buf[(j*2)*64+i]); LCD_WriteCommand2(0xB8+j); LCD_WriteCommand2(0x40); for(i=0;i<64;i++) LCD_WriteData2(buf[(j*2+1)*64+i]); }}(3)位图从左到右移动实现:voidDispBmp_Move(char*buf) //左右移动一幅位图{intline,line0,row,eight; //显示位图for(row=0;row<128;row++) {Delay1ms(50);for(eight=0;eight<8;eight++){if(row<64){LCD_WriteCommand1(0xB8+eig

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论