LCD1602工作原理 LCD1602液晶屏原理图 LCD1602显示控制

发布者:RadiantRiver最新更新时间:2024-04-29 来源: elecfans关键字:LCD1602  显示控制 手机看文章 扫描二维码
随时随地手机看文章

LCD液晶屏显示原理

液晶(Liquid Crystal)是一种高分子材料,因为其特殊的物理、化学、光学特性,20世纪中叶开始广泛应用在轻薄型显示器上。


液晶显示器(Liquid Crystal Display,LCD)主要原理是以电流刺激液晶分子产生点、线、面并配合背部灯管构成画面。

现在来了解一下液晶的物理特性:LCD本身是不能发光的,它需要借助光源进行显示,即我们平时所说的背光。当光束通过这层液晶时,液晶本身会排排站立或扭转呈不规则状,因而阻隔或使光束顺利通过。

大多数液晶都属于有机复合物,由长棒状的分子构成。在自然状态下,这些棒状分子的长轴大致平行。将液晶倒入一个经精良加工的开槽平面,液晶分子会顺着槽排列,所以假如那些槽非常平行,则各分子也是完全平行的。

图片

也就是说,若一个平面上的分子南北向排列,则另一平面上的分子东西向排列,而位于两个平面之间的分子被强迫进入一种90度扭转的状态。由于光线顺着分子的排列方向传播,所以光线经过液晶时也被扭转90度。但当液晶上加一个电压时,分子便会重新垂直排列,使光线能直射出去,而不发生任何扭转。

极化滤光器实际是一系列越来越细的平行线。这些线形成一张网,阻断不与这些线平行的所有光线。极化滤光器的线正好与第一个垂直,所以能完全阻断那些已经极化的光线。只有两个滤光器的线完全平行,或者光线本身已扭转到与第二个极化滤光器相匹配,光线才得以穿透。

所以通过这些特定方向的偏光片再施加电压就可以让部分区域光通过,另外部分区域光遮挡,这些明暗相间的点按照一定的像素排列起来的图像就是我们想要显示的信息了。

图片

1602液晶显示模块内部包含驱动芯片为HD44780(HITACHI)或其他兼容芯片,内部提供了192种字符的库,用户可以直接调用。它可以显示两行字符,每行包括16个5×8点阵块组成的显示字符块,每个点阵块为一个字符位,字符间距和行距都为一个点的宽度。

接下来

LCD1602显示控制

了解LCD显示原理之后,那要怎样才能让它显示字符呢?这就要先了解其内部驱动芯片的特点和控制方式。单片机控制显示器驱动也是需要进行通信的,这里就又涉及到我们之前一直强调的时序了,上一节讲解uart时我们知道uart通信是要有严格的时序要求的,所以它才需要精准的波特率来控制,液晶显示器控制时序虽然不用像uart那样精准,但也需要一定的要求。我们先来看一下它的常用接口和引脚说明。

图片

●VSS:电源地引脚。

●VDD:供电电源引脚。

●Vo:液晶显示偏压信号引脚,外加0 ~5V电压以调节显示对比度。

●RS:寄存器选择引脚,为高电平时选择数据寄存器;为低电平时选择指令寄存器

●R/W:读、写操作选择引脚,高电平时为读操作;低电平时为写操作。

●E:使能信号引脚,低电平有效。

●DB0 ~ DB7:数据总线引脚,用于输入驱动1602液晶模块显示的数据。

●A:背光5V电源引脚。

●K:背光地信号引脚。

现在我们再来了解它的控制时序:

图片

从图中可以看出,它的读写操作中RS,R/W,E三个控制引脚的时序变化是不一样的。并且数据与指令也有区别,这样就具体可以分为一下4种情况:

读状态——输入:RS=L,R/W=H,E=H;输出:D0~D7=状态字。

读数据——输入:RS=H,R/W=H,E=H;输出:无。

写指令——输入:RS=L,R/W=L,E=H,D0~D7=指令码,E=H;输出:D0~D7=数据。

写数据——输入:RS=H,R/W=L,E=H,D0~D7=数据,E=H;输出:无。

显示器内部驱动芯片带有80字节的RAM缓冲区,其地址对应如下:

图片

但是我们知道显示屏界面做多只能显示16*2个字符,那它内部要怎么处理所有的缓冲区呢?

向图中的00H~0FH、40H~4FH地址中的任意处写显示数据时,液晶都可以立即显示出来;但写入到10H~27H或50H~67H地址处时,必须通过移屏指令将他们移入可显示区域才能正常显示。

显示器内部内置字符串分布表如下:

图片

显示驱动的控制指令如下:

图片

以上内容比较多,并且还有部分信息没有完全列出,这里也不一一列出了,使用时不用记忆,只需对照资料进行编程就好。

LCD1602显示示例

以上介绍了1602液晶显示器相关的主要内容,现在我们绘制一个简单的电路图再编程测试一下。

图片

