实验十五点阵LCD液晶显示屏实验.doc_第1页
实验十五点阵LCD液晶显示屏实验.doc_第2页
实验十五点阵LCD液晶显示屏实验.doc_第3页
实验十五点阵LCD液晶显示屏实验.doc_第4页
实验十五点阵LCD液晶显示屏实验.doc_第5页
免费预览已结束,剩余4页可下载查看

下载本文档

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

文档简介

实验十五 点阵LCD液晶显示屏实验一、实验目的:学习获取字模的方法;学习122X32A液晶LCD的原理及编程方法;二、实验内容:在LCD上显示字样。三、实验器材:1、单片机综合实验仪 1 台 2、KEIL仿真器 1 台3、连线 若干 根 4、计算机 1 台四、工作原理: 1、我们选用的122X32A点阵式液晶LCD,是内置SED1520液晶显示控制器的屏,它集行、列驱动器和控制器于一体,被广泛应用于小规模液晶显示模块中。SED1520内置2560位显示RAM区,RAM中的1位数据控制液晶屏上一个象素的亮、暗,“1”为亮,“0”为暗。它具有16个行驱动输出和61个列驱动输出,可以直接与80系列或68系列的CPU相连,驱动占空比为1/32,显示内容:122X32点。2、122X32A点阵式液晶LCD电路图:LCD PANEL122X32SED1520SEG1-61SED1520SEG62-122COM1-16COM17-32E1R/WDB0-DB7/RESE2A0122X16 DOTS122X16 DOTS121516引 脚符 号电 平说 明1VDD50V电源电压2GND0V接地(GND)3V0可调LCD驱动电压(对比度调节)4/RESH/L复位信号5E1H,HL片使能信号16E2H,HL片使能信号27R/WH/LH:读;L:写8A0H/LH:数据;L:指令9DB0H/L数据位010DB1H/L数据位111DB2H/L数据位212DB3H/L数据位313DB4H/L数据位414DB5H/L数据位515DB6H/L数据位616DB7H/L数据位73、极限参数:名称符号测试条件标准值单位最小值最大值电源电压VDD-VCCTa=25065VLCD驱动电压VDD-V00120V输入电压Vi0VDDV4、电参数:名称符号测试条件标准值单位最小值典型值最大值电压逻辑VDD-VSS-47550525VLCDVDD-V0-455565V电流逻辑IDD-25-mALCDIEE-20-mALCD工作电压(推荐值)VDD-V00-62-V25-55-V40-48-V输入电压高电平VIH高电平07VDD-VDDV低电平VIL低电平0-03VDDV5、Read/Write Timing for the 80-port MPU(Ta=0 to 75,VSS=.0V 0)tAH8A0,/CS tAW8 tCYC8 tCC/WR,/RD tDS8tDH8D0 - D7(WRITE) tACC8 tOH8D0 - D7(READ)ParameterSignalSymbolConditionRatingUnitMinTypeMaxAddress hold timeA0,/CStAH810-nsAddress set-up timetAW820-nsSystem cycle time/WR,/RDtcyc81000-nsControl pulse widthtcc200-nsData Set-up timeD0-D7tDS880-nsData hold timetDH810-nsRD access timetACC8CL=100PF-90nsOutput disable timetOH810-60nsThe ratings when VSS=.0V are approximately 100 higher than when VSS=.0V.6、Control timimg for 80 - port/68 - port display(Ta = 0 to 75, VSS = .0V 0)CL tWHCL tF tWLCL tDFRtRFRParameterSignalSymbolConditionRatingUnitMinTypeMaxLOW pulse widthCLtWLCL35-nsHIGH pulse widthtWHCL35-nsRising timetR-30150nsFalling timetF-30150nsFR delay timeFRtDFRInput timing-2.00.22.0nsOuput timing Cl=100pf-0.20.4ns7、指令功能:SED1520有13条指令,从作用上可分为两大类:一类为显示方式的设置指令,前6条指令为这一类指令,它们只需在初始化程序中写入一次即可。另一类为显示数据读/写操作的指令,从第7条往下(包括读状态字)都是这类指令。CommandRDWRA0D7D6D5D4D3D2D1D01Display ON/OFF10010101110/12Display START Line100110Display START address(0-31)3Page Address Set100101110Page(0-3)4Column(Segment) Address Set1000Column address (0-79)5Status Read010BUSYACCON/OFFRET00006Write Display Data101Write Data7Read Display Data011Read Data8ADC Select10010100000/19Static Drive ON/OFF10010100100/110Duty Select10010101000/111Read Modify Write1001110000012End1001110111013Reset10011100010COM1:Switches the entire display ON or OFF,regardless of the Display RAM data or the internal statusCOM2:Determines the line of RAM data to be displayed at the display top lineCOM3:Sets the page of the Display RAM in the page address registerCOM4:Sets the column address of the Display RAM in the column address registerCOM5:Reads the status BUSY 1: Busy(internal processing) 0: READY statusADC 1: Rightward(forward)output 0: leftward(reverse)outputON/OFF 1: Display OFF 0: Display ONRET 1: Resetting 0: NormalCOM6:Writes the data on the data bus to RAMCOM7:Reads data from the Display RAM onto the data busCOM8:Used to reverse the correspondence between the Display RAM column address and segment driver output ports0: Rightward(forward)output 1: leftward(reverse)outputCOM9:Selects normal display operation or static all-lit drive display operation.1: Static drive(Power Save) 0: Normal display operationCOM10:Selects the duty factor for driving LCD cells1: 1/32 duty 0: 1/16 dutyCOM11:Increments the column address counter by one only when display data written but not when it is read.COM12: Cancels the Ready Modify Write ModeCOM13:Resets the Display START line to the 1st line in the register.Resets the column address counter to 0 and page address register to 3五、接线方案:六、程序框图:LCD液晶显示主程: LCD液晶显示初始化子程序:调用LCD初始化子程序调用LCD清屏子程序设置页地址=02H,列地址=0H,字符代码寄存器00H调用显示“来”字子程序设置页地址=02H,列地址=0FH,字符代码寄存器01H调用显示“到”字子程序设置页地址=00H,列地址=5BH,字符代码寄存器0EH调用显示“产”字子程序设置页地址=00H,列地址=6AH,字符代码寄存器0FH调用显示“品”字子程序开 始分别置COM=0E2H,复位COM=0A4H,关闭休闲状态COM=0A9H,设置占空比COM=0A0H,正向排序COM=0C0H,设置显示起始行COM=0AFH,开显示设置调用E1写指令代码子程序调用E2写指令代码子程序 LCD液晶显示清屏子程序: LCD显示子程序:页面地址加1YY开 始页面地址置0,列地址置0显示数据为“0”一页清满80个字节吗?满4页吗?结束NN开 始确定字符字模块首地址取代码计算字符字模块首地址取间址寄存器值取汉字字模数据写数据七、实验步骤:1、设定仿真模式为程序空间在仿真器上,数据空间在用户板上。2、系统分配给LCD的地址为:0FA00H-0FBFFH,0F800H-0F9FFH3、设计称序并执行,观察结果。八、思考问题:1、显示“思考问题”字样。2、修改程序,使其上、下、左、右移动。九、实验连线: 无连线。十、实验程序: ;中文LCD,参阅书.显示字符#include reg51.h#include absacc.h#include intrins.h#define PD1 61 /* 122/2 分成左右两半屏(122x32) */unsigned char Column;unsigned char Page_ ; /* 页地址寄存器 D1,DO:页地址 */unsigned char Code_ ; /* 字符代码寄存器 */unsigned char Command; /* 指令寄存器 */unsigned char LCDData; /* 数据寄存器 */#define CWADD1 XBYTE0xfa00 /* 写指令代码地址(E1) */#define DWADD1 XBYTE0xfa40 /* 写显示数据地址(E1) */#define CRADD1 XBYTE0xfa80 /* 读状态字地址(E1) */#define DRADD1 XBYTE0xfac0 /* 读显示数据地址(E1) */#define CWADD2 XBYTE0xf800 /* 写指令代码地址(E/2#define DWADD2 XBYTE0xf840 /* 写显示数进地址(E#define CRADD2 XBYTE0xf880 /* 读状态字地址(E2#define DRADD2 XBYTE0xf8c0 /* 读显示数据地址(E2#define _Nop() _nop_ (); _nop_ (); _nop_ (); _nop_ (); _nop_ ()/* 中文字模库 16x16点阵 */unsigned char code CCTAB32 =/* 点阵:16x16 提取点阵方向:纵向 字节掉转:是 字节方式:C语言 */0x20,0x20,0x24,0x24,0x24,0xE4,0x26,0x24, / 0x20,0xFF,0x20,0x22,0x2C,0x20,0x20,0x00,0x20,0x60,0x3F,0x20,0x20,0x1F,0x11,0x11,0x10,0x03,0x1C,0x20,0x40,0x80,0xE0,0x00,0x10,0x22,0x64,0x0C,0x80,0x04,0x74,0x84, / 0x04,0x04,0x04,0xC4,0x3E,0x04,0x00,0x00,0x04,0x04,0x7E,0x01,0x80,0x40,0x20,0x11,0x0A,0x04,0x0B,0x10,0x60,0xC0,0x40,0x00,0x80,0x70,0x00,0xFF,0x10,0x22,0xF2,0x92, / 0x92,0x92,0x92,0x92,0xFB,0x12,0x00,0x00,0x00,0x00,0x00,0xFF,0x20,0x20,0x27,0x24,0x24,0x24,0x24,0x24,0x27,0x30,0x20,0x00,0x24,0x24,0x24,0xA4,0xFE,0xA3,0x22,0x00, / 0x24,0x48,0x00,0xFF,0x00,0x80,0x00,0x00,0x10,0x08,0x06,0x01,0xFF,0x00,0x01,0x02,0x02,0x02,0x02,0xFF,0x01,0x01,0x01,0x00,0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48, / 0x48,0x48,0x48,0xFC,0x08,0x00,0x00,0x00,0x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,0x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00,0x80,0x80,0x82,0x82,0x82,0x82,0x82,0xE2, / 0xA2,0x92,0x8A,0x86,0x80,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x24,0x24,0xA4,0xFF,0xA4,0xB4,0xAC, / 0x20,0x9F,0x10,0x10,0xF0,0x18,0x10,0x00,0x02,0x12,0x51,0x90,0x7E,0x0A,0x89,0x40,0x20,0x1B,0x04,0x1B,0x60,0xC0,0x40,0x00,0x80,0x40,0x20,0xF8,0x07,0x00,0x38,0xC0, / 0x02,0x04,0x0C,0x80,0x60,0x1C,0x00,0x00,0x00,0x00,0x00,0xFF,0x80,0x40,0x20,0x10,0x0B,0x04,0x0A,0x11,0x60,0xC0,0x40,0x00,;/* 1.写指令代码子程序(E1) */void WriteCommandE1() /while(IN(CRADD1) & 0x80); /实际的液晶操作中可以不判断是否忙 CWADD1=Command; _Nop();/* 2.写显示数据子程序(E1) */void WriteDataE1() /while(IN(CRADD1) & 0x80); DWADD1=LCDData; _Nop();/* 4.写指令代码子程序(E2) */void WriteCommandE2() /while(IN(CRADD2) & 0x80); CWADD2=Command; _Nop();/* 5.写显示数据子程序(E2) */void WriteDataE2() /while(IN(CRADD2) & 0x80); DWADD2=LCDData; _Nop();/* 初始化程序 */void Init() Command = 0xe2; WriteCommandE1(); WriteCommandE2(); Command = 0xa4; WriteCommandE1(); WriteCommandE2(); Command = 0xa9; WriteCommandE1(); WriteCommandE2(); Command = 0xa0; WriteCommandE1(); WriteCommandE2(); Command = 0xc0; WriteCommandE1(); WriteCommandE2(); Command = 0xaf; WriteCommandE1(); WriteCommandE2();/* 清屏 */void Clear() unsigned char i,j; i = 0; do Command = (i + 0xb8);/* 页地址设置 */ WriteCommandE1(); WriteCommandE2(); Command = 0x00; /* 列地址设置为0 */ WriteCommandE1(); WriteCommandE2(); j = 0x50; /* 一页清 80个字节 */ do LCDData = 0x00; /* 显示数据为0 */ WriteDataE1(); WriteDataE2(); while(-j !=0); /* 页内字节清零循环 */ while(+i !=4); /* 页地址暂存器加一 */ /* 显示区清零循环 */*延时函数*/void delay()unsigned int i;for(i=0;i=5000;i+);/* 中文显示子程序 */void

温馨提示

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

评论

0/150

提交评论