项目九_液晶显示器显示电路设计_第1页
项目九_液晶显示器显示电路设计_第2页
项目九_液晶显示器显示电路设计_第3页
项目九_液晶显示器显示电路设计_第4页
项目九_液晶显示器显示电路设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、 项目九项目九 液晶显示器显示电路设计液晶显示器显示电路设计 知识目标知识目标 1.1.熟练使用单片机的定时器。熟练使用单片机的定时器。 2.2.熟练运用字符串、数组、指针。熟练运用字符串、数组、指针。 3.3.学习学习LCDLCD显示模块的使用方法。显示模块的使用方法。 能力目标能力目标:1.1.掌握掌握LCM1602LCM1602液晶模块显示西文的原理及使用方法。液晶模块显示西文的原理及使用方法。 2.2.掌握用掌握用8 8位数据模式及位数据模式及8 8位数据模式驱动位数据模式驱动LCM1602LCM1602液晶的液晶的C C语语 言编程方法言编程方法3.3.掌握用掌握用LCM1602LC

2、M1602液晶模块显示动态数字的液晶模块显示动态数字的C C语言编程方法。语言编程方法。 任务任务1 LCM16021 LCM1602液晶显示数字钟的设计液晶显示数字钟的设计 2.1 单片机与单片机与LCM1602接口以接口以8位数据显示模式电路位数据显示模式电路设计,如图所示设计,如图所示用用5151单片机驱动单片机驱动LCM1602LCM1602液晶显示器,使液晶屏在第液晶显示器,使液晶屏在第一行中间以格式一行中间以格式“03:34:56”03:34:56”显示时间,在第二行显示时间,在第二行中间显示中间显示“A091A091。2 2 分析任务分析任务1 1 提出任务提出任务 图图1 LC

3、D1 LCD显示电路原理图显示电路原理图 软件程序设计要严格按照LCM1602液晶显示器的读操作时序和写操作时序来编写。单片机所用的晶体振荡器频率不同,在编写延时程序时延时参数要作适当的修改,使之符合LCM1602的时序要求。编写程序时尽量按照模块化的编程思想进行编程。其主程序流程如图2所示。 2. 2. 软件程序设计软件程序设计图图 2 28 8位数据显示模式时钟显示主程序流程图位数据显示模式时钟显示主程序流程图开始单片机I/O端口初始化液晶LCD初始化显示“00:00:00“A091结束循环刷新显示时间 知识链接知识链接 LCM1602液晶点阵字符显示器用57点阵图形来显示西文字符,可显示

4、2行16个西文字符。单片机通过写控制方式访问驱动控制器来实现对显示屏的控制。LCM的主要由三部分组成:LCD控制器、LCD驱动器、LCD显示装置。如图3所示。 液晶显示器的基本知识液晶显示器的基本知识一、一、16021602字符型液晶显示模块字符型液晶显示模块(LCM)(LCM)的基本组成的基本组成LCD控制器LCD驱动器LCD显示装置VssVDDVLRSR/WEDB0DB7图3 LCM的组成LED+LED- 知识链接知识链接 字符型液晶显示器的引脚排列如下图所示。1602字符型液晶显示器的引脚功能说明表1所示。二、二、 LCM1602LCM1602字符型液晶显示器引脚及功能字符型液晶显示器引

5、脚及功能LCM1602LCM16021 2 3 4 5 6 7 89 10 11 12 13 14图4 162液晶显示器引脚排列15 16 知识链接知识链接表1 162LCM管脚说明管脚编号名称方向功能操作1VSS电源电源接地0V2VDD电源电源正极5V3VL电源LCD亮度调整电压输入电压越低,屏幕越亮4RS输入寄存器选择信号1选择数据寄存器0选择指令寄存器5R/W输入Read/Write1Read/读取0Write/写入6E输入LCD/响应信号1响应LCD0禁用LCD710DB0DB3输入/输出低四位总线可用4bit输入数据、命令及地址1114DB4DB7输入/输出高四位总线配合DB0DB3

