1、 摘 要在本课题中,主要介绍了LCD的工作原理,LCD的参数,LCD的驱动方法,在硬件部分首先介绍了AT89C51单片机引脚及各功能,并对硬件原理连接图经行了分析,在软件设计部分首先设计了软件流程图,然后利用流程图编制了程序,编译连接此程序,然后进行了运行,实现了在液晶显示器上显示字符,当用系统键盘输入数字键“0F”,液晶显示器上第二行自左向右显示该键入的数值。按功能键,液晶显示器清屏显示待令符“P”。关键词:LCD,字符型,AT89C51单片机目 录1 绪论11.1 课题描述.12 LCD的相关介绍22.1 LCD的基本工作原理22.2 LCD的基本参数32.3 LCD引脚功能说明32.4
2、LCD 的驱动方法43 硬件设计53.1 AT89C51功能简介53.2 硬件设计原理图及分析74 软件设计过程84.1 程序流程图84.2 软件设计程序9总结17致谢17参考文献191 绪论1.1 课题描述在本课题主要是要实现162 LCD字符式液晶显示,要完成此课题,首先要弄懂LCD的原理及参数设置,先进行了89C51应用系统的一些设计,162LCD显示器的驱动设计,如一些晶振电路和上电复位电路的设计等等,当硬件电路设计好后,然后编制程序,控制并实现相应课题要求。LCD显示器是绿色节能显示器,在很多智能仪器仪表中广泛使用,LCD显示器可分为三种:外形像LED数码管的笔段字符显示LCD,点阵
3、字符型LCD和点阵图像型LCD前两者是用来显示数字或ASCII码的,后者用来显示图形图像的。液晶显示器是一种被动式的显示器,即液晶本身并不发光,是利用液晶经过处理后能够改变光线传输方向的特性,达到显示字符或者图形的目的。这类显示器具有体积小、重量轻、功耗极低、显示内容丰富等特点,在单片机应用系统中有着日益广泛的应用。 2 LCD的相关介绍2.1 LCD的基本工作原理LCD俗称液晶显示器,它是利用一种叫液晶的物体在加电压的条件呈现不规则特性,对光产生不同的反射效果已达到显示目的,液晶是一种介于固态和液态之间的物质,是具有规则性分子排列的有机化合物,如果把它加热,会呈现透明液体状态,把它冷却,则会
4、出现结晶颗粒的浑浊固体状态,在单片机系统中应用晶液显示器作为输出器件有以下几个优点:(1)显示质量高,由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。(2)数字式接口,液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。(3)体积小、重量轻,液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。(4)功耗低,相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。按物理结构,液
5、晶显示器可分为以下四种:扭曲向列型,超扭曲向列型,双层超扭曲向列型,薄膜晶体管型。前三种类型在显示与原理上有很多共性。LCD的内部结构原理,由于液晶的“四壁效应”,在定向膜的作用下,液晶材料的分子在正背玻璃板电极上呈水平排列,但排列方向互为正交,而玻璃电极之间的分子成连续扭转过渡,这样的构造能使晶体对光产生旋光作用,使光的方向旋转90,所以说,LCD显示器属于非主动发光的光源,为了能够看到LCD显示器中的字符后者图形,必须在光线充足的地方,或为LCD提供主动的发光源。为了夜间能够使用LCD显示器,目前绝大多数LCD显示器都带有背光板。液晶显示分为正显示与负显示两种方式:正显示是把上偏振片和下偏
6、振片制成90夹角,负显示是把上下偏正片的方向制成一致。LCD显示器工作原理如图1所示,当外界主动发光源的光线通上偏振片后形成偏光,偏震方向为垂直方向。然后次偏振光通过液晶材料之后被旋转90,此时光线的偏振方向为水平,此方向与下偏振方向一致,因此此光线能够穿过先偏振片而达到反射板。最后该光线的反射光线沿原路返回,从而使LCD显示器呈透明状。当在液晶盒的上下电极间加上一定电压后,电极部分的液晶分子转为垂直排列,从而失去旋光性。因此,从上偏振片入射的光不能被旋转,当此偏振光到达下偏振片时,被下偏振片吸收,无法到达反射板形成反射光,所以成黑色。外界光源上偏振片液晶盒先偏振片反射面 图1 LCD显示器工
7、作原理示意图2.2 LCD的基本参数162LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如图2所示:图2 162LCD尺寸图162LCD主要技术参数: 显示容量:162个字符 芯片工作电压:4.55.5V 工作电流:2.0mA(5.0V) 模块最佳工作电压:5.0V 字符尺寸:2.954.35(WH)mm2.3 LCD引脚功能说明1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表1所示:编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显
8、示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极 表1:引脚接口说明表第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R
9、/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。2.4 LCD 的驱动方法162LCD显示器的驱动可以采用直流电或交流电,但由于LCD在受直流电压偏置时会发生电化学分解反应,使它的寿命大大衰减,因此在实际应用中,不管LCD是显示还是熄灭,加在他两端的电压通常是交流电压信号,使得在显示时,LCD两端的电压差为一交变电压,在熄灭时LCD两端电压差为0。由LCD组成的显示器,由字符显示器和图形显示器之分,字符显示器又分为笔段字
10、符型显示器和点阵字符型显示器。在应用中,LCD驱动通常分为静态驱动和动态驱动。在静态驱动中,每一段或点都需要一个控制引脚,这在显示位数不多时还比较方便,但对多位或点阵就必须用动态驱动方式。 在实际应用中,不论笔段字符还是点阵字符显示,豆科采用集成电路芯片作为驱动,这样有利于简化电路,提高可靠性。3 硬件设计3.1 AT89C51功能简介 AT89C51是带4K字节闪烁可编程可擦除只读存储器(EPEROM)的低电压、高性能CMOS 8位微处理器(俗称单片机)。该单片机与工业标准的MCS51型机的指令集和输出引脚兼容。AT89C51将多功能8位CPU和闪烁存储器组合在单个芯片中,为很多嵌入式控制提
11、供了灵活性高且价格低廉的方案。 AT89C51的主要特性如下:寿命达1000写/擦循环;数据保留时间:10年;全静态工作:0Hz24MHz;三级程序存储器锁定;1288位内部RAM;32可编程I/O线; 2个16位定时器/计数器;5个中断源;可编程串行通道;低功耗闲置和掉电模式;片内振荡器和时钟电路。以下两图分别为AT89C51的内部功能图和引脚排列图。 图3 AT89C51内部功能图如图4,AT89C51引脚功能介绍。 图4 AT89C51引脚排列AT89C51引脚排列如图4所示,引脚功能如下: VCC(40):5V。 GND(20):接地。 P0口(3932):P0口为8位漏极开路双向I/
12、O口,每引脚可吸收8个TTL门电流。 P1口(18):P1口是从内部提供上拉电阻器的8位双向I/O口,P1口缓冲器能接收和输出4个TTL门电流。 P2口(2128):P2口为内部上拉电阻器的8位双向I/O口,P2口缓冲器可接收和输出4个TTL门电流。 P3口(1017):P3口是8个带内部上拉电阻器的双向I/O口,可接收和输出4个TTL门电流,P3口也可作为AT89C51的特殊功能口。 RST(9):复位输入。当振荡器复位时,要保持RST引脚2个机器周期的高电平时间。 ALE/PROG(30):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节,在FLASH编程期间,此引脚用于输
13、入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6,它可用作对外部输出的脉冲或用于定时目的,要注意的是,每当访问外部数据存储器时,将跳过1个ALE脉冲。 3.2 硬件设计原理图及分析1602液晶显示模块可以和单片机AT89C51直接接口,电路如图5所示图5 硬件原理图如图5所示 DB0应连接P0.0 ,DB4应连接P0.4 ,RW应连接P2.1,DB1应连接P0.1,DB5应连接P0.5 ,RS应连接P2.0, DB2应连接P0.2 ,DB6应连接P0.6 , E应连接P2.2,DB3应连接P0.3 ,DB7应连接P0.7 ,VLCD接1K电阻到GND键盘接
14、PS/2应连接51,DATA应连接P3.4,CLK应连接P3.3 ,接在51的外部中断,触发方式为低电平。硬件原理P0口为8位漏极开路双向I/O口,每引脚可吸收8个TTL门电流。 P3口是8个带内部上拉电阻器的双向I/O口,可接收和输出4个TTL门电流,P3口也可作为AT89C51的特殊功能口P2口为内部上拉电阻器的8位双向I/O口,P2口缓冲器可接收和输出4个TTL门电流。 P1口是从内部提供上拉电阻器的8位双向I/O口,P1口缓冲器能接收和输出4个TTL门电流。 在硬件实验运行时,连接138译码输入端A.B.C,其中A连A2,B连A3,C连A4,138使能控制输入端G与总线单元上方的GS相
15、连。液晶显示区的RS、R/W分别与地址总线A0、A1相连;液晶显示区的E与02门电路的脚相连,02门电路的脚与08门电路的脚相连,02门电路的脚与译码单元Y0相连;08门电路的脚、脚分别与系统的IOW、IOR相连。用8芯扁平电缆将8251串行通信单元的数据总线插座与数据总线单元任一插座相连。4 软件设计过程4.1 程序流程图 图6 软件流程图4.2软件设计程序1602LCD液晶显示接口实验程序如下:LCD EQU 0FFE0HLCDWI EQU LCD+0 LCDWD EQU LCD+1 LCDRS EQU LCD+2 LCDRD EQU LCD+3 OUTBIT EQU 0FFDDH ;位控
16、制口/键扫口OUTSEG EQU 0FFDCH ;段控制口IN_KEY EQU 0FFDEH ;键盘读入口 ORG 0000H MOV SP,#40H MOV DPTR,#OUTSEG MOV A,#0FFH MOVX DPTR,AMAIN: MOV DPTR,#LCDWI ;启动LCD MOV A,#30H MOVX DPTR,A ;第1次启动LCD MOV R6,#30H ;延时参数 CALL DELAY ;延时500ms MOV A,#30H MOVX DPTR,A ;第2次启动LCD DJNZ R3,$ ;等待500us MOV A,#30H MOVX DPTR,A ;第3次启动LCD
17、 DJNZ R3,$ ;等待500us MOV A,#38H ;设置工作模式: MOVX DPTR,A ;汇流、2行、5*7点阵 DJNZ R3,$ ;等待500us MOV A,#08H ;关显示 MOVX DPTR,A DJNZ R3,$ ;等待500us MOV A,#01H ;LCD清屏 MOVX DPTR,A MOV R6,#30H ;延时参数 CALL DELAY ;延时500ms MOV A,#0EH ;开显示、光标不闪烁 MOVX DPTR,A DJNZ R3,$ ;等待500us CALL CHKBUSY ;检测LCD状态LCD_P: MOV A,#06H ;光标右移且地址加
18、1 CALL LCD_WI MOV A,#02H ;光标归位 CALL LCD_WI MOV DPTR,#LCDTAB;显示LCD初始化信息 MOV R7,#0MLOOP: MOV A,R7 MOVC A,A+DPTR INC R7 CJNE A,#0,SLOOP ;结束标志 JMP BREAK ;退出循环SLOOP: CALL LCD_WD SJMP MLOOPBREAK: MOV A,#0C0H CALL LCD_WI MOV A,#(P) CALL LCD_WD MOV A,#0C0H ;定义光标 CALL LCD_WI MOV R7,#0KLOOP: CALL XGEL ;读键值 CJ
19、NE A,#20H,KLP0;有键按下转KLP0 SJMP KLOOP ;无键按下继续读KLP0: JB ACC.7,MAIN ;是功能键转MAIN MOV B,A ;暂存键值 MOV A,R7 CJNE A,#15,KLP1 ;未显示满15个字符转 MOV R7,#0 ;清计数 MOV A,#0C0H ;显示满15个字符重定义光标 CALL LCD_WIKLP1: MOV A,B CALL LCD_WD ;数字键送LCD显示 INC R7 SJMP KLOOP ;继续读键;键扫消抖程序XGEL: MOV R6,#6 ;延时参数 CALL DELAY ;延时消抖 CALL GETKEY ;得到
20、键盘扫描码 MOV R4,A ;键消抖处理程序 MOV R1,#48H MOV A,R1 MOV R2,A INC R1 MOV A,R1 MOV R3,A MOV A,R4 XRL A,R3 MOV R3,04H ;R4 MOV R4,02H ;R2 JZ XGE10 MOV R2,#88H MOV R4,#88H ;键盘消抖延迟参数XGE10: DEC R4 MOV A,R4 XRL A,#82H JZ XGE11 MOV A,R4 XRL A,#0EH JZ XGE11 MOV A,R4 JZ XGE12 MOV R4,#20H DEC R2 SJMP XGE13XGE12: MOV R
21、4,#0FHXGE11: MOV R2,04H ;R4 NOP NOP MOV R4,03H ;R3XGE13: MOV R1,#48H MOV A,R2 MOV R1,A INC R1 MOV A,R3 MOV R1,A MOV A,R4 JB ACC.5,XG113 MOV DPTR,#KEYCODE MOVC A,A+DPTRXG113: RET;键扫子程序GETKEY: SETB RS1 MOV R2,#0FEH MOV R3,#08H MOV R0,#00HLGEP1: PUSH DPL PUSH DPH MOV DPTR,#OUTBIT MOV A,R2 MOVX DPTR,A R
22、L A MOV R2,A MOV DPTR,#IN_KEY MOVX A,DPTR POP DPH POP DPL CPL A ANL A,#0FH JNZ LGEP0 INC R0 DJNZ R3,LGEP1XGEP33: MOV A,#20HXGEP3: MOV R2,A MOV A,#0FH PUSH DPL PUSH DPH MOV DPTR,#OUTBIT MOVX DPTR,A POP DPH POP DPL MOV A,R2 CLR RS1 SJMP RETURNLGEP0: CPL A JB ACC.0,XGEP0 MOV A,#00H SJMP LGEPPXGEP0: JB
23、ACC.1,XGEP1 MOV A,#08H SJMP LGEPPXGEP1: JB ACC.2,XGEP2 MOV A,#10H SJMP LGEPPXGEP2: JB ACC.3,XGEP33 MOV A,#18HLGEPP: ADD A,R0 SJMP XGEP3RETURN: RET;读LCD忙闲状态CHKBUSY:PUSH DPH PUSH DPL PUSH ACC MOV DPTR,#LCDRSRECHK: MOVX A,DPTR JB ACC.7,RECHK POP ACC POP DPL POP DPH RET;写LCD命命LCD_WI: CALL CHKBUSY PUSH D
24、PH PUSH DPL MOV DPTR,#LCDWI MOVX DPTR,A POP DPL POP DPH RET;写LCD数据LCD_WD: CALL CHKBUSY PUSH DPH PUSH DPL MOV DPTR,#LCDWD MOVX DPTR,A POP DPL POP DPH RET;延时子程序DELAY: PUSH 07H PUSH 06H MOV R7,#0DLOOP: DJNZ R7,$ DJNZ R6,DLOOP POP 06H POP 07H RET;键值表KEYCODE:DB 7,4,8,5,9,6,A,B DB 1,0,2,F,3,E,C,D DB 80H,8
25、1H,82H,83H,84H,85H,86H,87H DB 88H,89H,8AH,8BH,8CH,8DH,8EH,8FHEND选芯片, 元件按设计连线 后编译连接并运行运行此程序,在液晶显示器上会显示字符,利用系统键盘输入数字键“0F”,液晶显示器第二行自左向右显示该键入的数值。总 结在本次课程设计中,掌握了LCD显示器的一般工作原理,晶振及复位,LCD的驱动方法,和AT89CS5单片机引脚及功能,并用AT89C51应用系统设计,晶振电路, 上电复位电路等设计了162LCD字符液晶显示器,编制了程序,在液晶显示器上显示字符,当输入一个数字,在液晶显示器上会得到相应的显示。在本次设计中遇见了很
26、多困难,在硬件原理图部分设计的不完善,经过老师讲解,改善了设计,程序设计中不清楚的就通过主动查阅资料,请教老师,最后设计出了程序,通过这次单片机课程设计提高了自己独立处理问题的能力,对单片机也有了更深一步的认识,在以后的工作和学习中会很有帮助,我会一直努力的。致 谢在这次课程设计过程中,要感谢给我的指导老师和我们小组中的其他成员。老师很认真的指出了我设计中的不足,并帮我改正了其中的错误,让我认识到要认真用心的来完成课程设计,使我做得更好。在这次课程设计当中我学到了很多,在以后的日子里,我会更加努力地学习专业知识,并能熟练的掌握它们。同时我也要感谢同小组的其他成员,同一个组的同学在讨论过程中也互相帮助让我能更快地将这次课程设计完成。参考文献1 胡汉才单片机原理与接口技术M北京:清华大学出版社,1995.62 楼然苗等51系列单片机设计实例M北京:北京航空航天出版社,2003.3 3 何立民. 单片机高级教程M北京:北京航空航天大学出版社,20014 赵晓安. MCS-51单片机原理及应用M. 天津:天津大学出版社,2001.35 肖洪兵. 跟我学用单片机M. 北京:北京航空航天大学出版社,2002.86 夏继强. 单片机实验与实践教程M. 北京:北京航空航天大学出版社, 2001 7 于凤明单片机原理及接口技术M北京:中国轻工业出版社1998