lcd1602显示原理(LCD1602显示屏原理及使用教程)
一、lcd1602显示流程图
lcd1602显示流程图:
LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。它是由字符型液晶显示屏(LCD)、控制驱动主电路HD44780及其扩展驱动电路HD44100,以及少量电阻、电容元件和结构件等装配在PCB板上而组成。
不同厂家生产的LCD1602芯片可能有所不同,但使用方法都是一样的。为了降低成本,绝大多数制造商都直接将裸片做到板子上。
扩展资料:
LCD1602与单片机的连接有两种方式,一种是直接控制方式,另一种是所谓的间接控制方式。它们的区别只是所用的数据线的数量不同,其他都一样。
1、直接控制方式
LCD1602的8根数据线和3根控制线E,RS和R/W与单片机相连后即可正常工作。一般应用中只须往LCD1602中写入命令和数据,因此,可将LCD1602的R/W读/写选择控制端直接接地,这样可节省1根数据线。
VO引脚是液晶对比度调试端,通常连接一个10kΩ的电位器即可实现对比度的调整;也可采用将一个适当大小的电阻从该引脚接地的方法进行调整,不过电阻的大小应通过调试决定。
2、间接控制方式
间接控制方式也称为四线制工作方式,是利用HD44780所具有的4位数据总线的功能,将电路接口简化的一种方式。为了减少接线数量,只采用引脚DB4~DB7与单片机进行通信,先传数据或命令的高4位,再传低4位。
采用四线并口通信,可以减少对微控制器I/O的需求,当设计产品过程中单片机的I/O资源紧张时,可以考虑使用此方法。
参考资料来源:百度百科-LCD1602
二、lcd1602液晶显示屏工作原理
lcd1602工作原理点阵图形式液晶由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显示的基本原理。
LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。它是由字符型液晶显示屏(LCD)、控制驱动主电路HD44780及其扩展驱动电路HD44100,以及少量电阻、电容元件和结构件等装配在PCB板上而组成。
液晶显示模块具有体积小、功耗低、显示内容丰富、超薄轻巧等优点,在嵌入式应用系统中得到越来越广泛的应用,这讲中向大家介绍的LCD1602液晶显示模块(其内部控制器为HD44780芯片),它可以显示两行,每行16个字符,因此可相当于32个LED数码管,而且比数码管显示的信息还多。采用单+5V电源供电,外围电路配置简单,价格便宜,具有很高的性价比。
三、单片机应用技术 液晶种类和lcd1602工作原理
液晶屏可分为字符型和点阵型,还可以分单色和彩色
LCD1602是字符型单色显示器件
LCD1602工作原理不需深究,只要知道它能干什么,怎么用就行.
对使用者而言,要知道三根控制线片选LCDEN命令/数据选择RS读写控制线RW
及8根数据线
初始化之后要显示时,可以先送一个地址(送地址属于命令),然后再送去要显示字符的ASCI码(数据)就行,地址会自动加1,送一次地址可连续送多个数据,
第一行第1列地址是80H
第二行第1列地址是80H+40H
C语言写数据和命令的子程序如下:
void write_com(uchar com)//写命令
{
db=com;//db是数据口
rs=0;
rw= 0;
lcden=0;
Delay1ms(10);
lcden=1;
Delay1ms(10);
lcden=0;
}
void write_date(uchar date)//写数据
{
db=date;
rs=1;
rw= 0;
lcden=0;
Delay1ms(10);
lcden=1;
Delay1ms(10);
lcden=0;
}
void init2()//初始化
{
beiguang=0;
rw=0;
write_com(0x38);
Delay1ms(10);
write_com(0x0f);
Delay1ms(10);
write_com(0x06);
Delay1ms(10);
write_com(0x01);
Delay1ms(10);
}
实际应用例子:A1A2等是数字,加上0X30即为其ASCI码
void display4(unsigned int temp)//1行多位显示程序
{
init2();
A1=temp/1000%10;//分离个、十、百、千位如果数比较大,还要分离出万位,因INT型//变量最大是65535
A2=temp/100%10;
A3=temp/10%10;
A4=temp%10;
write_com(0x80);
Delay1ms(10);
write_date(0x30+A1);
Delay1ms(10);
write_date(0x30+A2);
Delay1ms(10);
write_date(0x30+A3);
Delay1ms(10);
write_date(0x30+A4);
Delay1ms(10);
write_com(0x85);
write_date('m');//显示字符"m"用单引号即可
Delay1ms(10);
write_date('A');
Delay1ms(10);
}