LCD1602原理及显示程序

合集下载

lcd1602液晶屏显示原理

lcd1602液晶屏显示原理

lcd1602液晶屏显示原理
LCD1602液晶屏是一种常见的二线多功能液晶显示模块,其
显示原理基于液晶的光电效应。

液晶是一种具有特殊物理性质的有机分子,它可以通过电场的作用改变其自身的光透过性。

LCD1602液晶屏中的液晶材料
被填充在由两片玻璃构成的一个夹层之间,夹层中含有电极。

在液晶屏正常工作时,通过控制外部电源,液晶屏上的液晶分子会根据电场的变化而排列。

液晶分子排列的不同状态会导致光线的折射和透过性发生变化,从而实现显示。

液晶屏通过在电极上加电或去电来创建电场变化,从而控制液晶分子的排列状态。

在液晶屏上,液晶分子的排列状态会导致出现两个主要的极化方向——平行和垂直。

当电场变化时,液晶分子会根据电场的方向来重新排列。

当液晶分子排列平行时,光线不会被液晶分子折射,而垂直排列时,光线会被液晶分子折射。

液晶屏上设有偏振片,其方向与液晶分子排列的状态有关,可通过改变偏振片方向来改变光线的透过性。

为了实现更复杂的显示效果,LCD1602液晶屏采用了多行多
列的方式排列液晶分子,形成像素点的矩阵。

通过控制每个像素点处电极的电场,可以控制液晶分子在不同位置的排列状态,从而实现对每个像素点的控制。

液晶屏上通过电压控制器和驱动芯片控制电场的变化,进而控制液晶分子排列状态的变化。

总之,LCD1602液晶屏通过控制电场的变化来改变液晶分子的排列状态,从而控制光线的折射和透过性,实现图像和文字的显示效果。

通过控制每个像素点处的电场,可以实现复杂的显示效果。

lcd1602液晶显示模块工作原理

lcd1602液晶显示模块工作原理

lcd1602液晶显示模块工作原理LCD1602液晶显示模块,是基于液晶原理制造的一种显示设备,用于显示一定范围内的字符和图形,具有低功耗、可读性高和驱动电压低的特点。

液晶显示器广泛应用于信息显示、电子设备和仪器仪表等领域,此处将介绍LCD1602液晶显示模块的工作原理。

液晶是一种介于液态和晶态之间的物质,具有相对固定的空间结构和形态。

在适当的电场作用下,液晶与晶体的结构会发生变化,使振动光学变化。

液晶分为向列型和扭曲型两种,其中向列型液晶被广泛应用于液晶显示器中。

LCD1602液晶显示模块采用的是向列型TN液晶,即垂直于基板的向列型液晶。

这种液晶具有易于制造和密集排列等优点,且电压控制范围较宽,能够实现高对比度的显示效果。

液晶显示器由玻璃基板、液晶材料、导电膜和驱动电路等组成。

LCD1602液晶显示模块由两个玻璃基板组成,中间夹着液晶材料。

内置了驱动芯片HD44780,是一种标准的液晶显示器驱动芯片。

导电膜被涂在基板的特定位置上,构成各种字符或图形。

驱动电路将字符或图形的显示信息转换为特定电压信号,驱动导电膜,使显示信息正常显示。

液晶显示器的显示原理是利用不同介电常数的液晶材料分子与外加电场的相互作用,通过改变液晶分子的定位使光线产生相位差,产生的相位差呈现出不同的色彩,从而完成图像的显示。

液晶材料对电压的敏感度很高,在较小的电场作用下可以获得明显的光学改变。

对于LCD1602液晶显示模块,通过控制某些导电膜的电压,使得液晶分子的定向改变,从而改变光的透射,从而实现字符或图形的显示。

LCD1602液晶显示模块的驱动芯片HD44780,内置了字符发生器ROM和VRAM。

当要显示一个字符或图形时,先在VRAM中写入该字符或图形的码位,然后给控制指令写入相应的地址指令和数据指令。

驱动芯片将读入的数据码位解读为具体的显示内容,并驱动导电膜,控制液晶分子的定向,使光线透过液晶分子后呈现出相应的字符或图形。

单片机lcd1602工作原理

单片机lcd1602工作原理

