LCD1602的使用详解
一、学习目的
学会如何使用一个新的模块:
- 从硬件上获得接口的了解;
- 查看芯片的数据手册,了解接口的使用方法
- 写程序时要遵循 硬件电路 –> 硬件接口 –> 软件编程 这三个部分
二、LCD1602原理
1、只能显示ASCII码
1602 = 16个字符/行 * 2行 = 像素 16*2
2、分析时序图
(1)写操作(单片机至HD44780)
描述:
首先要对寄存器的选择和读、写操作选择进行配置。RS是寄存器选择,RS = 1对数据进行操作;RS = 0对指令进行操作。
接着对读写操作选择进行配置,RW = 0 写操作。
打开使能端,输入使能信号 E = 1。
数据总线,对DB0~DB7赋值,进行数据的传输
【注】如果先打开使能,再进行其他配置的话,有可能传输的数据不是自己想要的。
(2)读操作(HD44780至单片机)
(描述同上)
3、显示模块的指令集
根据自己的显示需要进行相应的配置
4、显示的位置设置DDRAM
显示在第一行某一列的数据可以写命令:0x80 | 0x**
显示在第二行某一列的数据可以写命令:0x80 | 0x40 | 0x** = 0xC0 | 0x**
0x80是因为在设置DDRAM地址时,DB7固定是为1的。
三、LCD1602写入自己的字符及显示汉字
1、由于LCD是外部设备,处理速度比CPU速度慢,向LCD写入命令到完成功能需要一定的时间,在这个过程中,LCD处于忙状态,不能向LCD写入新的内容。LCD是否处于忙状态可以通过读忙标志命令来了解。
用state = LCDPORT来读取IO端口的状态,将state & 0x80来判断LCD是否处于忙状态,若IO口bit7为1,则表示LCD处于忙状态,反之则空闲。
2、要让LCD1602显示自定义字符,就得用到CGRAM指令,CGROM字码表实际只有8个字节可供使用,writecom(0x40)表示将要在CGRAM中写入数据,设置字库CGRAM地址命令是0100 0000.
1602能存储8个自定义字符(即8个字节的使用),这8个自定义字符存储空间的首地址分别是:0X40,0X48,0X50,0X58,0X60,0X68,0X70,0X78。
使用时读取自定义字符的地址即为0X40-0X78 对应为 00H-07H。一个地址(如00H)存放1B的一个字符(1B = 8bit,一个字符由8个0x**组成)
以0x40来说,它的存储空间如图所示:
如果使用5*7字符的话,那么最左3位和最后一行的数据实际上是没用的,通常置0。
这样我们就得到每个地址需要写入的数据:
地址 : 数据
0x40 : 0x16
0x41 : 0x09
0x42 : 0x08 其他类推。将这8个数据写入到对应地址即可。(有红格子的即为1,白格子即为0)
LCD1602的使用详解相关推荐
- 51单片机DS18B20温度传感器使用及数码管温度计、LCD1602温度显示代码详解
温馨提示:读者若要彻底理解并会灵活使用DS18B20温度传感器,请详细阅读中文手册,并且对照代码注释充分分析代码.请不要觉得中文手册内容繁多!如能静心分析,定能深有体会,获益匪浅! 一.DS18B20 ...
- LCD1602知识详解(很详尽的)
1602液晶知识详解: 1.1602液晶基础 *VSS:电源地信号引脚: *VDD:电源信号引脚: *VEE:液晶对比度调节引脚,接0~5V以调节液晶的显示对比度: *RS:寄存器选择引脚: RS = ...
- 51单片机步进电机角度控制详解(免费提供代码+仿真)
51单片机步进电机控制详解 目录 51单片机步进电机控制详解 一.步进电机基本介绍 1. 步进电机结构 2. 步进电机驱动 二.硬件&仿真设计 0.设计要求 1. 硬件设计 显示模块 输入模块 ...
- 51单片机实训项目之“万年历”代码原理详解
一.原理图 二.芯片器件 STC89C52 DS18B20(温度传感器) DS1302(时钟芯片) LCD1602液晶显示 独立按键 杜邦线 三.仿真图 四.程序代码详解 (一).子程序 EEPROM ...
- sip 时序图_SPI总线协议及SPI时序图详解
一.SPI总线介绍 SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根 ...
- MCP3421使用详解
0 摘要 因某项目需要,需要采集微弱的电压信号,且对电压精度要求较高,于是选中MCP3421这款18 bit 高精度IIC AD转换芯片.本文将结合MCP3421的手册,对该芯片的使用进行详细解释,并 ...
- 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)
首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...
- JVM年轻代,老年代,永久代详解
秉承不重复造轮子的原则,查看印象笔记分享连接↓↓↓↓ 传送门:JVM年轻代,老年代,永久代详解 速读摘要 最近被问到了这个问题,解释的不是很清晰,有一些概念略微模糊,在此进行整理和记录,分享给大家.在 ...
- docker常用命令详解
docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...
最新文章
- tab-pane 怎么家点击事件_想起爆款?怎么样去打造一个人见人点的爆款主图?
- 世界上最好用的浏览器Chrome 10周岁生日,迎来一大波更新!
- 转:.NET使用一般处理程序生成验证码!
- vs2017安装好后颜色主题、字体、语言包的设置
- npm安装github包
- 从零开始一个cli脚手架并发布到NPM(上篇)
- 程序员高手必会的十大编程算法
- java调用考勤机_zkteco iface702 中控考勤机java开发步骤一---连接考勤机
- 自然语言处理顶会 ACL2019论文接收列表
- php清理浏览器缓存文件在哪里,php如何清除浏览器缓存?
- YOLO模型train.py文件报错:size mismatch for last_layer0.6.weight: copying a param with shape torch.
- Android Studio中如何隐藏顶部状态栏和标题栏
- NodeMcu arduino ESP8266 使用Ticker库(多任务处理)
- nbu6.5 linux安装,Veritas.Netbackup 6.0 for Linux RedHat AS5.3安装问题
- mysql 重做日志 镜像_mysql重做日志 - osc_vr7hvjd2的个人空间 - OSCHINA - 中文开源技术交流社区...
- 【总结】1183- 毕业去字节之前的一些感想
- 人机大战引关注 人工智能概念股有望受追捧
- 3D文物博物馆新体验——会动的三星堆
- okl4 linux,数据接入 API
- 党员管理系统毕业设计