从硬件到驱动程序完全掌握使用LED1206教材

上传人:我** 文档编号:116018852 上传时间:2019-11-15 格式:DOC 页数:15 大小:1.95MB
返回 下载 相关 举报
从硬件到驱动程序完全掌握使用LED1206教材_第1页
第1页 / 共15页
从硬件到驱动程序完全掌握使用LED1206教材_第2页
第2页 / 共15页
从硬件到驱动程序完全掌握使用LED1206教材_第3页
第3页 / 共15页
从硬件到驱动程序完全掌握使用LED1206教材_第4页
第4页 / 共15页
从硬件到驱动程序完全掌握使用LED1206教材_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《从硬件到驱动程序完全掌握使用LED1206教材》由会员分享,可在线阅读,更多相关《从硬件到驱动程序完全掌握使用LED1206教材(15页珍藏版)》请在金锄头文库上搜索。

1、 LCD1206实用概述 -by bangou 2013-7-14一、1602硬件架构主要特性如下: 8 位并行数据接口,适配 M6800 系列时序:可选 4 位并行数据方式 具有字符发生器 ROM,含 10880 位 192 种 58 点字体字符 64 种 510 点字体字符 具有字符发生器 RAM,含 512 位 8 种 58 点字体字符 4 种 510 点字体字符 低功耗,高可靠性对于单片机的学习而言,掌握1602的用法是每一个学习者必然要经历的过程。 所谓1602是指显示的内容为16*2,即可以显示两行,每行16个字符。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理

2、是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。 字符型LCD1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,引脚定义如下表所示: 二、概述1602DDRAM、CGROM和CGRAM及其指令集HD44780内置了DDRAM、CGROM和CGRAM。一、 CGROM1602是一款最常用也是最便宜的液晶显示屏。最多可以显示两行标准字符,每行最多可以显示16个字符。1602可以显示内部常用字符(包括阿拉伯数字,英文字母大小写,常用符号和日文假名等),也可

3、以显示自定义字符(单或多个字符组成的简单汉字,符号,图案等,最多可以产生8个自定义字符)。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如下表所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A” . 上表中的字符代码与我们PC中的字符代码是基本一致的。因此我们在向DDRAM写C51字符代码程序时甚至可以直接用P1A这样的方法。PC在编译时就把“A”先转为41H代码了。 字

4、符代码0x000x0F为用户自定义的字符图形RAM(对于5X8点阵的字符,可以存放8组,5X10点阵的字符,存放4组),就是CGRAM了。 0x200x7F为标准的ASCII码,0xA00xFF为日文字符和希腊文字符,其余字符码(0x100x1F及0x800x9F)没有定义。二、DDRAM (Display Data RAM) DDRAM就是显示数据RAM,用来寄存待显示的字符代码。LCD控制器的指令系统规定,在送待显示字符代码的指令之前,先要送DDRAM的地址(即待显示的字符显示位置)。162的字符型LCD的DDRAM地址与显示位置的对应关系如下:共80个字节,其地址和屏幕的对应关系如下表:

5、 DDRAM地址与显示位置的对应关系设定DDRAM地址指令 0X80+x(00H-2FH,40H-67H) x(0,63) 27=128功能:设定下一个要存入数据的CGRAM的地址。 DDRAM地址与显示位置的对应关系 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E 0x8F0xC0 0xC1 0xC2 0xC3 0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB 0xCC 0xCD 0xCE 0xCF第一行的显示地址是0x800x8F,第二行的显示地址是0xC00