单片机lcd1602工作原理单片机LCD1602工作原理。

LCD1602是一种常见的字符型液晶显示屏,广泛应用于各种嵌入式系统中,如单片机开发、工业控制、仪器仪表等领域。

它具有显示内容丰富、功耗低、体积小等特点,因此备受青睐。

下面将介绍LCD1602的工作原理,帮助大家更好地理解和应用这种显示设备。

首先,LCD1602由液晶显示模块和驱动电路两部分组成。

液晶显示模块是由若干个液晶单元组成的矩阵结构,每个液晶单元可以显示一个字符。

而驱动电路则负责控制液晶单元的显示内容和显示位置。

在LCD1602中,液晶单元的显示原理是利用液晶分子在电场作用下的定向排列来改变光的透过性,从而实现显示效果。

当液晶单元受到电压作用时,液晶分子会发生定向排列,改变光的透过性,使得背光光源透过液晶单元时呈现出不同的亮暗状态,从而形成字符或图形的显示。

而驱动电路则是通过控制液晶单元的偏置电压和驱动信号来实现显示内容和显示位置的控制。

一般来说,液晶显示模块的每个像素点都需要对应的驱动电路来控制,而LCD1602的驱动电路则是将一些像素点组合在一起,形成字符显示。

在实际应用中,单片机通过与LCD1602连接的数据总线和控制总线来向LCD1602发送显示数据和控制指令,从而实现对LCD1602的控制。

单片机将需要显示的字符数据发送给LCD1602,同时发送控制指令来控制显示位置、显示模式等参数,从而实现对LCD1602的灵活控制。

总的来说,LCD1602的工作原理是通过液晶显示模块和驱动电路的协同工作,利用液晶分子的定向排列来改变光的透过性,从而实现字符显示。

而单片机则通过与LCD1602连接的数据总线和控制总线来实现对LCD1602的控制。

希望通过本文的介绍,能够帮助大家更好地理解和应用LCD1602,为嵌入式系统的开发和应用提供帮助。

lcd1602工作原理

lcd1602工作原理

lcd1602工作原理LCD1602是一种常见的液晶显示模块,广泛应用于各种电子设备中。

它具有简单易用、显示清晰、功耗低等特点,因此备受电子爱好者和工程师的青睐。

那么,LCD1602是如何工作的呢?接下来,我们就来详细了解一下LCD1602的工作原理。

首先,LCD1602由液晶面板和驱动电路组成。

液晶面板是由一定数量的像素点组成的,每个像素点由液晶分子组成,通过控制液晶分子的排列来实现显示。

而驱动电路则负责控制液晶面板的工作,包括向液晶面板发送数据和控制信号,以及控制液晶面板的亮暗程度。

其次,LCD1602的工作原理主要涉及到两个方面,即液晶显示原理和驱动电路原理。

液晶显示原理是指液晶分子在电场的作用下改变排列状态,从而改变光的透过程度,实现显示。

而驱动电路原理则是指通过控制信号和数据信号,将需要显示的内容传输到液晶面板上,并控制液晶面板的亮暗程度,从而实现显示效果。

液晶显示原理中,液晶分子的排列状态是通过外加电场来改变的。

当电场作用于液晶分子时,液晶分子会改变排列状态,从而改变光的透过程度。

这就是为什么液晶显示需要背光源的原因,因为液晶本身并不会发光,需要外部光源来照亮。

而驱动电路原理则是通过发送数据信号和控制信号,来控制液晶面板的每个像素点的显示状态,从而实现整个画面的显示。

在LCD1602的驱动电路中,一般采用平行接口或串行接口来与微控制器或其他设备进行通信。

通过发送指令和数据,来控制液晶面板的工作。

在发送数据时,需要先发送指令或地址,然后再发送数据,通过这样的方式来控制液晶面板的显示内容。

同时,还需要控制液晶面板的亮暗程度,以及清除显示内容等操作。

总的来说,LCD1602的工作原理主要包括液晶显示原理和驱动电路原理两个方面。

液晶显示原理是通过改变液晶分子的排列状态来实现显示,而驱动电路原理则是通过发送指令和数据信号,来控制液晶面板的工作。