什么的电路中我们将显示器数据端口连接在P0上,其他3根控制引脚连接在P2.2~P2.4上。


现在我们编程让它来显示一些简单的字符:


/*


*这是一个LCD1602显示程序


*目的是通过显示屏显示一些字符


*/


#include


#include


#define DB1602 P0 //1602数据口


typedef unsigned char u8;


typedef unsigned int u16;


sbit rs_1602=P2^2;


sbit rw_1602=P2^3;


sbit en_1602=P2^4;


void delay(u8 ms);


void lcd1602_check_busy();


void Write_Byte_1602(u8 Byte,bit dat);


void lcd1602_Init();


void Write_char1_1602(bit x,u8 y,u8 dat1);


void Write_string_1602(bit x,u8 y,u8 *str);


void main(void)


{


lcd1602_Init();




Write_string_1602(0,0,'  Hello guy!');


Write_char1_1602(1,6,'-');


Write_string_1602(1,7,'--LCD1602');




while(1)


{



}

}


void delay(u8 ms)


{


u8 i,j;




for(i=0; i< ms; i++)


{


    for(j=0; j< 110; j++)


    {


        ;


    }


}

}


void lcd1602_check_busy()


{


u8 busy;


bit via;


do


{


rs_1602=0;


 rw_1602=1;


 DB1602|=0xf0;


 en_1602=1;


 busy=DB1602;


 en_1602=0;


 en_1602=1;   //


 en_1602=0;   //


 via=(bit)(busy&0x80);

}while(via);


}


void Write_Byte_1602(u8 Byte,bit dat)


{


lcd1602_check_busy(); //忙则等待


 rs_1602=dat; //数据命令选择位


 rw_1602=0;


 en_1602=1;


 DB1602=Byte;


 _nop_();


 en_1602=0;

}


void lcd1602_Init()


{


Write_Byte_1602(0x38,0);   //设置16×2显示,5×7点阵,8位数据接口


 Write_Byte_1602(0x08,0);   


 Write_Byte_1602(0x01,0);   //显示清屏


 Write_Byte_1602(0x06,0);   //显示光标移动设置


 Write_Byte_1602(0x0c,0);   //显示开及光标设置

}


void Write_char1_1602(bit x,u8 y,u8 dat1)


{


if(x==0)


 {


Write_Byte_1602(0x80+y,0);


 }


 else


 {


  Write_Byte_1602(0xc0+y,0);


 }


 //dat1+=0x30;


 Write_Byte_1602(dat1,1);

}


void Write_string_1602(bit x,u8 y,u8 *str)


{


if(x==0)


 {


Write_Byte_1602(0x80+y,0);


 }


 else


 {


  Write_Byte_1602(0xc0+y,0);


 }


 while(*str)


 {


  Write_Byte_1602(*str,1);


str++;


 }

}


这段代码看起来比原来的程序都复杂一点,但还是一些比较基础的内容,所以大家先自己理解一下,不理解地方可以先看一下资料,这段程序中使用到了我之前没提到过的内容——指针,后面我会单独列出出来进行讲解。


0dd6c8eb828b271686eddf8c85e9b1c9_wKgZomRtr5mAfg8KAAHFMfv-gn0553.jpg

关键字:LCD1602  显示控制 引用地址:LCD1602工作原理 LCD1602液晶屏原理图 LCD1602显示控制

上一篇:基于HMI-Board的智能宿舍空调管理系统设计案例
下一篇:数字功放中的限幅压限电路分析

推荐阅读最新更新时间:2024-11-12 22:06

基于arm的LM3S811微控制器与TH12864显示模块的技术应用
8位的51单片机长期占据着微控制器(MCU)的主流市场,但随着技术与需求的发展,32位微控制器应用增长率也在不断攀升。目前,基于arm内核的32位微处理器在市场上处于领导地位。 基于arm嵌入式处理器的片上系统解决方案可应用于企业应用、汽车系统,家庭网络和无线技术等市场领域。ARM CortexTM系列提供了一个标准的体系结构来满足以上各种技术的不同性能要求,基于ARM架构有3个分工明确的系列:A系列面向复杂的尖端应用程序,用于运行开放式的复杂操作系统;R系列针对实时系统;M系列专为低成本控制和微控制器应用开发。Cortex-M3是基于ARM架构的处理器,是专门为了在微控制器等对功耗和成本敏感的应用领域实现高系统性能而设计的,
[单片机]
基于arm的LM3S811微<font color='red'>控制</font>器与TH12864<font color='red'>显示</font>模块的技术应用
icc avr LCD1602显示屏程序
入口参数说明: // control port //#define SET_RS sbi(PORTB,5) //#define CLR_RS cbi(PORTB,5) //#define OUT_RS sbi(DDRB,5) //#define SET_RW sbi(PORTB,6) //#define CLR_RW cbi(PORTB,6) //#define OUT_RW sbi(DDRB,6) //#define SET_E sbi(PORTB,7) //#define CLR_E cbi(PORTB,7) //#define OUT_E sbi(DDRB,7) // data port //#define SET_D4
[嵌入式]
基于单片机的新型液晶显示控制电路设计
  前言: 液晶显示是目前单片机技术中广泛应用的功能。利用功能强大的AT 89S52 型单片机和编程软件Visual C+ + ,设计一种新型液晶显示控制电路。从AT89S52 单片机和DMC20261 型LCD 液晶显示屏的性能特点入手,结合实际经验实现二者之间的接口设计。经过调试,该控制系统取得了比较满意的设计结果,且系统软硬件设计简单方便、稳定可靠,可广泛应用于智能化仪器仪表及各种宣传场所,为嵌入式控制系统提供高灵活、高性价比的解决方案。   1 AT89S52 单片机简介   1. 1 芯片主要特性   AT89S52 单片机是Atmel 公司新近推出的高档、增强型产品。它是一个低功耗、高性能CMOS 8 位微控制器,