6、的8位输入数据、命令及地址15LED输入背光源正极5V16LED输入背光源负极0V 知识链接知识链接 用单片机来控制LCD模块,方法十分方便。LCD模块其内部可以看成两组寄存器,一个为指令寄存器IR,另一个为数据寄存器DR,由RS引脚来控制。所有对指令寄存器或数据寄存器的存取均需检查LCD内部的忙碌标志BF的状态,此标志用来告知LCD内部正在工作,并不允许接收任何控制命令。而此位的检查可以令RS=0,用读取DB7来加以判断。当DB7为0时,才可以写入指令寄存器或数据寄存器。LCD控制器共有11种指令,LCD指令码控制表如表2所示。下面分别介绍。三、三、 LCDLCD指令码工作说明指令码工作说明

7、 知识链接知识链接序号指令操作RSR/WDB7DB6DB5DB4DB3DB2DB1DB0执行1清除显示屏0000000001.64us2光标回到原点0000000011.64us3进入模式设定00000001I/DS40us4显示ON/OFF0000001DCB40us5显示/光标移位000001S/CR/L40us6功能设定00001DLNF40us7设定字符发生器(CGRAM)地址 0001A5A4A3A2A1A040us8设置(DD RAM)显示地址001A6A5A4A3A2A1A040us9忙碌标志位BFBF01BFD6D5D4D3D2D1D040us10写入数据寄存器(显示数据)10

8、D7D6D5D4D3D2D1D040us11读取数据寄存器11D7D6D5D4D3D2D1D040us12.2LCD指令控制码表 知识链接知识链接1. 清除显示屏(Clear Display)RSR/WDB7DB6DB5DB4DB3DB2DBDB000000000 指令代码为01H,将DDRAM数据全部填入“空白”的ASCII代码20H,执行指令将清除显示屏的内容,同时光标移到左上角。2.光标回原点(左上角)RSR/WDB7DB6DB5DB4DB3DB2DB1DB0000000001指令代码为02H,地址计数器AC被清0,但DDRAM内容保持不变,光标回原点(左上角),“”表示该位可以为0或1

9、。 知识链接知识链接3.设定进入模式RSR/WDB7DB6DB5DB4DB3DB2DB1DB000000001I/DSI/D(INC/DEC):I/D=1,表示当读或写完一个数据操作后,地址指针AC加1,且光标加1(光标右移一格)I/D=0,表示当读或写完一个数据操作后,地址指针AC减1,且光标减1(光标左移一格)S(Shift):S=1表示当写一个数据操作时,整屏显示左移(I/D=1)或右移(I/D=0),以得到光标不移动而屏幕移的效果。S=0表示当写一个数据操作时,整屏显示不移动 知识链接知识链接4.显示屏开关显示屏开关(Display ON/OFF)(Display ON/OFF)R-S

10、R/-WDB7DB6DB5DB4DB3DB2DB1DB00000001DCBD(Display):显示屏开启或关闭控制位。当D=1时,显示屏开启;当D=0时,显示屏关闭,但DDRAM内的显示数据仍保留。C(Cursor):光标显示/关闭控制位。C=1时,表示在显示屏上显示光标,C=0时,表示光标不显示。B(Blink):光标闪烁控制位。B=1时,表示光标出现后会闪烁;B=0时,表示光标不闪烁。 知识链接知识链接5.显示显示/ /光标移位光标移位(Display/Cursor shift)(Display/Cursor shift)RSR/WDB7DB6DB5DB4DB3DB2DB1DB0000

11、001S/CR/L “”表示该位可以为0或1。S/C(Display/Cursor):S/C=1表示显示屏上的画面平移一个字符位,S/C=0表示光标平移一个字符位。R/L(Right/Left):R/L=1表示右移,R/L=0表示左移。 知识链接知识链接6.功能设定功能设定(Function Set)(Function Set)RSR/WDB7DB6DB5DB4DB3DB2DB1DB000001DLNF “”表示该位可以为0或1。DL(Data Legth):数据长度选择位。DL=1时,为8位(DB7DB0)数据接口;DL=0为4位数据接口,使用DB7DB4位,分2次送入一个完整的字符数据。N