通过这些原理的相互作用,LCD1602能够实现清晰的显示效果,广泛应用于各种电子设备中。

51单片机lcd1602工作原理

51单片机lcd1602工作原理

51单片机lcd1602工作原理一、概述1、单片机简介51单片机是一种广泛应用于嵌入式系统的微型计算机,具有周期定时器、数据存储器和输入输出等功能。

其体积小,功耗低,适用于各种微型控制系统。

2、LCD1602简介LCD1602是一种常见的字符型液晶显示器模块,具有16x2的字符显示区域,可以显示16个字符x2行。

它具有低功耗、高对比度、显示清晰等特点,广泛应用于各种电子产品中。

二、LCD1602的原理1、LCD1602的工作原理概述LCD1602的工作原理是利用触电效应,通过控制电场来改变液晶分子的排列方向,从而实现显示功能。

其原理涉及液晶材料、电极、控制信号等方面。

2、液晶材料液晶材料是LCD1602的显示主体,主要由有机分子组成,能够对电场敏感。

当电场变化时,液晶分子会发生排列变化,从而改变光的透射情况。

3、电极LCD1602的电极主要由透明的ITO材料组成,用于施加电场。

通过不同的电压信号,可以改变液晶分子的排列方向,进而控制显示状态。

4、控制信号51单片机通过控制LCD1602的数据口和控制口,向其发送控制信号和数据信号,从而控制液晶显示的内容和状态。

具体的控制信号包括使能信号、读写信号、数据信号等。

三、LCD1602的工作原理分析1、初始化在使用LCD1602之前,首先需要对其进行初始化。

初始化过程主要包括设置显示模式、清屏、光标设置等操作。

通过向LCD1602发送特定的指令,可以实现初始化操作。

2、数据传输51单片机通过并行方式向LCD1602发送数据,数据主要包括要显示的字符、控制信息等。

在发送数据时,需要依次发送高四位和低四位数据,并通过控制信号进行确认。

3、显示控制LCD1602支持多种显示模式和显示控制功能,可以实现光标显示、字符闪烁、显示移动等功能。

通过向LCD1602发送相应的指令,可以实现这些显示控制功能。

四、LCD1602的应用1、嵌入式系统LCD1602广泛应用于各种嵌入式系统中,用于显示系统状态、调试信息、用户交互界面等。

lcd1602的显示原理

lcd1602的显示原理

lcd1602的显示原理
LCD1602是一款16×2字符液晶显示模块,其显示原理基于液
晶分子的电光效应。

液晶分子是一种有机分子,在没有电场时,其分子内部呈现随机排列的状态,不会通过光线的传播。

然而,当液晶分子受到电场的作用时,它们会改变自身的方向,从而使光线能够通过。

在LCD1602中,液晶分子被夹在两片平行的透明电极之间。

这两片电极由透明导电材料(如氧化铟锡)制成,通过外部电源提供电压。

当电压施加在电极上时,液晶分子会重新排列,形成一个规则的结构。

在LCD1602的背光灯亮起的情况下,LCD的每个字符位置由
一个位于背光层后面的液晶单元组成。

液晶单元可以看作一个微小的透明窗口,它由液晶分子和两片玻璃之间的色素层组成。

当液晶分子处于无电场状态时,色素层会吸收背光光线,使液晶单元呈现黑色。

而当液晶分子受到电场的作用时,它们会重新排列,色素层对背光光线的吸收减少,使液晶单元呈现透明状态。

通过控制液晶分子的排列方式,可以实现对字符的显示。

LCD1602通过与微控制器(如Arduino)连接,通过微控制器
发送指令和数据来控制液晶模块的显示内容。

具体来说,微控制器通过发送脉冲来改变电场的方向和强度,从而控制液晶分子的排列方式。

然后,显示模块将电场信息转化为对应的字符显示。

LCD1602原理与显示程序

LCD1602原理与显示程序

LCD1602原理与显示程序LCD1602的原理是基于液晶显示技术。

液晶是一种特殊的物质,具有双折射性质,即能将入射的光线分成两束,通过改变液晶分子的排列方式,可以改变其双折射的性质,从而使得光线透过液晶时会发生偏转。

LCD1602利用这一原理,在液晶显示面板上设置了16列和2行的像素点阵,通过控制每个像素点的液晶分子的排列方式,来实现字符的显示。