[单片机]
基于单片机的新型液晶<font color='red'>显示</font><font color='red'>控制</font>电路设计
基于TLC5947的旋转LED屏显示控制器设计方案详解
引言 在各种设备中,显示设备占有重要地位,少了显示设备就像人少了眼睛,很多内在的东西都看不见。显示设备很重要也很常见,然而它的外形总是那么单调,像一个个的模型。旋转 LED 屏以其新颖、可视角360°吸引了电子狂热者的眼光。本项目是通过主控芯片STM32F103,将触摸技术与旋转 LED屏 幕相结合,可以实现时钟的变换,还可以利用触摸技术在旋转 LED 上玩一些小游戏,让旋转LED不再只是单一的观赏性的技术。 旋转LED显示屏是一种通过同步控制发光二极管(LED)位置和点亮状态来实现图文显示的新型显示屏,因其结构新颖、成本低、可视视角达360°而得到了迅速的发展。目前,常见的LED显示屏都是采用扫描方式进行显示的,其实现原理
[电源管理]
基于TLC5947的旋转LED屏<font color='red'>显示</font><font color='red'>控制</font>器设计方案详解
51单片机驱动 LCD1602液晶显示系统
废话不多说先上实物图 LCD1602+51单片机最小系统应用仿真及制作 好了,接下来正式进入制作环节: 第一步:仿真 绘制好原理图,仿真时单片机最小系统只放一个单片机就可以了,但实际电路中需要加上电源模块、复位模块。如下图: 原理图文件请在附件中找。 原理图绘制好后,编写代码并生成hex文件。参考代码如下: /*功能/ /使用外部中断INTO改变LED状态,并且用1602显示出其状态/ #include reg51.h #include intrins.h #define uint unsigned int #define uchar unsigned char uchar code table = H
[单片机]
51单片机驱动 <font color='red'>LCD1602</font>液晶<font color='red'>显示</font>系统
51单片机-LCD1602
1.硬件设计 1.1.LCD1602介绍 LCD1602是由字符型液晶显示屏(LCD)、控制驱动主电路HD44780及其扩展驱动电路HD44100,以及少量电阻、电容元件和结构件等装配在PCB板上而组成。 LCD1602主要用来显示数字、字母、图形以及少量自定义字符。可以显示2行16个字符,拥有16个引脚,其中8位数据总线D0-D7,和RS、R/W、EN三个控制端口,工作电压为5V,并且带有字符对比度调节V0和背光源AK 关于LCD的工作原理,结构堆叠等的介绍,可参考如下链接:https://lishiyi.blog.csdn.net/article/details/124106767?spm=1001.2014.3001.550
[单片机]
51单片机-<font color='red'>LCD1602</font>
LCD1602几种调试方法(NIOSii)
#include system.h #include stdio.h int main (void) { FILE *lcd1; lcd1 = fopen( /dev/lcd , w ); if (lcd1 == NULL) printf( lcd not ready...n ); else { printf( lcd ready...n ); fprintf(lcd1, 111111111111111111111n ); } fclose(lcd1); printf( can you see something? ); return 0; } #include system.h #include altera_av
[单片机]
基于单片机的LCD1602电子时钟设计
学习任务: (1)基本了解LCD1602 (2)基于51单片机用LCD1602实现分秒的计时; (3)按键控制分秒的调整(两个按键分别控制分和秒的增加); (4)能实现整时报时的功能(蜂鸣器响); (5)了解下载模块、下载原理; (6)基本上了解并使用DXP绘制PCB板; 知识点总结: 一、LCD1602: 字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,本次使用的LCD1602为16*2型。 1、基本操作时序 1、1读状态:输入:RS=L,Rw=H,E=H 输出:D0~D7=状态字; 1、2写指令:输入:RS=L,Rw=L,D0~D7=指令码,E=高脉冲,输出:无; 1、3读数据:输入:RS
[单片机]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved