当前位置:首页 > 技术学院 > 技术前线
[导读](记录)51单片机——LCD1602液晶显示模块

(用LCD1602做个温度显示装置)

51单片机-温度测量在LCD1602显示(图+代码)--问题归纳与复盘11 赞同 · 0 评论文章


LCD1602如何显示70

LCD1602液晶显示模块

原理部分


LCD1602如何显示70


LCD1602如何显示70

引脚说明

第4引脚: 低电平选择指令寄存器(即在哪个位置显示(共32个位置))

高电平选择数据寄存器(即显示什么字符);


LCD1602如何显示70


LCD1602如何显示70

80H+地址码=指令码

省略的地方留给整屏左/移动


LCD1602如何显示70


LCD1602如何显示70

eg: A对应 0x41


LCD1602如何显示70

·时序图分析

BD0--BD7 (8位数据)双向数据总线,通常是P0。然后向P0的8个引脚写命令和数据

eg: #define DATAPINS P0

...

void lcd_write_com(unsigned char com)

{

...

DATAPINS=com;

}

void lcd_write_data(unsigned char dat)

{

....

DAPAPINS=dat;

}

上升沿/下跳沿最大25ns,所以单片机延时应大于25ns,可写1ms


LCD1602如何显示70

时序图(配置 写命令/写数据 函数)


LCD1602如何显示70


LCD1602如何显示70

·输入指令前

通常输入指令前要判断液晶模块是否处于忙状态。(可不用判断,因为单片机执行速度与1602写入速度有差别, 1602写入速度>单片机执行速度,所以写入之前 上一次数据已经处理完)

DDRAM:显示数据RAM,用来寄存待显示的字符代码,共80字节


LCD1602如何显示70

DDRAM地址和屏幕对应关系


LCD1602如何显示70

RAM地址映射图

写入显示地址是最高位D7恒为高电平,所以要+80H

·原理图


LCD1602如何显示70


LCD1602如何显示70

·清屏指令


LCD1602如何显示70

·模式设置指令(光标移动方向/滚动显示)


LCD1602如何显示70

DB1:I/D DB1=0 写入数据后光标左移;DB1=0 写入数据后光标右移

DB0:S 可用于滚动显示

·显示开关控制指令(显示、光标、光标闪动)


LCD1602如何显示70

·功能设定指令(总线位数、显示行数、57 / 5*10)


LCD1602如何显示70


LCD1602如何显示70

总结图


LCD1602如何显示70


LCD1602如何显示70

·DATAPINS

1、初始化之前需要编写‘写命令操作’。

对于WriteCom(),由前面知道,写操作需要RW为低电平即‘0’,并且通过使RS为低电平即‘0’来选择命令寄存器,才能写入命令到DATAPINS。另外,每次命令输入DATAPINS就位后,令使能信号产生一个下降沿,将DATAPINS的命令写进LCD1602


LCD1602如何显示70

2.‘写数据操作’也类似,不同之处是RS为高电平即‘1’选择数据寄存器,将数据写入DATAPINS,其他都一样。


LCD1602如何显示70

·初始化函数


LCD1602如何显示70


LCD1602如何显示70

仿真部分

1、proteus中的LCD1602,并不是叫这个名知,而是叫LM016L

2、ADC0808芯片的CLOCK端加的脉冲频率最好为500K(听其他大神这样说的)

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