初始化是指在使用LCD1602之前,需要对其进行一系列的初始化操作,以确保其正常工作。

具体的初始化步骤如下:1.设置通信协议:LCD1602可以通过并行接口和串行接口进行通信,根据具体的接口方式,选择相应的通信协议。

2.设置工作模式:LCD1602有两种工作模式,分别是4位模式和8位模式。

选择适合的工作模式,并设置相应的控制寄存器。

3.设置显示模式:LCD1602可以显示不同的字符集,如英文字符、数字、特殊符号等。

选择合适的字符集,并设置显示模式。

4.清除显示:设置清除显示寄存器,将显示区域清空。

5.光标设置:设置光标位置和显示方式,如光标是否闪烁、光标位置等。

完成初始化后,就可以将要显示的数据写入LCD1602数据写入是指将要显示的字符或数字写入到LCD1602的显示区域。

具体的数据写入步骤如下:1.设置光标位置:根据需要显示的字符位置,设置光标的位置。

2.数据写入:通过通信接口,将要显示的数据写入到LCD1602的数据寄存器。

3.延时:由于LCD1602的刷新速度较慢,需要等待一定的时间,使得数据能够稳定显示在液晶屏上。

4.更新光标位置:根据数据的长度和显示方式,更新光标的位置。

通过以上的步骤,就可以实现LCD1602的显示功能。

总结起来,LCD1602的原理是基于液晶显示技术,通过控制液晶分子排列方式来实现字符的显示。

其显示程序包括初始化和数据写入两个方面的内容,通过设置通信协议、工作模式、显示模式等参数,并将要显示的数据写入到LCD1602的显示区域,来实现字符的显示。

单片机lcd1602工作原理

单片机lcd1602工作原理

单片机lcd1602工作原理单片机LCD1602工作原理。

LCD1602是一种常见的字符型液晶显示器,广泛应用于各种电子设备中。

它具有显示清晰、功耗低、体积小等优点,因此在单片机系统中应用十分广泛。

本文将介绍单片机LCD1602的工作原理,帮助读者更好地理解其工作方式。

首先,我们来了解LCD1602的基本结构。

LCD1602由16列、2行的字符组成,每个字符由5x8个像素点阵组成。

它采用平行接口方式与单片机连接,需要7根数据线(D0-D7)、3根控制线(RS、RW、E)以及电源线(VCC、GND)进行通讯。

在LCD1602内部,有一个控制器芯片,它负责接收来自单片机的指令和数据,并控制液晶显示。

LCD1602的工作原理主要分为两个部分,指令操作和数据显示。

在指令操作阶段,单片机通过数据线和控制线向LCD1602发送指令,包括清屏、光标移动、显示模式设置等。

LCD1602接收到指令后,根据指令内容进行内部操作,从而实现对显示内容的控制。

在数据显示阶段,单片机通过数据线向LCD1602发送要显示的字符数据,LCD1602接收到数据后,将其转换为像素点阵,然后在液晶屏上显示出来。

在实际应用中,单片机与LCD1602的通讯过程遵循一定的时序和协议。

单片机需要根据LCD1602的规格书,合理设置通讯时序和参数,以确保通讯的稳定和可靠。

通讯时,单片机先发送指令或数据的高位,然后发送低位,最后通过控制线产生一个脉冲信号,以告知LCD1602数据已经准备好。

LCD1602在接收到脉冲信号后,根据指令或数据进行相应的处理,完成显示操作。

除了基本的指令操作和数据显示外,LCD1602还具有一些特殊的功能,如光标显示、光标闪烁、显示移动等。

这些功能可以通过发送不同的指令实现,从而满足不同的显示需求。

总的来说,单片机LCD1602的工作原理是通过单片机向LCD1602发送指令和数据,控制LCD1602内部的显示操作,从而实现字符的显示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在日常生活中,我们对液晶显示器并不陌生。

液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。

在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED 数码管、液晶显示器。

发光管和LED数码管比较常用,软硬件都比较简单,在前面章节已经介绍过,在此不作介绍,本章重点介绍字符型液晶显示器的应用。

在单片机系统中应用晶液显示器作为输出器件有以下几个优点:显示质量高由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。