12、(Number of Display):显示屏为单行或双行选择。N=1为双行显示;N=0为单行显示。F(Font):字符显示选择。F=1时,为510点阵字符;F=0时,为57点阵字符 知识链接知识链接7.字符产生器字符产生器RAM(CGRAM)RAM(CGRAM)地址设定地址设定RSR/WDB7DB6DB5DB4DB3DB2DB1DB00001A5 A4 A3 A2A1A0设定下一个要读/写数据的CGRAM地址,地址由(A5A0)给出,可设定003FH共64个地址。8.显示数据显示数据RAM(DDRAM)RAM(DDRAM)地址设定地址设定RSR/WDB7DB6DB5DB4DB3DB2DB1D

13、B0001A6 A5 A4 A3 A2A1A0设定下一个要读/写数据的DDRAM地址,地址由(A6A0)给出,可设定007FH共128个地址。N0 一行显示A6A000 4FH,N1 两行显示,首行A6A000H2FH 次行A6A040H67H 显示数据显示数据RAMRAM(DDRAMDDRAM)地址与显示位置对应表)地址与显示位置对应表 知识链接知识链接9.忙碌标志忙碌标志/ /地址计数器读取地址计数器读取(Busy Flag/Address Counter(Busy Flag/Address Counter)RSR/WDB7DB6DB5DB4DB3DB2DB1DB001BF A6 A5 A

14、4 A3 A2A1A0LCD的忙碌标志BF用以指示LCD目前的工作情况;当BF=1时,表示正在做内部数据的处理,不接收单片机送来的指令或数据;当BF=0时,则表示已准备收命令或数据。当程序读取此数据的内容时,DB7表示忙碌标志,而另外DB6DB0的值表示CGRAM或DDRAM中的地址。至于是指向哪一地址,则根据最后写入的地址设定指令而定。 知识链接知识链接10.写入数据寄存器写入数据寄存器RSR/WDB7DB6DB5DB4DB3DB2DB1DB010D7 D6 D5 D4 D3 D2D1D0 先设定CGRAM或DDRAM地址,再将数据写入DB7DB0中,以使LCD显示出字 型, 也可使使用者创

15、的图形存入CGRAM中。RSR/WDB7DB6DB5DB4DB3DB2DB1DB011D7 D6 D5 D4 D3 D2D1D0先设定好CGRAM或DDRAM地址,再读取其中的数据。11.11.读取数据寄存器读取数据寄存器 CGROMCGROM与与CGRAMCGRAM中字符代码与字符图形对应表中字符代码与字符图形对应表 知识链接知识链接四、四、LCDLCD控制器接口时序说明控制器接口时序说明1. 1. 写操作时序(单片机至写操作时序(单片机至LCDLCD)写操作时序如图所示写操作时序如图所示。图写操作时序 知识链接知识链接读操作时序如图所示。2. 2. 读操作时序(读操作时序(LCDLCD至单

16、片机)至单片机)图读操作时序 知识链接知识链接 时序参数时序参数时序图中的各个延迟时间如表3所示。 表3时序图中的各个延迟时间 知识链接知识链接 信号真值表信号真值表 读/写控制信号真值表如表.4所示。 知识链接知识链接 1. 初始化设置 (1)显示器清屏 (2)显示器开/关及光标设置 (3)显示光标移动设置 2.数据控制 控制器内部设有一个数据地址指针,用户可通过它们来访问内部全部80字节RAM。 (1)数据指针设置 数据地址指针:80H地址码(00H27H,40H67H) (2)读数据:见上表 (3)写数据:见上表五、五、LCDLCD初始化设置初始化设置 知识链接知识链接(1)延时)延时1

17、5ms(2)写指令)写指令38H(不检测忙信号)(不检测忙信号)(3)延时)延时5ms(4)写指令)写指令38H(不检测忙信号)(不检测忙信号)(5)延时)延时5ms(6)写指令)写指令38H(不检测忙信号)(不检测忙信号)注:复位过程一般可以只写一次注:复位过程一般可以只写一次(7)以后每次写指令、读)以后每次写指令、读/写数据操作写数据操作 之前均需检测忙信号之前均需检测忙信号(8)写指令38H:显示模式设置(9)写指令08H:显示关闭,不显示 光标(10)写指令01H:显示清屏(11)写指令06H:显示光标移动设 置,写一个字符后,N1,地址 加1,光标加1,S0,整屏显示。(12)写指

