第三十六讲 改

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

单片机教学做合一第三十六讲液晶显示器的结构、原理及功能单片机教学做合一•显示方式种类:•LED显示(LightEmitingDecode发光二极管)•LCD显示(LiquidCrystalDisplay液晶显示屏)•CRT显示(CathodeRayTube,阴极射线管)一、数码显示字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16X1、16X2、20X2和40X2行等模块。在本项目中,LCD显示模块选用1602字符型LCD模块,其控制器为日立公司生产的HD44780,可以用来显示数字、字符等。单片机教学做合一单片机教学做合一二、LCD字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16X1、16X2、20X2和40X2行等模块。在本项目中,LCD显示模块选用1602字符型LCD模块,由控制器HD44780、驱动器HD44100及电阻电容组成,可以用来显示数字、字符等。单片机教学做合一二、LCD基本结构:液晶板上排列着若干5×7或5×10点阵的字符显示位,每个显示位可显示1个字符,从规格上分为每行8、16、20、24、32、40位,有一行、两行及四行三类。单片机教学做合一•1、特点•液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,没有电磁辐射、寿命长等优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。•LCD16XX是用5x7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等,这里以常用的2行16个字的1602液晶模块来介绍它的编程方法。单片机教学做合一2、LCD1602管脚定义编号符号引脚说明编号符号引脚说明1VSS电源地9D2DataI/O2VDD电源正极10D3DataI/O3VL液晶显示偏压信号11D4DataI/O4RS数据命令选择端(H/L)12D5DataI/O5R/W读/写控制端(H/L)13D6DataI/O6E使能端14D7DataI/O7D0DataI/O15BLA背光电源正极8D1DataI/O16BLK背光电源负极单片机教学做合一2、LCD1602管脚定义LCD1602采用标准的16脚接口,其中:第1脚:VSS为地第2脚:VDD接5V正电源第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。单片机教学做合一2、LCD1602管脚定义LCD1602采用标准的16脚接口,其中:第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第7~14脚:D0~D7为8位双向数据线。第15~16脚:空脚单片机教学做合一3、基本操作时序(HD44780驱动)读状态:RS=L(0),R/W=H(1),E=H;输出:D0~D7状态字写指令:RS=L(0),R/W=L(0),D0~D7为指令码,E=高脉冲;输出:无读数据:RS=H(1),R/W=H(1),E=H;输出:D0~D7数据写数据:RS=H(1),R/W=L(0),D0~D7为数据,E=高脉冲;输出:无单片机教学做合一5、地址映射图控制器内部带有80字节的RAM缓冲区00~27H为40字节40~67H为40字节可实现16字两行显示单片机教学做合一6、HD44780的主要指令格式HD44780是这种点阵字符型液晶常用驱动芯片。它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)单片机教学做合一RSR/WD7D6D5D4D3D2D1D000001DLNF006、HD44780的主要指令格式1)显示模式设置DL:设置接口数据位数D=1,8位数据接口D=0,4位数据接口单片机教学做合一RSR/WD7D6D5D4D3D2D1D000001DLNF006、HD44780的主要指令格式1)显示模式设置N:设置显示行数N=1,双行显示N=0,单行显示单片机教学做合一RSR/WD7D6D5D4D3D2D1D000001DLNF006、HD44780的主要指令格式1)显示模式设置F:设置字形大小F=1,5×10点阵F=0,5×7点阵单片机教学做合一38H,设置16个字两行显示,5列7行显示8位数据口RSR/WD7D6D5D4D3D2D1D000001DLNF0000001110001)显示模式设置单片机教学做合一6、HD44780的主要指令格式2)显示开关及光标设置D:控制整体显示的开关D=1,开显示D=0,关显示RSR/WD7D6D5D4D3D2D1D00000000DBC单片机教学做合一6、HD44780的主要指令格式2)显示开关及光标设置C:控制光标的开关C=1,开光标C=0,关光标RSR/WD7D6D5D4D3D2D1D00000000DBC单片机教学做合一6、HD44780的主要指令格式2)显示开关及光标设置B:控制光标处字符的闪烁B=1,字符闪烁B=0,字符不闪烁RSR/WD7D6D5D4D3D2D1D00000000DBC单片机教学做合一6、HD44780的主要指令格式2)显示开关及光标设置D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示单片机教学做合一6、HD44780的主要指令格式2)显示开关及光标设置C:控制光标的开与关,高电平表示有光标,低电平表示无光标RSR/WD7D6D5D4D3D2D1D00000000DBC单片机教学做合一6、HD44780的主要指令格式2)显示开关及光标设置RSR/WD7D6D5D4D3D2D1D000000001NS光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。单片机教学做合一6、HD44780的主要指令格式2)显示开关及光标设置光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。单片机教学做合一6、HD44780的主要指令格式4)数据指针设置控制器内部设有一个数据指针,用户通过它可以访问内部的80字节RAM;其中,第一行的第一个字对应的是地址80H可以用查表地方法实现写数据和指令单片机教学做合一指令1:清除屏幕显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。5)其他设置单片机教学做合一7、初始化单片机教学做合一1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”三、显示的字符单片机教学做合一三、显示的字符单片机教学做合一四、时序及参数单片机教学做合一四、时序及参数单片机教学做合一•1602液晶模块内部的控制器共有11条控制指令,如表2所示单片机教学做合一•2.与单片机的接口五、LCD1602液晶显示模块和单片机接口单片机教学做合一•液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表3是DM-162的内部显示地址.比如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)单片机教学做合一六、驱动程序头文件#includereg52.h#defineucharunsignedchar#defineuintunsignedintsbitlcden=p2^2;sbitlcdrs=p2^0;sbitlcdrw=p2^2;单片机教学做合一六、驱动程序延时:ucharnum;voiddelay(uintz){uintx,y;for(x=z;x0;x--)for(Y=120;Y0;Y--);}单片机教学做合一六、驱动程序写命令:voidwrite_com(ucharcom){lcdrs=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;}单片机教学做合一六、驱动程序写数据:voidwrite_date(uchardate){lcdrs=1;P0=date;delay(5);lcden=1;delay(5);lcden=0;}单片机教学做合一六、驱动程序初始化:voidinit()//初始化//{lcden=0;write_com(0x38);//16X2显示,5X7点阵//write_com(0x0f);//显示光标闪烁//write_com(0x06);//光标加1,整屏显示不动//write_com(0x80);//设置数据指针//}单片机教学做合一主循环:voidmain(){init();write_date('a');delay(20);write('b');delay(20);while(1)}单片机教学做合一•说明:•程序在开始时对液晶模块功能进行了初始化设置,约定了显示格式。注意显示字符时光标是自动右移的,无需人工干预,每次输入指令都先调用判断液晶模块是否忙的子程序DELAY,然后输入显示位置的地址0C0H,最后输入要显示的字符A的代码41H。

1 / 40
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功