第九讲 1602LCD DS1302 24C08器件的编程.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:21 大小:3.3MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

第九讲 1602LCD DS1302 24C08器件的编程.ppt

第九讲1602LCDDS130224C08器件的编程.ppt

预览

免费试读已结束,剩余 11 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

1602液晶(LCD)什么是1602LCD液晶1602LCD的特性字符型LCD1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),锐志开发板液晶接口HD44780内置了DDRAM(显示数据存储RAM)、CGROM(字符存储ROM)和CGRAM(用户自定义RAM)。DDRAM就是显示数据RAM,用来寄存待显示的字符代码。共80个字节,其地址和屏幕的对应关系如下表:我们往DDRAM里的00H地址处送一个数据,譬如0x31(数字1的代码)并不能显示1出来。这是令初学者很容易出错的地方,原因就是如果你要想在DDRAM的00H地址处显示数据,则必须将00H加上80H,即0X80+0x00,若要在DDRAM的01H处显示数据,则必须将01H加上80H即0X80+0x01。依次类推。一会讲控制指令的的第8条DDRAM地址的设定时,你就可以明白了1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如下表所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”上表中的字符代码与我们PC中的字符代码是基本一致的。因此我们在向DDRAM写C51字符代码程序时甚至可以直接用P1='A'这样的方法。PC在编译时就把“A”先转为41H代码了。字符代码0x00~0x0F为用户自定义的字符图形RAM(对于5X8点阵的字符,可以存放8组),就是CGRAM了。后面我会详细说的。对DDRAM的内容和地址操作,HD44780的指令集及其设置说明,共有11条指令:基本操作时序:读状态输入:RS=L,RW=H,E=H输出:DB0~DB7=状态字写指令输入:RS=L,RW=L,E=下降沿脉冲,DB0~DB7=指令码输出:无读数据输入:RS=H,RW=H,E=H输出:DB0~DB7=数据写数据输入:RS=H,RW=L,E=下降沿脉冲,DB0~DB7=数据输出:无1.清屏指令2.光标归位指令4.显示开关控制指令6.功能设定指令(非常重要的指令)8.设定DDRAM地址指令10.数据写入DDRAM或CGRAM指令读状态输入:RS=0,RW=1,E=1读数据输入:RS=1,RW=1,E=1写指令输入:RS=0,RW=0,E=下降沿脉冲,DB0~DB7=指令码写数据输入:RS=1,RW=0,E=下降沿脉冲,DB0~DB7=数据如何显示一个自定义的字符我们从CGROM表上可以看到,在表的最左边是一列可以允许用户自定义的CGRAM,从上往下看着是16个,实际只有8个字节可用。它的字符码是00000000-00000111这8个地址,表的下面还有8个字节,但因为这个CGRAM的字符码规定0-2位为地址,3位无效,4-7全为零。因此CGRAM的字符码只有最后三位能用也就是8个字节了。等效为0000X111,X为无效位,最后三位为000-111共8个。如果我们要想显示这8个用户自定义的字符,操作方法和显示CGROM的一样,先设置DDRAM位置,再向DDRAM写入字符码,例如“A”就是41H。现在我们要显示CGRAM的第一个自定义字符,就向DDRAM写入00000000B(00H),如果要显示第8个就写入00000111(08H),简单吧!现在我们来看怎么向这八个自定义字符写入字模。设置CGRAM地址的指令从这个指令可以看出指令数据的高2位已固定是01,只有后面的6位是地址数据,而这6位中的高3位就表示这八个自定义字符,最后的3位就是字模数据的八个地址了。例如第一个自定义字符的字模地址为01000000-01000111八个地址。我们向这8个字节写入字模数据,让它能显示出“℃”地址:01000000数据:00010000图示:○○○■○○○○0100000100000110○○○○○■■○0100001000001001○○○○■○○■0100001100001000○○○○■○○○0100010000001000○○○○■○○○0100010100001001○○○○■○○■0100011000000110○○○○○■■○0100011100000000○○○○○○○○