18、令0CH:显示开及光标设 置,D1开显示,C1不显示光 标,B0光标不闪。六、六、LCDLCD初始化过程(复位过程)初始化过程(复位过程) 源程序源程序延时函数延时函数void delay( uint z)void delay( uint z) uint x,y; uint x,y; for(x=z;x0;x- for(x=z;x0;x- for(y=600;y0;y-);for(y=600;y0;y-); 写命令函数写命令函数void write_com(uchar com)void write_com(uchar com) lcdrs=0; lcdrs=0;lcdrw=0;lcdrw=0;

19、P0=com;P0=com;lcden=1;lcden=1; delay(1); delay(1);lcden=0;lcden=0; 写显示数据函数写显示数据函数void write_data(uchar date)void write_data(uchar date) read_state( ); read_state( );lcdrs=1;lcdrs=1;lcdrw=0;lcdrw=0; P0=date;P0=date;lcden=1;lcden=1; delay(1); delay(1);lcden=0;lcden=0; 忙碌标志位查询函数忙碌标志位查询函数void read_state

20、()void read_state() uchar tmp; uchar tmp;lcdrs=0;lcdrs=0;lcdrw=1;lcdrw=1;lcden=1;lcden=1; delay(1); delay(1); while(1) while(1) tmp=P0; tmp=P0; tmp=tmp&0 x80; tmp=tmp&0 x80; if(tmp=0) if(tmp=0) break; break; lcden=0;lcden=0; 显示屏初始化显示屏初始化void init( ) void init( ) lcden=0; lcden=0; delay(80); delay(80

21、); write_com(0 x38); write_com(0 x38); );/2);/2行,行,5X75X7 delay(80); delay(80);write_com(0 x0c);/write_com(0 x0c);/开启屏,光标,不闪烁开启屏,光标,不闪烁write_com(0 x06);/write_com(0 x06);/地址指针自动加地址指针自动加1 1write_com(0 x01);/write_com(0 x01);/清屏清屏delay(20);delay(20); 主函数头文件定义主函数头文件定义#include #include #define uchar uns

22、igned char #define uchar unsigned char #define uint unsigned int#define uint unsigned intvoid delay(uchar);void delay(uchar);uchar table_hms=1, 2, : ,3 ,4 ,:,5 , 6;uchar table_hms=1, 2, : ,3 ,4 ,:,5 , 6;uchar uchar * *p=A091;p=A091;uchar i ,j;uchar i ,j;void read_state();void read_state();sbit lcden

23、=P27; sbit lcden=P27; sbit lcdrw=P26;sbit lcdrw=P26;sbit lcdrs=P25;sbit lcdrs=P25; 主函数主函数void main( )void main( ) init( ); / init( ); / 显示屏初始化显示屏初始化 write_com(0 x80+4);/write_com(0 x80+4);/指向第一行第指向第一行第5 5个字符位置,显示时间初始值个字符位置,显示时间初始值 for(j=0;j8; j+)for(j=0;j8; j+) if(j!=2)&(j!=5) if(j!=2)&(j!=5) write_data(table_hmsj+0 x30); write_data(table_hmsj+0 x30); else else write_data(table_hmsj); write_data(table_hmsj); write_com(0 x80+0 x40+6);/write_com(0 x80+0 x40+6);/指向第二行第指向第二行第7 7个字符位置,显示个字符位置,显示“A091”A091” while(while(* *p)!=0)p)!=0) write_data( write_data(* *p);p); p+; p+; TH1=0 x3c; /

温馨提示

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

评论

0/150

提交评论