华东交通大学——单片机课程设计1目录一、概述............................................................2二、系统总体方案及硬件设计..........................................22.1系统框图.....................................................32.2单片机最小系统..............................................42.3显示电路....................................................62.4按键控制电路................................................6三、系统软件设计....................................................93.1软件设计概述.................................................93.2汉字显示....................................................103.3上下移屏.....................................错误!未定义书签。3.4左右移屏....................................错误!未定义书签。四、课程设计体会...................................错误!未定义书签。五、参考文献.......................................................13六、附录...........................................................146.1总电路图..................................................6.2总程序..................................................华东交通大学——单片机课程设计2一、概述随着社会的发展,趣来趣多的地方需要应用显示功能,各种数字显示仪器中的显示、广告牌、数码产品等,传统的数码管显示已经远远不能满足各行各业的需求。基于单片机的LCD显示是一种用单片机来控制的一种显示系统,它不仅能显示种各数字、字母、还能显示各种字体的汉字以及一些简单的图象,使用起来极为方便,只要通过对单片机写入一定的程序来控制LCD的显示即可完成,根据程序的不同而产生不同不效果以满足各种不同需求。本文围绕设计以单片机作为LCD液晶显示系统控制器为主线,基于单片机AT89S51,采用的液晶显示控制器的芯片是SED1520,主要实现由按键控制的中文显示、图片显示、滚屏以及左右移动功能。同时也对部分芯片和外围电路进行了介绍和设计,并附以系统结构框图加以说明,着重介绍了本系统应用的各硬件接口技术和各个接口模块的功能及工作过程,并详细阐述了程序的各个模块。本系统是以单片机的C语言来进行软件设计,指令的执行速度快,可读性强。为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。使硬件在软件的控制下协调运作。其次阐述了部分程序的流程图和实现过程。本文撰写的主导思想是软、硬件相结合,以硬件为基础,来进行各功能模块的编写。最后对我所开发的用单片机实现LCD液晶显示器控制原理的设计思想和软、硬件调试作了详细的论述。二、系统总体方案及硬件设计2.1系统框图华东交通大学——单片机课程设计3本系统由电源部分、单片机最小系统部分、LCD12864显示电路部分、按键控制部分组成。其中,单片机最小系统部分包括晶振电路、复位电路。2.2单片机最小系统2.2.1、AT89S52单片机89S51各引脚功能介绍:1.VCC:2.89S51电源正端输入,接+5V。3.VSS:4.电源地端。5.XTAL1:6.单芯片系统时钟的反相放大器输入端。7.XTAL2:8.系统时钟的反相放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一20PF的小电容,可以使系统更稳定,避免噪声干扰而死机。9.RESET:10.89S51的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。11.EA/Vpp:12.EA为英文ExternalAccess的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。如果是使用8751内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。13.ALE/PROG:14.端口3的管脚设置:15.P3.0:RXD,串行通信输入。16.P3.1:TXD,串行通信输出。17.P3.2:INT0,外部中断0输入。18.P3.3:INT1,外部中断1输入。19.P3.4:T0,计时计数器0输入。20.P3.5:T1,计时计数器1输入。21.P3.6:WR:外部数据存储器的写入信号。AT89S51华东交通大学——单片机课程设计422.P3.7:RD,外部数据存储器的读取信号。2.2.2复位电路电路图如下:上电自动复位是通过外部复位电路的电容充电来实现的。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。图2.1单片机复位电路2.2.3、时钟电路时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式:一种是内部时钟方式,另一种为外部时钟方式。本文用的是内部时钟方式。电路图如下:图2.2晶振电路2.2.4LCD12864显示电路管脚名称及功能:华东交通大学——单片机课程设计5管脚号管脚名称电平管脚功能描述1VSS0V电源地2VCC3.0~+5V电源正3V0-对比度(亮度)调整4RS(CS)H/LRS=“H”,表示DB7——DB0为显示数据RS=“L”,表示DB7——DB0为显示指令数据5R/W(SID)H/LR/W=“H”,E=“H”,数据被读到DB7——DB0R/W=“L”,E=“H→L”,DB7——DB0的数据被写到IR或DR6E(SCLK)H/L使能信号7DB0H/L三态数据线8DB1H/L三态数据线9DB2H/L三态数据线10DB3H/L三态数据线11DB4H/L三态数据线12DB5H/L三态数据线13DB6H/L三态数据线14DB7H/L三态数据线15PSBH/LH:8位或4位并口方式,L:串口方式(见注释1)16NC-空脚17/RESETH/L复位端,低电平有效(见注释2)18VOUT-LCD驱动电压输出端19AVDD背光源正端(+5V)(见注释3)20KVSS背光源负端(见注释3)电气参数:项目符号最小典型最大单位电源电压VDD-VSS4.755.05.25V液晶驱动电压VDD-VADJTa=0-11.0-11.5-12.0Ta=25-10.5-11.0-11.5Ta=50-10.0-10.5-11.0输入信号电压VIH0.8VDD-VDD+0.3VIL0-0.2VDDLCM工作电IDD-38mA华东交通大学——单片机课程设计6流背光驱动电流ILED-6080液晶驱动电流IEE基本指令系统:模块控制芯片提供两套控制命令,基本指令和扩充指令如下:指指令码功能令RSR/WD7D6D5D4D3D2D1D0清除显示0000000001将DDRAM填满20H,并且设定DDRAM的地址计数器(AC)到00H地址归位000000001X设定DDRAM的地址计数器(AC)到00H,并且将游标移到开头原点位置;这个指令不改变DDRAM的内容显示状态开/关0000001DCBD=1:整体显示ONC=1:游标ONB=1:游标位置反白允许进入点设定00000001I/DS指定在数据的读取与写入时,设定游标的移动方向及指定显示的移位游标或显000001S/R/XX设定游标的移动与显示的移位控制位;这个指令不改变DDRAM的内容华东交通大学——单片机课程设计7示移位控制CL功能设定00001DLXREXXDL=0/1:4/8位数据RE=1:扩充指令操作RE=0:基本指令操作设定CGRAM地址0001AC5AC4AC3AC2AC1AC0设定CGRAM地址设定DDRAM地址0010AC5AC4AC3AC2AC1AC0设定DDRAM地址(显示位址)第一行:80H-87H第二行:90H-97H读取忙标志和地址01BFAC6AC5AC4AC3AC2AC1AC0读取忙标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值写数据到RAM10数据将数据D7——D0写入到内部的RAM(DDRAM/CGRAM/IRAM/GRAM)读出RAM的值11数据从内部RAM读取数据D7——D0(DDRAM/CGRAM/IRAM/GRAM)2.2.5、按键控制电路电路由三个独立按键开关组成,分别与单片机的I/O相连,控制调整电路的加、减以及确定。按键的开关状态通过一定的电路转换为高、低电平状态。按键闭合过程在相应的I/O端口形成一个负脉冲。闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。抖动持续时间的常长短与开关的机械特性有关,一般在5-10ms之间。为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。本文采用的是独立式按键,直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会产生互相影响。P3.0口表示下移功能键,当开关闭合时,控制显示屏内容整体向下滚动。P3.1口表示上移功能键,当开关闭合时,控制显示屏内容整体向上华东交通大学——单片机课程设计8滚动。P3.2口表示右移功能键,当开关闭合时,控制显示屏内容整体向右移动。P3.3口表示左移功能键,当开关闭合时,控制显示屏内容整体向左移动。按键控制电路三、软件部分3.1、软件系统概论此设计是由单片机控制的LCD显示系统,外设四个按钮来控制显示的方式。对于按钮的工作方式可以是中断也可以是查询,在此设计中所选用的顺序结构。用单片机的P3口的低4来作为LCD的显示控制端,即控制LCD使能端、读写控制揣、数据指令选择端及两个选屏端。对于此设计课题,因为要求是用128×64的显示器来显示汉字,而汉字及字符(如空格等)是需要显示代码的。所以,首先是通过一定的软件如ZIMO等来获取你想要显示的汉字的编码代码。有了这款软件,就方便多了,只在要软件中打入你想要显示的汉字或是字符,它就会自动生成代码,使用起来非常方便,而不需要人工去编写相应的代码。开始——显示图形——检测按键——显示相应内容。3.2、汉字显示对于此设计课题,因为要求是用128×64的显示器来显示汉字,而汉字及字符(如空格等)是需要显示代码的。所以,首先是通过一定的软件如ZIMO等来获取你想要显示的汉字的编码代码。有了这款软件,就方便多了,只在要软件中打入你想要显示的汉字或是字符,它就会自动生成代码,使用起来非常方便,而不需要人工去编写相应的代码。由于此LCD的显示屏是被分为了两部分的,即左半屏和右半屏,分别由CS1和CS2来控制,两个半屏的内存都分别由X和Y两个地址来确定,X地址共64位,而Y地址两边各64位,一共128位,所以有的时候