【傻瓜51单片机讲义】 第12课 LCD1602实验教学.ppt
文本预览下载声明
一气呵成学51 第12讲 LCD1602实验教学 在单片机的人机交互系统中,常常需要显示系统运行中的某些信息和数据,例如字符、汉字或者图形等。液晶显示器(LCD)正好可以完成此项任务,它是一种功耗很低的显示器,在电子表、计算器、数码相机、计算机的显示器和液晶电视上都可以看到它的身影。液晶显示器以优越的性能,越来越受到各方面的重视。 在单片机系统中,为了应用的方便,常使用另外一种集成度更高的显示组件,即液晶显示模块。液晶显示模块将液晶显示器、控制器、背光源和外部连接端口等组装在一起,可以方便地用于需要液晶显示的场合。 本章主要介绍液晶显示器以及液晶显示模块,并详细介绍了常用的液晶显示模块控制器及其控制子函数。 1.LCD概述 液晶显示是依靠液晶来进行数据或者图形显示的。液晶显示器本身不发光,其通过调节背光的亮度来达到显示效果,这是一种被动显示器。液晶显示模块是以液晶屏为核心,配合一定的控制电路,以达到方便使用目的的显示组件。目前在单片机系统中,液晶显示模块的使用最为广泛。 2. 液晶显示模块的分类 根据液晶显示模块显示功能的不同,液晶显示模块可以分为如下3种: 1.段码数字型 2.点阵字符型 3.点阵图形型 3. LCD1602驱动电路和管脚定义 大家注意,如果没有显示,请调节对比度旋钮。 4. LCD1602工作原理 1602:一行16个字符,可以显示两行。 DDRAM: Display Data RAM 显示数据RAM CGROM: Character Generator ROM 存放字符 CGRAM: Character Generator RAM 存放自定义字符 5. DDRAM DDRAM就是显示数据RAM,用来寄存待显示的字符代码。共80个字节,其地址和屏幕的对应关系如下表: 6. CGROM 1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如下表所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A” 7. CGRAM 上表中的字符代码与我们PC中的字符代码是基本一致的。因此我们在向DDRAM写C51字符代码程序时甚至可以直接用P1=A这样的方法。PC在编译时就把“A”先转为41H代码了。 ? ? 字符代码0x00~0x0F为用户自定义的字符图形RAM(对于5X8点阵的字符,可以存放8组,5X10点阵的字符,存放4组),就是CGRAM了。 ? ? 0x20~0x7F为标准的ASCII码,0xA0~0xFF为日文字符和希腊文字符,其余字符码(0x10~0x1F及0x80~0x9F)没有定义。 ? ? 那么如何对DDRAM的内容和地址进行具体操作呢? 8. 信号真值表 9. 写操作 10. 读操作 11. LCD写命令/数据函数 void LCD_Write(bit style, unsigned char input) { _nop_(); LcdRs=style; _nop_(); LcdRw=0; _nop_(); DBPort=input; _nop_(); LcdEn=1; _nop_(); LcdEn=0; _nop_(); LCD_Wait(); } 12.清屏指令 功能: 1 清除液晶显示器,即将DDRAM的内容全部填入空白的ASCII码20H; 2 光标归位,即将光标撤回液晶显示屏的左上方; 3 将地址计数器(AC)的值设为0。 13.光标归位指令 14.进入模式设置指令 功能:设定每次写入1位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。参数设定的情况如下所示: ? ? 位名? ? ? ? ? 设置 ? ? I/D? ? ? ? ?? 0=写入新数据后光标左移 ? 1=写入新数据后光标右移 ? ? S? ? ? ? ? ? 0=写入新数据后显示屏不移动 ? ? ? ? ? ? ? ? ?? 1=写入新数据后显示屏整体右移1个字 15.显示开关控制指令 功能:控制显示器开/关、光标显示/关闭以及光标是否闪烁。参数设定的情况如下: ? ? ? ? ? ? ? ? 位名? ? ? ? ? ? ? 设置 ? ? ? ? ? ? ? ? D? ? ? ? ? ? ? ? 0=显示功能关? ? ? ? ? 1=显示功能开 ? ? ? ? ? ? ? ? C? ? ? ? ? ? ? ? 0=无光标? ? ? ? ? ? ? ? ? 1=有光标 ? ? ? ? ? ?
显示全部