分享

LCD1602液晶显示_lcd1602asciima

 和生k7zm98l2kv 2023-06-08 发布于广东

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

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

二、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)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多