小巴陪你搞技术-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月前
|
传感器
手把手在STM32F103C8T6上构建可扩展可移植的DHT11驱动
【8月更文挑战第29天】本文详细介绍在STM32F103C8T6上构建可扩展且可移植的DHT11温湿度传感器驱动的步骤,包括硬件与软件准备、硬件连接、驱动代码编写及测试。通过这些步骤,可根据实际项目需求优化和扩展代码。
|
3月前
STM32Cubemx PWM驱动加湿器模拟火山喷发效果
STM32Cubemx PWM驱动加湿器模拟火山喷发效果
54 14
|
3月前
STM32Cubemx PWM驱动SG90舵机
STM32Cubemx PWM驱动SG90舵机
99 13
|
3月前
STM32CubeMX mpu6050驱动
STM32CubeMX mpu6050驱动
51 10
|
3月前
STM32CubeMX EC11旋转编码器驱动
STM32CubeMX EC11旋转编码器驱动
86 10
|
3月前
STM32CubeMX OLED驱动
STM32CubeMX OLED驱动
53 10
|
3月前
|
芯片
STM32CubeMX TM1637驱动数码管
STM32CubeMX TM1637驱动数码管
54 6
|
3月前
STM32CubeMX WS2812B灯驱动
STM32CubeMX WS2812B灯驱动
88 1
|
3月前
STM32CubeMX ULN2003步进电机驱动
STM32CubeMX ULN2003步进电机驱动
34 0
|
3月前
STM32Cubemx TB6612直流电机驱动
STM32Cubemx TB6612直流电机驱动
67 0