好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

(酒类资料)第9章LCD显示器原理及应用21)精品.doc

18页
  • 卖家[上传人]:精****库
  • 文档编号:138221039
  • 上传时间:2020-07-14
  • 文档格式:DOC
  • 文档大小:447.67KB
  • / 18 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第九章 LCD显示器原理及应用9.1 液晶显示器模块的原理一.字符型液晶显示模块RT-1602C的外观与引脚显示容量:162个字符;工作电流2.0mA(5.0V);字符尺寸:2.954.35mmRT-1602C采用标准的16脚接口,各引脚情况如下:第1脚:VSS为电源地;第2脚:VDD为+5V电源;第3脚:VL为液晶显示对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时,会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度第4脚:RS为数据/命令选择端,高电平时选择数据寄存器、低电平时选择命令寄存器[RS:Register Selection]第5脚:,读写操作选择(1-读,0-写)RS寄存器及操作00指令寄存器写入01忙信号和地址计数器读出10数据寄存器写入11数据寄存器读出第6脚:E端为使能端,当E端由高电平跳变成低电平时(负跳变),液晶模块执行命令第7~14脚:D0~D7,为8位双向数据总线,与单片机的数据总线相连,三态第15脚:BLA,背光电源,通常为+5V,并联一个电位器,调节背光亮度第16脚:BLK,背光电源地二.字符型液晶显示模块RT-1602C的内部结构液晶显示模块RT-C1602C的内部结构可以分成三部分:一为LCD控制器,二为LCD驱动器,三为LCD显示装置,如图所示:控制器采用HD44780,驱动器采用HD44100。

      HD44780是字符型液晶显示控制器的代表电路HD44780集成电路的特点:1、可选择57或510点字符2、3、HD44780的显示缓冲区DDRAM、字符发生存储器(ROM)及用户自定义的字符发生器CGRAM全部集成在芯片内HD44780有80个字节的显示缓冲区,分两行,地址为:第一行为00H~27H;(0~39 → 40)第二行为40H~67H64~103 → 40)显示位置的排列顺序跟LCD的型号有关,RT-1602C液晶显示模块的显示地址与实际显示位置的关系如下图所示27H=216+7=3940H=416=6467H=616+7=96+7=103103-64=39】4、HD44780具有8位数据和4位数据传输两种方式,可与4/8位CPU相连采用8位CPU时,应该采用8位数据传输方式,在51中,用8位方式】5、HD44780具有简单而功能较强的指令集,可实现字符移动、闪烁等显示功能HD44780内部的字符发生存储器(ROM)已经存储了160个不同的点阵字符图形,如图所示:这些字符有:阿拉伯数字、英文字母的大小写、常用的符号和日文假名等,每一个字符都有一个固定的代码比如数字“1”的代码是00110001B(31H),又如大写的英文字母“A”的代码是01000001B(41H),【上面的数字在前,左边的数字在后】可以看出英文字母的代码与ASCII编码相同。

      要显示“1”时,只需将ASCII码31H存入DDRAM指定位置,显示模块将在相应的位置把数字“1”的点阵字符图形显示出来,就可以看到数字“1”三.指令格式与指令功能LCD控制器HD44780内有多个寄存器,通过RS和引脚上的电平决定对(命令和数据)寄存器的选择和读/写,DB7~DB0决定命令功能选择情况如表:RS寄存器及操作00指令寄存器写入01忙标志和地址计数器读出10数据寄存器写入11数据寄存器读出总共有11条指令,它们的格式和功能如下:上图中红色“1”代表每一个指令的特征1. 清屏命令格式【指令寄存器写入,指令码0X01】RSD7D6D5D4D3D2D1D00000000001功能:清除屏幕,将显示缓冲区DDRAM的内容全部写入空格(ASCII 20H)光标复位,回到显示器的左上角(光标复位到地址00H位置)并给地址计数器AC清零数据指针清零,所有显示清零】2.光标复位命令格式【指令寄存器写入】RSD7D6D5D4D3D2D1D0000000001功能:光标返回到地址00H位置数据指针清零】3.输入方式设置命令格式:【指令寄存器写入】RSD7D6D5D4D3D2D1D000000001I/DS功能:设定光标的移动方向,并指定整体显示是否移动。

      其中:I/D光标移动方向:当I /D=1,光标从左向右移动;当读或写一个字符后,地址指针加1,且光标加1当I/D=0,光标从右向左移动;当读或写一个字符后,地址指针减1,且光标减1 S屏幕上所有文字是否左移或者右移:当S=1时,写入一个字符,整屏显示左移(I/D=1)或右移(I/D=0),以得到光标不移动而屏幕移动的效果;当S=0时,写入一个字符,整屏显示不移动4.显示开关控制命令格式:【指令寄存器写入】RSD7D6D5D4D3D2D1D00000001DCB显示控制开关其中: D位控制整体显示的开与关,D=1,开显示;D=0,关显示C位控制光标的开与关,C=1,有光标;C=0,无光标 B位控制光标字符闪烁,B=1,字符闪烁;B=0,字符不闪烁例如:RS=0,RW=0,OCH=0000 1100表示:D=1开显示,C=0无光标,B=0字符不闪例如:RS=0,RW=0,OEH=0000 1100表示:D=1开显示,C=1有光标,B=0字符不闪5.光标或显示移位置命令格式:【指令寄存器写入】RSD7D6D5D4D3D2D1D0000001S/CR/L功能:移动光标或整体显示,DDRAM中内容不变。

      其中:S/C=1时,移位显示的文字;S/C=0时,移动光标 R/L=1时,向右移位;R/L=0时,向左移位6.功能设置命令格式:【指令寄存器写入】RSD7D6D5D4D3D2D1D000001DLNFDL位设置接口数据位数,DL=1为8位数据接口;DL=0为4位数据接口MCS-51为8位,所以应该用8位方式】【和教材上的不一样】N位设置显示行数,N=0,单行显示;N=1双行显示F位设置字型大小,F=1时为510点阵字符,F=0时为57点阵字符例如:0011 1000表示:设置8位数据接口,162(2行显示),57点阵字符7.设置字库CGRAM地址命令格式:【指令寄存器写入】RSD7D6D5D4D3D2D1D00001AAAAAA 功能:设置CGRAM的地址,地址范围0~63字符发生器RAM地址设置8.显示缓冲区DDRAM地址设置命令格式:【指令寄存器写入】RSD7D6D5D4D3D2D1D0001AAAAAAA 功能: DDRAM地址设置,地址范围为0~127控制器内设有一个数据地址指针,用户可通过它们来访问内部的全部80字节RAM,80H+地址码(0-27H,40H-67H)】9.读忙标志BF及光标地址AC命令格式:【指令寄存器,忙标志读出】RSD7D6D5D4D3D2D1D001BFAC功能:BF(Busy Flag)位为忙标志。

      BF=1,表示忙,LCM不能接收命令和数据;BF=0,表示LCM不忙,可以接收命令和数据AC位为地址计数器的值,范围为0~12700~7FH】10.写DDRAM或CGRAM命令格式:【数据寄存器写入】RSD7D6D5D4D3D2D1D010DATA功能:将数据写入CGRAM或DDRAM中,应与CGRAM或DDRAM地址设置命令结合使用11.读DDRAM或CGRAM命令格式:【数据寄存器读出】RSD7D6D5D4D3D2D1D011DATA 功能:从CGRAM或DDRAM中读出数据,应与CGRAM或DDRAM地址设置命令结合使用液晶显示模块是一个慢显示器件,如果在执行每条指令之前,一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效所以在写入命令或数据时,要先查询液晶显示模块是否忙显示字符时首先要输入显示字符地址,也就是告诉模块在什么位置显示字符,表9-2是TC1602EL液晶模块的内部显示位与DDRAM地址的对应关系表9-2 显示位与DDRAM地址的对应关系四.LCD显示器的初始化LCD使用之前须对它进行初始化,初始化可通过复位完成,也可在复位后完成,初始化过程如下:1.清屏;2.功能设置;(一般有多条语句)3.开/关显示设置;4.输入方式设置。

      9.1.2 LCD显示器与单片机的接口与应用下图是LCD显示器与8051单片机的接口连接图,图中RT-1602C的数据线与8051的P1口相连,RS与8051的P2.0相连,与8051的P2.1相连,E端与8051的P2.2相连编程在LCD显示器的第一行、第一列开始显示“GOOD”,第二行、第6列开始显示“BYE”已通过chap91】#include sbit RS=P2^0;sbit RW=P2^1;sbit E=P2^2;unsigned char LCD_Status;void delay(unsigned int);void init(void);void wcmd(unsigned char);void wdat(unsigned char);unsigned char Busy_Check(void); void main( ) //主函数{init( );wcmd(0x80); //写入显示缓冲区起始地址为第1行第1列wdta(‘G’); //第1行第1列显示字母“G”wdat(‘O’); //第1行第2列显示字母“O”wdat(‘O’); //第1行第3列显示字母“O”wdat(‘D’); //第1行第4列显示字母“D”//【80H+45H=C5H】wcmd(0xc5); //写入显示缓冲区起始地址为第2行第6列wdat (‘B’); //第2行第6列显示字母“B”wdat (‘Y’); //第2行第7列显示字母“Y”wdat (‘E’); //第2行第8列显示字母“E”while(1);}void init() // 初始化函数,主要写。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.