您好,欢迎访问三七文档
电子信息专业实验报告课程:数字信息技术专业实验题目:LCD实验学生:茹滋岩(2012141451109)张书恺(2012141451007)蒋正东(2012141451)邓童虎(2012141451)组号:5点阵型12864液晶的使用【实验目的】熟悉点阵型128*64液晶显示器的驱动电路及使用方法。掌握用AT89S52来控制液晶显示器的方法掌握用扫描法识别矩阵按键的方法进一步熟悉EDA实验平台【实验器材】EDA实验箱、PC机、DB25-ISP下载线、USB转换线、USB-BLASTER编程器等软件:QuatusII、KeiluVision2、ISPlay等。【实验原理】单片机简介在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成了单芯片微型计算机,即单片机。Intel公司首先推出了MCS-51系列单片机:集成8位CPU、4K字节ROM、128字节RAM、4个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64K,并有控制功能较强的布尔处理。80C51是MCS-51系列中的一个典型品种;其它厂商以8051为基核开发出的CMOS工艺单片机产品统称为80C51系列。当前常用的80C51系列单片机主要产品厂商有:Intel、ATMEL、Philips、华邦、Dallas、STC、Siemens(Infineon)等。实验板上使用的AT89S52是与MCS-51单片机产品兼容的产品,它具有8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作、0Hz~33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器、八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器等功能。各管脚功能简介如下:P0口:P0口是一个8位漏极开路的双向I/O口。需要指出的是,在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。引脚号第二功能:P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INTO(外中断0)P3.3INT1(外中断1)P3.4TO(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)RST——复位输入(高电平复位)ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。PSEN——程序储存允许(PSEN)EA/VPP——外部访问允许,访问外部程序存储器,EA端保持低电平。EA端为高电平,执行内部程序存储器的指令。液晶简介液晶作为显示器件广泛应用于各种电子仪器、便携设备上,点阵液晶可以方便的显示各种字符、图片。WGM12864H液晶显示模块采用三星公司的KS0107液晶控制器,能够显示128*64像素图形或4行16*16中文字符。一.系统硬件电路1.WGM12864H液晶模块2.WGM12864H操作指令(1)显示开关控制。此命令用于控制液晶显示器开关。D=1:显示开。显示器可以进行各种显示操作。D=0:显示关。不能对显示器进行各种显示操作。开显示时,液晶模块DDRAM的内容显示在LCD屏幕上,控制显示器的开关并不影响DDRAMA中的数据和内部状态。(2)设置显示起始行。WGM12864H液晶模块共有64行,由Z地址计数器进行控制。Z地址计数器是一个六位计数器A5:A0,此计数器具有循环计数功能,它是用于行扫描同步,当一行扫描完成时此计数器自动加一,指向下一行扫描数据,RST复位后Z计数器为0。起始行可以是64行中R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0000011111DR/WD/IDB7DB6DB5DB4DB3DB2DB1DB00011A5A4A3A2A1A0的任一行,如设置A5:A0为62,则起始行于DDRAM中的行对应关系如下:此命令常用于滚动显示文本/图像信息。(3)设置页地址。WGM12864H液晶显示屏的128*64点阵与DDRAM的128*64位显存相对应,如下图所示:X地址计数器为DDRAM的页指针。所谓页地址就是DDRAM的行地址,8行为页。WGM液晶显示器共64行,即8页,A2:A0表示0~7页。读写数据对页地址没有影响,页地址由本指令或RST信号改变,复位后页地址为0。(4)设置列地址。R/WD/IDB7DB6DB5DB4DB3DB2DB1DB00001A5A4A3A2A1A0Y地址计数器为DDRAM列指针。DDRAM共128列,分为左右两屏,每屏列地址均编址为0-63。此指令将A5:A0送入Y地址计数器,作为DDRAM的Y地址指针。在对DDRAMA进行读写操作后,Y地址指针自动加一,指向下一个DDRAM单元。当Y地址计数器计数到63后,自动翻转为当前屏的0列。(5)写显示数据。R/WD/IDB7DB6DB5DB4DB3DB2DB1DB001D7D6D5D4D3D2D1D0D7-D0为显示数据,此指令把D7-D0写入相应DDRAM单元,Y地址指针自动加一。(6)读状态。R/WD/IDB7DB6DB5DB4DB3DB2DB1DB010BF0ON/OFFRST0000当R/W=1、D/I=0、E=1时,状态分别输出到数据总线DB7-DB0相应位置。BF:BF标志提供内部工作情况。BF=1表示模块在进行内部操作,此时模块不接受外部指令和数据。BF=0时模块为准备状态,随时可接受外部指令和数据。ON/OFF:表示显示器开关触发器状态。RST:RST=1表示内部正在进行初始化,此时模块不接受外部指令和数据。(7)读显示数据。DDRAM的行62630123……6061显示的行123456……6364R/WD/IDB7DB6DB5DB4DB3DB2DB1DB00010111A2A1A0R/WD/IDB7DB6DB5DB4DB3DB2DB1DB011D7D6D5D4D3D2D1D0当R/W=1、D/I=1、E=1时,此时DDRAM相应单元数据被输出到数据总线DB7-DB0相应位置,Y地址指针自动加一。使用此12864液晶时,数据总线DB7-DB0分别接单片机的Px.7-Px.0,R/W、D/I、CS1、CS2、RST分别接单片机其它五个IO口进行控制。液晶其它引脚按引脚功能图上接线即可。3.4*4矩阵键盘模块键盘电路图如下:这是一种简单的非编码键盘,线路简单,识别可靠。4条行线、4条列线分别接单片机IO口,列线上加上拉电阻,提高抗干扰性。在行列交叉点接入16个按键。由于按键数量较多,没有给每一个按键单独加防抖电路,防抖功能依靠软件上延时实现。键盘工作原理:先给行线、列线赋1,然后给某一个列线赋0,检查行线,若某一行线为0,则表示有按键被按下,此时进行约10ms的延时,再次判断是否有按键被按下。确认有按键被按下后,根据赋0的列线和检测到为0的行线即可唯一确定被按下的是哪个键。然后所有线赋1,再给另外一列赋0,以后的工作同上。这样逐列扫描键盘即可。软件中给这每个键赋不同的值,即可识别出16个按键。如果扫描时间足够短,使用这种逐列扫描的方式可以有效识别所按按键。4.单片机的基本工作电路单片机的基本工作电路同以上几例,在此不再赘述。二.系统主要程序设计1.4*4行列式16键键盘扫描程序流程图开始第一列置0行列全赋1读入IO口值查表对照求出键值返回键值N第二列置0行列全赋1读入IO口值查表对照求出键值返回键值N第三列置0行列全赋1读入IO口值查表对照求出键值返回键值N读入IO口值查表对照求出键值返回键值N子程序返回Y行线全为1?行列全赋1Y第四列置0Y行线全为1?Y行线全为1?行线全为1?2.主程序流程图三.完整源程序参考程序如下:/********************************************************************/#includeat89x51.h#defineuintunsignedint#defineucharunsignedchar#defineulongunsignedlong#definelcdbusP0sbitlcddi=P1^0;sbitlcdrw=P1^1;sbitlcde=P1^4;sbitlcdcs1=P1^2;sbitlcdcs2=P1^3;sbitlcdbf=P0^7;/********************************************************************/ucharcodetitle[]={/*--文字:--*//*--宋体12;此字体下对应的点阵为:宽x高=16x16--*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,开始初始化显示欢迎屏幕按键扫描输入数字返回按键值显示按键值/*--文字:请--*//*--宋体12;此字体下对应的点阵为:宽x高=16x16--*/0x40,0x42,0x4C,0xC4,0x00,0x22,0xAA,0xAA,0xAA,0xBF,0xAA,0xAA,0xAA,0x22,0x20,0x00,0x00,0x00,0x00,0x7F,0x20,0x10,0xFF,0x0A,0x0A,0x0A,0x4A,0x8A,0x7F,0x00,0x00,0x00,/*--文字:输--*//*--宋体12;此字体下对应的点阵为:宽x高=16x16--*/0x44,0xF4,0x4F,0xE4,0x44,0x64,0x90,0x98,0x94,0x93,0x14,0x98,0x08,0xD0,0x10,0x00,0x04,0x04,0x04,0xFF,0x02,0x02,0xFF,0x4A,0x8A,0x7F,0x00,0x3F,0x80,0xFF,0x00,0x00,/*--文字:入--*//*--宋体12;此字体下对应的点阵为:宽x高=16x16--*/0x00,0x00,0x00,0x00,0x01,0x83,0x76,0x18,0x60,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x20,0x10,0x08,0x06,0x01,0x00,0x00,0x00,0x00,0x03,0x04,0x18,0x30,0x10,0x00,/*--文字:数--*//*--宋体12;此字体下对应的点阵为:宽x高=16x16--*/0x10,0x92,0x54,0x38,0xFF,0x38,0x54,0x52,0x80,0xF0,0x1F,0x12,0x10,0xF0,0x10,0x00,0x42,0x42,0x2A,0x2E,0x13,0x1A,0x26,0x02,0x40,0x20,0x13,0x0C,0x33,0x60,0x20,0x00,/*--文字:据--*//*--宋体12;此字体下对应的点阵为:宽x高=16x16--*/0x08,0x08,0x08,0xFF,0x88,0x40,0xFE,0x92,0x92,0x92,0xF2,0x92,0x92,0x9E,0
本文标题:实验一LCD实验
链接地址:https://www.777doc.com/doc-2457523 .html