6、xCF。(0xC0=0x90+0x40=0xc0H) (注意这里我们送地址的时候应该是0x80+Address,这也是前面说到写地址命令的时候要加上0x80的原因) 也就是说想要在LCD1602屏幕的第一行第一列显示一个A字,就要向DDRAM的00H地址写入“A”字的代码就行了。那么一行可有40个地址呀?是的,在1602中我们就用前16个就行了。第二行也一样用前16个地址。对应如下: (事实上我们往DDRAM里的00H地址处送一个数据,譬如0x31(数字1的代码)并不能显示1出来。这是一个令初学者很容易出错的地方,原因就是如果你要想在DDRAM的00H地址处显示数据,则必须将00H加上80H,

7、即80H,若要在DDRAM的01H处显示数据,则必须将01H加上80H即81H。依次类推。 三、CGRAM功能:设定下一个要存入数据的CGRAM的地址。设定CGRAM地址指令 0X40+x A5-A0=(0,3FH) x(0,63) 26=64 将生成的点阵数组保存到CGRAM存储器中,生成自定义字符。1602内部CGRAM用于自定义的字符点阵的存储,总共64字节。由点阵提取可知,每一个字符由8个字节数据组成。所以64字节CGRAM存储器,能够存储8组自定义字符的点阵数组。按照CGRAM地址划分为 07为第一组,815为第二组,依次类推5663为第8组数据 1、首先取得想要的中文或者图形的字模

8、数组。通过字模软件不能直接提取5*8点阵的字模数据,可以通过手动提取的方法。如下图所示,对应一个字符显示区域。每8个字节,组成一个点阵数组。“日”的点阵数组即为 0x1f,0x11,0x11,0x1f,0x11,0x11,0x1f,0x002个点阵组成一个汉字取模举例:“车”字取模数组为:0x00,0x0f,0x02,0x04,0x07,0x00,0x0f,0x00, 0x10,0x1e,0x00,0x10,0x1c,0x10,0x1e,0x10 将生成的点阵数组保存到CGRAM存储器中,生成自定义字符。1602内部CGRAM用于自定义的字符点阵的存储,总共64字节。由上一步点阵提取可知,每一

9、个字符由8个字节数据组成。所以64字节CGRAM存储器,能够存储8组自定义字符的点阵数组。按照CGRAM地址划分为 07为第一组,815为第二组,依次类推5663为第8组数据。把自定义字符的数组按8个字节一组存储到CGRAM中,程序代码参考如下。/功能:将自定义字符的编码数组 写入到CGRAM中./输入:自定义字符的编码数组void Write_CGRAM(unsigned char *p)unsigned char i,j,kk,p=0x1f,0x11,0x11,0x1f,0x11,0x11,0x1f,0x00;unsigned char tmp=0x40; /操作CGRAM的命令码kk=0

10、;for(j=0;j8;j+) /64 字节存储空间,可以生成 8 个自定义字符点阵 for(i=0;i8;i+) / 8 个字节生成 1 个字符点阵 Write_com(tmp+i); /操作CGRAM的命令码+写入CGRAM地址. Write_dat(pkk); /写入数据 kk+; tmp += 8; 上一步中,自定义字符存储到CGRAM的任意一组以后,每一个组(8个字节)也有一个显示编码。按顺序依次为00H07H 。显示时,只要调用每一组的编码,即可以显示相应的字符。注:内部常用字符显示时,显示编码是从0x20开始的。0x000x0f是专门留给自定义字符显示的。0x000x07和0x0

11、80x0f内容是一样的。例如:调用0x01 位置和0x09位置,显示的内容是一样的。 直接按照单个字符的显示方式调用显示函数,就可以显示自定义字符了。代码参考如下: /在第1行,第7个位置显示自定义汉字 “年” DisplayOneChar(6,00); /显示 年 /CGRAM 码 00说明:此时“年”的8个字节点阵数组 ,存储空间为CGRAM的 0007地址也就是CGRAM的第1组数据存储区域,编码为0。 如果存储在CGRAM的0815地址,那么编码就应该是 1了。 很多资料中,都没有详细介绍过CGRAM和CGROM的区别和用法,在1602调试过程中经常会被搞混。四、1602指令集 那么如

12、何对DDRAM的内容和地址进行具体操作呢,下面先说说HD44780的指令集及其设置说明,请浏览该指令集,并找出对DDRAM的内容和地址进行操作的指令。共11条指令: 1.清屏指令 0x01功能: 清除液晶显示器,即将DDRAM的内容全部填入空白的ASCII码20H; 光标归位,即将光标撤回液晶显示屏的左上方; 将地址计数器(AC)的值设为0。 2.光标归位指令 0x02功能: 把光标撤回到显示器的左上方; 把地址计数器(AC)的值设置为0; 保持DDRAM的内容不变 3. 输入方式设置(Enter Mode Set,代码 04H07H)=进入模式设置指令 该指令的功能在于设置显示字符的输入方式

13、,即在 CPU 读/写 DDRAM 或 CGRAM 后,地址指针计数器 AC 的修改方式,反应在显示效果上,当写入一个字符后画面或光标的移动。该指令的两个参数 I/D 和 S 确定四种字符的输入方式,如下表所示:注意:画面滚动方式在 CPU 读 DDRAM 数据时,或在读/写 CGRAM 时无效,也就是说该指令主要应用在 CPU 写入 DDRAM 数据的操作时。功能:设定每次定入1位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。参数设定的情况如下所示: 位名 设置 I/D 0=写入新数据后光标左移= AC自动-1 1=写入新数据后光标右移=AC自动+1 S 0=写入新数据后显示屏不移动=画面不动 1=写入新数据后显示屏整体右移1个字 =画面平移 4. 显示开关设置(Display on/off Control,代码 08H0FH) 5. 显光标或画面滚动设置(Cursor or Display Shift,代码 10H、14H、18H、1CH)光标、画面移位 执行该指令将产生画面或光标向左或右滚动一个字符位。如果定时间隔地执行该指令将关闭画面或光标的平滑滚动。画面滚动是在一行内循环进行的,也就是说一行的第一个单元和最后一个人连接起来,形成闭环式滚动。画面滚动的显示效果如下所示:.当未开光标显示时,执行画

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号