小巴陪你搞技术-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里写入一个字符串,这就可以用指针,有兴趣的可以研究一下


相关文章
STM32Cubemx PWM驱动加湿器模拟火山喷发效果
STM32Cubemx PWM驱动加湿器模拟火山喷发效果
443 14
STM32Cubemx PWM驱动SG90舵机
STM32Cubemx PWM驱动SG90舵机
1164 13
STM32CubeMX mpu6050驱动
STM32CubeMX mpu6050驱动
368 10
STM32CubeMX EC11旋转编码器驱动
STM32CubeMX EC11旋转编码器驱动
2135 10
STM32CubeMX OLED驱动
STM32CubeMX OLED驱动
376 10
|
芯片
STM32CubeMX TM1637驱动数码管
STM32CubeMX TM1637驱动数码管
1486 6
STM32CubeMX WS2812B灯驱动
STM32CubeMX WS2812B灯驱动
2305 1
STM32CubeMX ULN2003步进电机驱动
STM32CubeMX ULN2003步进电机驱动
530 0
|
传感器
手把手在STM32F103C8T6上构建可扩展可移植的DHT11驱动
【8月更文挑战第29天】本文详细介绍在STM32F103C8T6上构建可扩展且可移植的DHT11温湿度传感器驱动的步骤,包括硬件与软件准备、硬件连接、驱动代码编写及测试。通过这些步骤,可根据实际项目需求优化和扩展代码。
879 0
|
传感器 数据采集 人工智能
【STM32+k210项目】基于AI技术智能语音台灯的设计(完整工程资料源码)
【STM32+k210项目】基于AI技术智能语音台灯的设计(完整工程资料源码)
1601 2