小巴陪你搞技术-STM32驱动1602时钟

简介: 小巴陪你搞技术-STM32驱动1602时钟

好久都没有更新微信公众号了,今日闲暇,搞了一个1602的时钟,特此分享给大家,共同学习。废话就不多说了

咱们先来看看LCD1602的引脚

1602的引脚十分简单,三根信号线,8跟数据线,两根背光电源线,一个背光调节线,在上表中也解释的很详细,对于1602的引脚就介绍到这里


下面主要来看看它的时序图,分为“写时序”和“读时序”


写时序

由时序图可知,写指令时,EN引脚需要一个下降沿,RS = 0;RW = 0;

故我们的写指令函数可以这样写:



读时序

同理:根据时序图我们可以写出写数据的函数





读写操作都配置好以后我们来看一下如何初始化LCD1602

在初始化之前呢,我们还是要先来看看1602的指令集,看懂了指令集才知道如何去配置


先举个“栗”子:

如果我们想要对1602进行清屏操作的话,根据指令集我们改发送什么指令呢

在1602的数据手册上就找到了他的指令集,如下图,清屏指令

知道这个以后有啥用呢,怎么实现清屏呢


这个就需要用我们刚写的写指令函数,for exampl:

LCD_1602_WriteCmd(0x01);//清屏

写入0x01就可以啦,


同样我们还可以配置1602显示方式,移屏、光标闪烁等操作,根据指令集都可以实现

只要按照提示就可以配置1602


下面分享一下lcd1602的初始化函数(可以根据个人喜好配置)我这里配置成不移屏显示



完成后我们就可以向1602写数据啦


LCD_1602_WriteCmd(0x80);//光标定位到第一行第0列,故0x81就是第一列

LCD_1602_WriteCmd(0xC0);//光标定位到第二行第0列,故0xC1就是第一列


比如我们想往1602的第一行最后一列写入一个字符“!”

我们的程序就可以这么写

LCD_1602_WriteCmd(0x8F);//光标定位到第一行最后一列

LCD_1602_WriteDat('!'); //显示‘!’


如果想显示一个数的话,需要来点骚操作

LCD_1602_WriteCmd(0x80);//光标定位到第一行第0列

LCD_1602_WriteDat(0x30 + dat); //显示dat数据

因为我们要显示的数是ASCII码,当要显示显示数字时,必须要加上0x30,不过还可以这样写:LCD_1602_WriteDat(‘0’+dat);这两种方式是一样的


写字符和写数据都说完啦,大家感兴趣可以试一下如何写一个字符串,自己定义一个子函数,往1602里写入一个字符串,这就可以用指针,有兴趣的可以研究一下


相关文章
|
2月前
|
监控 前端开发
STM32F103标准外设库——RCC时钟(六)
STM32F103标准外设库——RCC时钟(六)
68 0
STM32F103标准外设库——RCC时钟(六)
|
18天前
【STM32】通过RTThread驱动W25QXXX
【STM32】通过RTThread驱动W25QXXX
|
1月前
|
存储 Unix C语言
STM32--RTC实时时钟
STM32--RTC实时时钟
|
1月前
STM32F103驱动oled显示屏
STM32F103驱动oled显示屏
21 0
|
3月前
|
芯片
嵌入式系统中STM32时钟系统详解
嵌入式系统中STM32时钟系统详解
46 0
|
8月前
|
传感器
STM32(HAL库)驱动GY30光照传感器通过串口进行打印
STM32(HAL库)驱动GY30光照传感器通过串口进行打印
|
12天前
|
芯片
嵌入式STM32中时钟系统详细分析
嵌入式STM32中时钟系统详细分析
59 0
嵌入式STM32中时钟系统详细分析
|
6月前
|
存储 机器人 芯片
嵌入式 STM32 步进电机驱动,干货满满,建议收藏
嵌入式 STM32 步进电机驱动,干货满满,建议收藏
嵌入式 STM32 步进电机驱动,干货满满,建议收藏