




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2012年大学生电子竞赛 培训讲座五,外设之液晶显示器,南京师范大学电气与自动化工程学院 高翔,讲座内容,LCD的应用 LCD的原理 LCD的使用(MSP430如何与12864交换数据),LCD的应用一数据显示,应用二图形显示,应用三菜单,应用三补充子菜单,LCD的原理,LCD液晶显示器 12864:128*64个点(分辨率) LCD的分类 字符型 内部含有字库,字符、汉字的显示依赖字库实现。 点阵型 内部没有字库,所有显示数据依赖用户自己写入。,点阵型12864,在点阵型LCD上显示一幅图片或是字符,如上图所示,只需黑色的部分点亮,空白的点置0即可。可以将LCD看成128*64个LED灯来帮助理解。,(1)无显示的12864,(2) 显示一幅图片,LCD12864,LCD显示推理过程 一幅画面 128*64个点 内部128*64 bit的DDRAM(显示数据RAM) 并行通信 程序 本质 单片机通过并行通信向LCD内部的DDRAM中写入想要显示的数据 LCD实时根据DDRAM中的数据更新显示,DDRAM地址,图片显示,简单来说,主要分为两步: 1)将一幅图片转化为一系列二进制数据 2)将数据按字节(8位)写入液晶对应的DDRAM,12864的DDRAM有128*8=1024个地址,只需将图片转化的数据按字节写入这其对应的DDRAM地址即可。,字符显示,同图片一样,汉字、字符也是由一个个点组成。上图中,汉字为16*16点阵,ASCII码为8*16点阵,字体大小可以根据需要改变。 每8个点组成1个字节,所以一个汉字(ASCII)由16*2(8*2)个字节数据组成,字符显示原理与图片一致,只需将字符代码写入相应DDRAM地址。,LCD的使用(硬件),1)使能E 2)片选CS1(左半屏)、CS2(右)高有效 3)命令/数据选择RS(0命令,1数据) 4)读/写选择R/W(0写,1读) 5)数据总线DB0DB7 6)负压产生和负压输入(对比度)调整 7)复位RST 8)电源与地和背景光电源,硬件接线图,LCD的使用(软件),初始化 字符的显示 Ascii(1字节)、汉字(2字节) 图片的显示 大小不超过128*64(1024字节) 实时数据的显示 一般每采集N个数据显示一次,N128,LCD的初始化,初始化的工作主要有: 打开显示 确定起始行(DDRAM与LCD的对应关系) 确定DDRAM的指针起始位置 页地址0-7 列地址0-127,命令寄存器一,命令寄存器二,字符显示过程,准备工作 (1)使用取模软件获得汉字或ascii码的字模; (2)明确该汉字在LCD上显示位置 页地址0-7 列地址0-15 软件流程 (3)将页、列地址写入LCD的命令寄存器,以确定指针位置 (4)将字符对应的字模数据写入对应的DDRAM,图片的显示,准备工作 (1)使用取模软件获得图片的数据; (2)明确该图片在LCD上显示位置 起始位置(x,y) 图片大小(x1,y1) 软件流程 (3)图片显示顺序为从左到右,从上到下,每次显示一页(8行) (4)每次换行、换屏都需通过写入页、列地址重新定义指针位置,每次写完指针自动加1 (5)将数据写入对应的DDRAM,N个实时数据显示,准备工作 (1)写一函数实现对DDRAM中任一页、任一列写入一个字节数据 软件 (2)作N次循环,每次显示一个数据 (3)根据数据,确定其在DDRAM中的地址 页地址 列地址 (4)将该数据写入DDRAM对应地址空间,总结,无论是显示字符、图片还是显示实时采集数据,其实质都是一样: 确定它们在DDRAM中的位置 将它们对应的字模数据写入DDRAM中,实例分析,底层程序(涉及硬件) (1)查忙 (2)写数据 ( )读数据(不常用,一般不需) (3)写命令 软件对外接口程序(属于顶层,不涉及硬件) (4)初始化 (5)清屏 (6)连续显示汉字或ASCII码 (7)显示图片 (8)显示实时数据曲线 (9)折线图,预定义(硬件接口),#define Port_IO; P10SEL = 0x00; P9SEL #define Lcd_Data P10OUT /P1.0P1.7 #define Lcd_Data_IN P10IN /P1.0P1.7 #define SetE P9OUT |= BIT0 / E=1,-P3.0 #define ClrE P9OUT &= BIT0 / E=0, #define SetRW P9OUT |= BIT1 / RW=1,-P3.1 #define ClrRW P9OUT &= BIT1 / RW=0, #define SetDI P9OUT |= BIT2 / DI=1,-P3.2 #define ClrDI P9OUT &= BIT2 / DI=0, #define SetCS1 P9OUT |= BIT3 /CS1=1,-P3.3 #define ClrCS1 P9OUT &= BIT3 /CS1=0, #define SetCS2 P9OUT |= BIT4 /CS2=1,-P3.4 #define ClrCS2 P9OUT &= BIT4 /CS2=0, #define Data_IN P10DIR = 0x00 #define Data_OUT P10DIR = 0xFF #define Ctrl_OUT P9DIR |= 0x2F #define Left 0 #define Right 1,点阵型12864指令表,(1)查忙,void CheckBusy(uchar side) uchar buf=0xFF; Data_IN; _Nop(); ClrE; SetRW; /1_read,0_write ClrDI; /1_data,0_cmd while(buf) if(side = 0) SetCS1;ClrCS2; /enable CS1 _Nop();_Nop(); /delay 1us befor and after setE SetE; _Nop(); buf=Lcd_Data_IN; ,Else ClrCS1;SetCS2; /enable CS2 _Nop();_Nop(); /delay 1us befor and after setE SetE; _Nop(); buf=Lcd_Data_IN; buf ,(2)写数据,void WriteData(uchar dat,uchar side) CheckBusy(side); ClrE; ClrRW;SetDI; Lcd_Data=dat; if(side=Left) SetCS1; ClrCS2; else ClrCS1; SetCS2; _Nop(); /delay 1us befor and after setE SetE;_Nop(); ClrE; ,(3)写命令,void WriteCmd(uchar cmd,uchar side) CheckBusy(side); ClrE; ClrRW; /1_read,0_write ClrDI;/1_data,0_cmd Lcd_Data=cmd; if(side=Left) SetCS1; /left ClrCS2; else ClrCS1; /right SetCS2; _Nop(); /delay 1us befor and after setE SetE;_Nop(); ClrE; ,(4)初始化,void Lcd_Init() Port_Init(); /显示开 WriteCmd(0x3F,Left); WriteCmd(0x3F,Right); /起始行 WriteCmd(0xC0,Left); WriteCmd(0xC0,Right); /起始x,y坐标(0,0) WriteCmd(0xB8,Left); WriteCmd(0xB8,Right); WriteCmd(0x40,Left); WriteCmd(0x40,Right); ,void Port_Init(void) Port_IO; Ctrl_OUT; Data_OUT; ,(5)清屏,void Lcd_Clear(void) uchar i,j; for(i=0;i8;i+) WriteCmd(0xB8+i,Left); WriteCmd(0xB8+i,Right); WriteCmd(0x40,Left); WriteCmd(0x40,Right); for(j=0;j64;j+) WriteData(0,Left); WriteData(0,Right); ,(6)连续显示字符,关键在于区分ASCII码和汉字 ASCII都小于0xA0 汉字的第一个字节必然大于或等于0xA0 Ascii码注意其字库数组里数据的顺序 汉字的字模应定义为一结构体 结构体包含两部分 汉字的内码(2字节) 汉字的字模数据(32字节)16*16大小 显示步骤分2步 根据汉字内码在字库中查找汉字的位置(数组编号) 根据该编码得到汉字的字模,并将这些字模写入LCD的DDRAM,小结,液晶显示器的重要特点 使用之前必须初始化! 当要显示新的数据时,应考虑是否需要清屏,合理使用清屏程序很重要。 LCD显示内容与DDRAM中的数据一一对应,你不清屏,LCD上面就会一直显示,字模软件的作用,将要显示的图片、汉字、ASCII码转化为12864可以辨认的二进制数据。 举例: “南”的字模为: 0x04,0xE4,0x24,0x24,0x64,0xA4,0x24,0x3F, 0x24,0xA4,0x64,0x24,0x24,0xF6,0x24,0x00, 0x00,0xFF,0x00,0x09,0x09,0x09,0x09,0x7F, 0x09,0x09,0x09,0x49,0x80,0x7F,0x00,0x00,取模软件的使用,一、参数设置 1.LCD显示方式 XY地址计数器 从左到右、从上到下 单字节数据格式 纵向8点下高位 2.字体格式 汉字 or ASCII码 字体类型和大小 宋体16点阵 Asc8X16E,参数设置如下图所示,取模软件的使用(续),二、输入所要转化的数据 (1)汉字 直接在对话框中输入汉字 点击“输入字串”按钮即可 (2)ASCII码 直接点击右边的蓝色ASCII码按钮,就可生成所有ASCII码字模,取模软件的使用(续2),(3)图片 保证图片像素小于128 64 Bmp格式 点击载入图片按钮 选择图片 点击数据保存,总结与任务,理解12864是如何显示字符和图形的; 知晓单片机与12864的硬件连接; 明白如何通过总线操作实现单片机与12864之间数据与命令的交换; 参考12864的命令字进行软件编程; 学会如何使用取字模软件;,作业,又见作业,结合zlg7290,要求 按下“A”显示你组所在三人的姓名,学号 按下“B”显示一副图片
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 华为公司运营管理制度
- 公司优化财务管理制度
- 国企销售人员管理制度
- 医药公司办公管理制度
- 工务段机具库管理制度
- 品牌公司仓库管理制度
- 工位器具仓库管理制度
- 车展规划方案(3篇)
- 工地现场交接方案(3篇)
- 巡查人员分工管理制度
- 取髂骨植骨术后护理
- 中医推拿治疗儿童近视
- 社区服务中心突发事件应急预案
- 5.5 跨学科实践:制作望远镜教学设计八年级物理上册(人教版2024)
- 国家职业技术技能标准 6-30-05-05 挖掘铲运和桩工机械司机 人社厅发20235号
- 《电力系统继电保护》考试复习题库(附答案)
- 文化遗产概览学习通超星期末考试答案章节答案2024年
- 中石油加油站改造工程施工方案
- 2024年中级注册安全工程师《安全生产专业实务(道路运输安全)》真题及答案
- 形势与政策(吉林大学)智慧树知到答案2024年吉林大学
- 一般状态评估(健康评估课件)
评论
0/150
提交评论