因此,液晶显示器画质高且不会闪烁。

数字式接口液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。

体积小、重量轻液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。

功耗低相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。

10.8.1 液晶显示简介①液晶显示原理液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。

液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。

②液晶显示器的分类液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。

除了黑白显示外,液晶显示器还有多灰度有彩色显示等。

如果根据驱动方式来分,可以分为静态驱动(Static)、单纯矩阵驱动(Simple Matrix)和主动矩阵驱动(Active Matrix)三种。

③液晶显示器各种图形的显示原理:线段的显示点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。

例如屏的第一行的亮暗由RAM区的000H——00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。

这就是LCD显示的基本原理。

字符的显示用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。

这样一来就组成某个字符。

但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。

汉字的显示汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右两半,各占16B,左边为1、3、5……右边为2、4、6……根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节……直到32B显示完就可以LCD上得到一个完整汉字。

10.8.2 1602字符型LCD简介字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。

下面以长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法。

一般1602字符型液晶显示器实物如图10-53:图10-53 1602字符型液晶显示器实物图10.8.2.1 1602LCD的基本参数及引脚功能1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图10-54所示:图10-54 1602LCD尺寸图1602LCD主要技术参数:显示容量:16×2个字符芯片工作电压:4.5—5.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.95×4.35(W×H)mm引脚功能说明1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表10-13所示:编号符号引脚说明编号符号引脚说明1 VSS 电源地9 D2 数据2 VDD 电源正极10 D3 数据3 VL 液晶显示偏压11 D4 数据4 RS 数据/命令选择12 D5 数据5 R/W 读/写选择13 D6 数据6 E 使能信号14 D7 数据7 D0 数据15 BLA 背光源正极8 D1 数据16 BLK 背光源负极表10-13:引脚接口说明表第1脚:VSS为地电源。

第2脚:VDD接5V正电源。

第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。

当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:D0~D7为8位双向数据线。

第15脚:背光源正极。

第16脚:背光源负极。

10.8.2.3 1602LCD的指令说明及时序1602液晶模块内部的控制器共有11条控制指令,如表10-14所示:序号指令RSR/WD7 D6 D5 D4 D3 D2 D1 D01 清显示0 0 0 0 0 0 0 0 0 12 光标返回0 0 0 0 0 0 0 0 1 *3 置输入模式0 0 0 0 0 0 0 1 I/D S4 显示开/关控制0 0 0 0 0 0 1 D C B5 光标或字符移位0 0 0 0 0 1S/CR/L* *6 置功能0 0 0 0 1 DL N F * *7 置字符发生存贮器地址0 0 0 1 字符发生存贮器地址8 置数据存贮器地址0 0 1 显示数据存贮器地址9 读忙标志或地址0 1 BF 计数器地址10 写数到CGRAM或DDRAM)1 0要写的数据内容11从CGRAM或DDRAM读数1 1读出的数据内容表10-14:控制命令表1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。

(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。

指令2:光标复位,光标返回到地址00H。

指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。

高电平表示有效,低电平则无效。

指令4:显示开关控制。

D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。

指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。

指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。

指令7:字符发生器RAM地址设置。

指令8:DDRAM地址设置。

指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。

指令10:写数据。

指令11:读数据。

与HD44780相兼容的芯片时序表如下:读状态输入RS=L,R/W=H,E=H 输出D0—D7=状态字写指令输入RS=L,R/W=L,D0—D7=指令码,E=高输出无脉冲读数据输入RS=H,R/W=H,E=H 输出D0—D7=数据写数据输入RS=H,R/W=L,D0—D7=数据,E=高脉输出无冲表10-15:基本操作时序表读写操作时序如图10-55和10-56所示:图10-55 读操作时序图10-56 写操作时序10.8.2.4 1602LCD的RAM地址映射及标准字库表液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。

要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图10-57是1602的内部显示地址。

图10-57 1602LCD内部显示地址例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。

在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。

每次输入指令前都要判断液晶模块是否处于忙的状态。

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如图10-58所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”图10-58 字符代码与图形对应图10.8.2.5 1602LCD的一般初始化(复位)过程延时15mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)以后每次写指令、读/写数据操作均需要检测忙信号写指令38H:显示模式设置写指令08H:显示关闭写指令01H:显示清屏写指令06H:显示光标移动设置写指令0CH:显示开及光标设置10.8.3 1602LCD的软硬件设计实例在1602LCD第一行显示网站名:在第二行显示联系电话:*************。

