一、学习目的
学会如何使用一个新的模块:

  • 从硬件上获得接口的了解;
  • 查看芯片的数据手册,了解接口的使用方法
  • 写程序时要遵循 硬件电路 –> 硬件接口 –> 软件编程 这三个部分

二、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的使用详解相关推荐

  1. 51单片机DS18B20温度传感器使用及数码管温度计、LCD1602温度显示代码详解

    温馨提示:读者若要彻底理解并会灵活使用DS18B20温度传感器,请详细阅读中文手册,并且对照代码注释充分分析代码.请不要觉得中文手册内容繁多!如能静心分析,定能深有体会,获益匪浅! 一.DS18B20 ...

  2. LCD1602知识详解(很详尽的)

    1602液晶知识详解: 1.1602液晶基础 *VSS:电源地信号引脚: *VDD:电源信号引脚: *VEE:液晶对比度调节引脚,接0~5V以调节液晶的显示对比度: *RS:寄存器选择引脚: RS = ...

  3. 51单片机步进电机角度控制详解(免费提供代码+仿真)

    51单片机步进电机控制详解 目录 51单片机步进电机控制详解 一.步进电机基本介绍 1. 步进电机结构 2. 步进电机驱动 二.硬件&仿真设计 0.设计要求 1. 硬件设计 显示模块 输入模块 ...

  4. 51单片机实训项目之“万年历”代码原理详解

    一.原理图 二.芯片器件 STC89C52 DS18B20(温度传感器) DS1302(时钟芯片) LCD1602液晶显示 独立按键 杜邦线 三.仿真图 四.程序代码详解 (一).子程序 EEPROM ...

  5. sip 时序图_SPI总线协议及SPI时序图详解

    一.SPI总线介绍 SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根 ...

  6. MCP3421使用详解

    0 摘要 因某项目需要,需要采集微弱的电压信号,且对电压精度要求较高,于是选中MCP3421这款18 bit 高精度IIC AD转换芯片.本文将结合MCP3421的手册,对该芯片的使用进行详细解释,并 ...

  7. 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)

    首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...

  8. JVM年轻代,老年代,永久代详解​​​​​​​

    秉承不重复造轮子的原则,查看印象笔记分享连接↓↓↓↓ 传送门:JVM年轻代,老年代,永久代详解 速读摘要 最近被问到了这个问题,解释的不是很清晰,有一些概念略微模糊,在此进行整理和记录,分享给大家.在 ...

  9. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

最新文章

  1. tab-pane 怎么家点击事件_想起爆款?怎么样去打造一个人见人点的爆款主图?
  2. 世界上最好用的浏览器Chrome 10周岁生日,迎来一大波更新!
  3. 转:.NET使用一般处理程序生成验证码!
  4. vs2017安装好后颜色主题、字体、语言包的设置
  5. npm安装github包
  6. 从零开始一个cli脚手架并发布到NPM(上篇)
  7. 程序员高手必会的十大编程算法
  8. java调用考勤机_zkteco iface702 中控考勤机java开发步骤一---连接考勤机
  9. 自然语言处理顶会 ACL2019论文接收列表
  10. php清理浏览器缓存文件在哪里,php如何清除浏览器缓存?
  11. YOLO模型train.py文件报错:size mismatch for last_layer0.6.weight: copying a param with shape torch.
  12. Android Studio中如何隐藏顶部状态栏和标题栏
  13. NodeMcu arduino ESP8266 使用Ticker库(多任务处理)
  14. nbu6.5 linux安装,Veritas.Netbackup 6.0 for Linux RedHat AS5.3安装问题
  15. mysql 重做日志 镜像_mysql重做日志 - osc_vr7hvjd2的个人空间 - OSCHINA - 中文开源技术交流社区...
  16. 【总结】1183- 毕业去字节之前的一些感想
  17. 人机大战引关注 人工智能概念股有望受追捧
  18. 3D文物博物馆新体验——会动的三星堆
  19. okl4 linux,数据接入 API
  20. 党员管理系统毕业设计

热门文章

  1. 如何通过API接口,获取商品详情数据
  2. IOS - rangeOfString、NSNotFound
  3. java word标签替换_JAVA实现替换WORD模板中的文字和图片
  4. Android初识-Intent用法进阶篇
  5. DateSet和BindingNavigator合作的产物
  6. 大数据应用要经得起考验,不可盲目跟风_光点科技
  7. StarUML使用教程一览
  8. Flink Kafka Doris实战demo
  9. 04 TCP/IP协议详解
  10. Openstack-实践4.Manila 部署及功能验证