LCD1602与MCS-51单片机的接口.doc_第1页
LCD1602与MCS-51单片机的接口.doc_第2页
LCD1602与MCS-51单片机的接口.doc_第3页
LCD1602与MCS-51单片机的接口.doc_第4页
LCD1602与MCS-51单片机的接口.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

VIP免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LCD1602与MCS-51单片机的接口液晶显示器(LCD)具有工作电压低、微功耗、显示信息量大和接口方便等优点,现在已被广泛应用于计算机和数字式仪表等领域,成为测量结果显示和人机对话的重要工具。液晶显示器按其功能可分为三类:笔段式液晶显示器、字符点阵式液晶显示器和图形点阵式液晶显示器。前两种可显示数字、字符和符号等,而图形点阵式液晶显示器还可以显示汉字和任意图形,达到图文并茂的效果,其应用越来越广泛。本节将以RT-1602C液晶显示模块为例,介绍液晶显示器的结构和功能,讨论其与MCS-51单片机的硬件接口电路及软件编程方法。7.1.1 LCD1602概述LCD1602是216字符型液晶显示模块,可以显示两行,每行16个字符,采用57点阵显示,工作电压4.55.5V,工作电流2.0mA(5.0V),其控制器采用HD44780液晶芯片(市面上字符液晶显示器的控制器绝大多数都是基于HD44780液晶芯片,它们的控制原理是完全相同的)。LCD1602可采用标准的14引脚接口或16引脚接口,多出来的2条引脚是背光源正极BLA(15脚)和背光源负极BLK(16脚),其外观形状如图7.1所示。 (a) 正面 (b) 背面图7.1 RT-1602C的外观(a)图是LCD1602的正面,(b)图LCD1602的背面。标准的16引脚接口如下:第1脚:VSS,电源地。第2脚:VDD,+5V电源。第3脚:VEE,液晶显示对比度调整输入端。接正电源时对比度最弱,接地时对比度最高。使用时通常通过一个10K的电位器来调整对比度。第4脚:RS,数据/命令选择端,高电平时选择数据寄存器,低电平时选择指令寄存器。第5脚:R/,读/写选择端,高电平时进行读操作,低电平时进行写操作。当RS和R/共同为低电平时,可以写入指令或者显示地址;当RS为低电平、R/为高电平时,可以读忙信号;当RS为高电平、R/为低电平时,可以写入数据。第6脚:E,使能端,当E为高电平时读取液晶模块的信息,当E端由高电平跳变成低电平时,液晶模块执行写操作。第714脚:D0D7,为8位双向数据线。第15脚:BLA,背光源正极。第16脚:BLK,背光源负极。7.1.2 LCD1602的内部结构液晶显示模块LCD1602的内部结构可以分成三部分:一为LCD控制器,二为LCD驱动器,三为LCD显示装备,如图7.2所示。图7.2 RT-1602C的内部结构控制器采用HD44780,驱动器采用HD44100。HD44780是集控制器、驱动器于一体,专用于字符显示控制驱动的集成电路。HD44100是作扩展显示字符位的。HD44780是字符型液晶显示控制器的代表电路。HD44780集成电路的特点如下。(1)可选择57或510点阵字符。(2)HD44780不仅可作为控制器,而且还具有驱动1640点阵液晶像素的能力,并且HD44780的驱动能力可通过外接驱动器扩展360列驱动。HD44780可控制的字符高达每行80个字,也就是580=400点,HD44780内藏有16路行驱动器和40路列驱动器,所以HD44780本身就具有驱动1640点阵LCD的能力(即单行16个字符或两行8个字符)。如果在外部加一HD44100再扩展40路/列驱动,则可驱动162LCD。(3)HD44780的显示缓冲区DDRAM、字符发生存储器ROM及用户自定义的字符发生器CGRAM全部内藏在芯片内。HD44780有80个字节的显示缓冲区,分两行,地址分别为00H27H,40H67H,它们实际显示位置的排列顺序跟LCD的型号有关,LCD1602的显示地址与实际显示位置的关系,如图7.3所示。图7.3 RT-1602C的显示地址与实际显示位置的关系图HD44780内藏的字符发生存储器(ROM)已经存储了160个不同的点阵字符图形,如图7.4所示。图7.4 点阵字符图形这些字符有阿拉伯数字、英文字母的大小写、常用的符号和日文假名等,每一个字符都有一个固定的代码。如数字“1”的代码是00110001B(31H),又如大写的英文字母“A”的代码是01000001B(41H),可以看出英文字母的代码与ASCII编码相同。要在LCD的某个位置显示符号,只需将显示的符号的ASCII码存入DDRAM的对应位置。如在LCD1602的第一行第二列显示“1”,只须将“1”的ASCII码31H存入DDRAM的01单元;在LCD1602的第二行第三列显示“A”,只须将“A”的ASCII码41H存入DDRAM的42H单元即可。(4)HD44780具有8位数据和4位数据传输两种方式,可与4/8位CPU相连。(5)HD44780具有简单而功能较强的指令集,可实现字符移动、闪烁等显示功能。7.1.3 HD44780的指令格式与指令功能HD44780控制器内有多个寄存器,通过RS和R/引脚共同决定选择哪一个寄存器,选择情况如表7.1所示。表7.1 HD44870内部寄存器选择表RSR/寄存器及操作00指令寄存器写入01忙标志和地址计数器读出10数据寄存器写入11数据寄存器读出总共有11条指令,它们的格式和功能如下。1)清屏命令格式:RSR/D7D6D5D4D3D2D1D00000000001功能:清除屏幕,将显示缓冲区DDRAM的内容全部写入空格(ASCII20H)。光标复位,回到显示器的左上角。地址计数器AC清零。2)光标复位命令格式:RSR/D7D6D5D4D3D2D1D00000000010功能:光标复位,回到显示器的左上角。地址计数器AC清零。显示缓冲区DDRAM的内容不变。3)输入方式设置命令格式:RSR/D7D6D5D4D3D2D1D000000001I/DS功能:设定当写入一个字节后,光标的移动方向以及后面的内容是否移动。当I/D=1时,光标从左向右移动;I/D=0时,光标从右向左移动。当S=1时,内容移动,S=0时,内容不移动。4)显示开关控制命令格式:RSR/D7D6D5D4D3D2D1D00000001DCB功能:控制显示的开关,当D=1时显示,D=0时不显示。控制光标开关,当C=1时光标显示,C=0时光标不显示。控制字符是否闪烁,当B=1时字符闪烁,B=0时字符不闪烁。5)光标移位命令格式:RSR/D7D6D5D4D3D2D1D0000001S/CR/L*功能:移动光标或整个显示字幕移位。当S/C=1时整个显示字幕移位,当S/C=0时只光标移位。当R/L=1时光标右移,R/L=0时光标左移。6)功能设置命令格式:RSR/D7D6D5D4D3D2D1D000001DLNF*功能:设置数据位数,当DL=1时数据位为8位,DL=0时数据位为4位。设置显示行数,当N=1时双行显示,N=0时单行显示。设置字形大小,当F=1时为510点阵,F=0时为57点阵。7)设置字库CGRAM地址命令格式:RSR/D7D6D5D4D3D2D1D00001CGRAM的地址功能:设置用户自定义CGRAM的地址,对用户自定义CGRAM访问时,要先设定CGRAM的地址,地址范畴为063。8)显示缓冲区DDRAM地址设置命令格式:RSR/D7D6D5D4D3D2D1D0001DDRAM的地址功能:设置当前显示缓冲区DDRAM的地址,对DDRAM访问时,要先设定DDRAM的地址,地址范畴为0127。9)读忙标志及地址计数器AC命令格式:RSR/D7D6D5D4D3D2D1D001BFAC的值功能:读忙标志及地址计数器AC命令。当BF=1时表示忙,这时不能接收命令和数据;当BF=0时表示不忙。低7位为读出的AC的地址,值为0127。10) 写DDRAM或CGRAM命令格式:RSR/D7D6D5D4D3D2D1D010写入的数据功能:向DDRAM或CGRAM当前位置中写入数据,写入后地址指针自动移动到下一个位置。对DDRAM或CGRAM写入数据之前须设定DDRAM或CGRAM的地址。11) 读DDRAM或CGRAM命令格式:RSR/D7D6D5D4D3D2D1D011读出的数据功能:从DDRAM或CGRAM当前位置中读出数据。当DDRAM或CGRAM读出数据时,须先设定DDRAM或CGRAM的地址。7.1.4 LCD1602的编程与接口LCD显示器在使用之前须根据具体配置情况初始化,初始化可在复位后完成,LCD1602初始化过程一般如下:(1)清屏。清除屏幕,将显示缓冲区DDRAM的内容全部写入空格(ASCII20H)。光标复位,回到显示器的左上角。地址计数器AC清零。(2)功能设置。设置数据位数,根据LCD1602与处理器的连接选择(LCD1602与51单片机连接时一般选择8位),设置显示行数(LCD1602为双行显示)。设置字形大小(LCD1602为57点阵)。(3)开/关显示设置。控制光标显示、字符是否闪烁等。(4)输入方式设置。设定光标的移动方向以及后面的内容是否移动。初始化后就可用LCD进行显示,显示时应根据显示的位置先定位,即设置当前显示缓冲区DDRAM的地址,再向当前显示缓冲区写入要显示的内容,如果连续显示,则可连续写入显示的内容。由于LCD是外部设备,处理速度比CPU的速度慢,向LCD写入命令到完成功能须要一定的时间,在这个过程中,LCD处于忙状态,不能向LCD写入新的内容。LCD是否处于忙状态可通过读忙标志命令来了解。另外,由于LCD执行命令的时间基本固定,而且比较短,因此也可以通过延时等待命令完成后再写入下一个命令。图7.5是LCD1602与8051单片机的接口图,图中LCD1602的数据线与8051的P2口相连,RS与8051的P1.7相连,R/与8051的P1.6相连,E端与8051的P1.5相连。编程在LCD显示器的第1行、第1列开始显示“HOW”,第2行、第5列开始显示“ARE YOU!”。图7.5 LCD1602与8051单片机的接口图汇编语言程序:RS BIT P1.7RW BIT P1.6E BIT P1.5ORG 00HAJMP STARTORG 50H;主程序START:MOV SP,#50HACALL INITMOV A,#10000000B;写入显示缓冲区起始地址为第1行第1列ACALL WC51RMOV A,#H ;第1行第1列显示字母HACALL WC51DDRMOV A,#O ;第1行第2列显示字母OACALL WC51DDRMOV A,#W ;第1行第3列显示字母WACALL WC51DDRMOV A,#11000100B ;写入显示缓冲区起始地址为第2行第5列ACALL WC51RMOV A,#A ;第2行第5列显示字母AACALL WC51DDRMOV A,#R ;第2行第6列显示字母RACALL WC51DDRMOV A,#E ;第2行第7列显示字母EACALL WC51DDRMOV A,# ;第2行第8列显示字母 ACALL WC51DDRMOV A,#Y ;第2行第9列显示字母YACALL WC51DDRMOV A,#O ;第2行第10列显示字母OACALL WC51DDRMOV A,#U ;第2行第11列显示字母UACALL WC51DDRMOV A,#! ;第2行第12列显示字母!ACALL WC51DDRLOOP:AJMP LOOP;初始化子程序INIT: MOV A,#00000001H;清屏ACALL WC51RMOV A,#00111000B ;使用8位数据,显示两行,使用57的字型LCALL WC51RMOV A,#00001100B ;显示器开,光标关,字符不闪烁LCALL WC51RMOV A,#00000110B ;字符不动,光标自动右移一格LCALL WC51RRET;检查忙子程序F_BUSY:PUSH ACC ;保护现场MOV P2,#0FFHCLR RSSETB RWWAIT:CLR ESETB EJB P2.7,WAIT;忙,等待POP ACC ;不忙,恢复现场RET;写入命令子程序WC51R:ACALL F_BUSYCLR ECLR RSCLR RWSETB EMOV P2,ACCCLR ERET;写入数据子程序WC51DDR:ACALL F_BUSYCLR ESETB RSCLR RWSETB EMOV P2,ACCCLR ERETENDC语言编程:#include #define uchar unsigned charsbit RS=P17;sbit RW=P16;sbit E=P15;void init(void);void wc51r(uchar i);void wc51ddr(uchar i);void fbusy(void);/主函数void main()SP=0x50;init();wc51r(0x80); /写入显示缓冲区起始地址为第1行第1列wc51ddr(H); /第1行第1列显示字母Hwc51ddr(O); /第1行第2列显示字母Owc51ddr (W); /第1行第3列显示字母Wwc51r(0xc4); /写入显示缓冲区起始地址为第2行第5列wc51ddr(A); /第2行第5列显示字母Awc51ddr(R); /第2行第6列显示字母Rwc51ddr(E); /第2行第7列显示字母Ewc51ddr( ); /第2行第8列显示字母 wc51ddr(Y); /第2行第9列显示字母Ywc51ddr(O); /第2行第10列显示字母Owc51ddr(U); /第2行第11列显示字母Uwc51ddr(!); /第2行第11列显示字母!while(1);/初始化函数void init()wc51r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论