实验前应先将显示切换开关切换到LCD工作状态。

10.8.3.1 硬件原理图LCD液晶显示,用16F877A写程序如下:写一个字符串程序:#include<pic.h>#define uchar unsigned char#define uint unsigned int#define DB PORTD //定义端口#define rs RB0#define e RB1__CONFIG(0x3B31);const uchar data[]="happy everyday";//输入的字符串第一行const uchar data1[]="xiexie";//第二行void init();void write_commond(uchar dat);//写指令函数void write_data(uchar dat);//写数据函数void delay(uint x);void delay(uint x){uint a,b;for(a=x;a>0;a--)for(b=110;b>0;b--);}void init()//初始化指令{write_commond(0x01);//0000000001,清除屏幕显示write_commond(0x28);//设置4位格式,2行,5X7,功能设定write_commond(0x0C);//0000001100,开显示,无光标,不闪烁write_commond(0x06);//0000000110,置输入模式,光标右移,屏幕上的文字不移动write_commond(0x14);//0001000100,设定CGRAM地址显示屏或光标移动方向}void write_commond(uchar dat){rs=0;//指令DB=dat;e=1;//允许下降沿触发1-0delay(5);DB=DB<<4;//左移四位从RD4~RD7进入LCD delay(5);e=1;delay(5);e=0;}void write_data(uchar dat){rs=1;//数据DB=dat;e=1;//允许delay(5);e=0;delay(5);DB=DB<<4;delay(5);e=0;}void main(){uchar i;TRISD=0X00;//定义端口寄存器PORTD=0X00;PORTB=0X00;TRISB=0X00;init();write_commond(0x80);//第一行的DDRAM的地址,不加0x10时,也可以从//最左边开始for(i=0;i<12;i++){write_data(data[i]);//第一行的数据字符delay(5);}write_commond(0xc0);//第二行的DDRAM地址不加0x10也可for(i=0;i<16;i++){write_data(data[i]);//第二行的数据字符delay(5);}/* for(i=0;i<16;i++){write_commond(0x18);//光标不动,数据左移一位delay(5);}*/while(1);}写近一个字符A程序如下:#include<pic.h>#define uchar unsigned char#define uint unsigned int#define DB PORTD#define rs RB0#define e RB1__CONFIG(0x3B31);void init();void write_commond(uchar dat);//写指令函数void write_data(uchar dat);//写数据函数void disp_char(uchar x,uchar y,uchar dat);//在屏幕某个位置显示一个字符,x(0-16),y(1-2)void delay(uint x);void delay(uint x){uint a,b;for(a=x;a>0;a--)for(b=110;b>0;b--);}void init()//初始化指令{write_commond(0x01);//0000000001,清除屏幕显示write_commond(0x28);//设置4位格式,2行,5X7,功能设定write_commond(0x0C);//0000001100,开显示,无光标,不闪烁write_commond(0x06);//0000000110,置输入模式,光标右移,屏幕上的文字不移动write_commond(0x80);//0001000100,设定CGRAM地址显示屏或光标移动方向}void write_commond(uchar dat){rs=0;//指令DB=dat;e=1;//允许delay(5);e=0;DB=DB<<4;delay(5);e=1;delay(5);e=0;}void write_data(uchar dat) {rs=1;//数据DB=dat;e=1;//允许delay(5);e=0;delay(5);DB=DB<<4;e=1;delay(5);e=0;}void disp_char(uchar x,uchar y,uchar dat) {uchar address;if(y==1)address=0x80+x;elseaddress=0xc0+x;write_commond(address);write_data(dat);delay(5);}void main(){TRISD=0X00;PORTD=0X00;PORTB=0X00;TRISB=0X00;init();disp_char(0,1,'A');while(1);}也可以是如下:void disp_char(uchar x,uchar y,uchar dat) {uchar i;write_commond(0x80+x); if(i=0;i<16;i++){write_data('A');delay(5);}}。

相关文档
最新文档