STM32 1602LCD无法正常显示

STM32 1602LCD无法正常显示,第1张

LCD上面显示的字符对应的是ASCLL码就是对应的0~255的值,你是浮点型的变量当然显示不出来了。

比如显示1你肯定败庆芹发送到LCD上的数字式0x31; 2的话就是0x32.这些在LCD寄察毕存器中差搏是有定义的,不是发什么它都能显示,你看看他的手册

1.硬件原理

液晶屏的使用还是挺多的电子设备上用到的,最常见的就是电脑,手机,电视,还有小家电上。本次实验讲解用arduino来驱动1602液晶屏。1602液晶屏是一种字符型液晶,它的主控芯片是HD44780或者其它兼容芯片,可以显示数字,字母和符号,但是不能显示汉字,因为上面的点阵是5x7排列的,显示一个汉字至少需要8x6的点阵才可以显示出来。

液晶屏1602驱动芯片(驱动液晶1602就这么简单)(2)

1602液晶

下面介绍一下1602的管脚,VCC和GND分别连接arduino的5V和GND脚,VL脚为液晶对比度调整端,接正电源时对比度最弱,接地时对比度最高,一般串联10K的电禅樱位器调整对比度。RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。

RW为读写信号线,高电平(1)时进行读 *** 作,EN脚为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。D0-D7是数据管脚,传输数据用。

本次1602的接法是高4位数据线的接法,这样可以节省裂肢IO,具体硬件连接请看原理图;

液晶屏1602驱动芯片(驱动液晶1602就这么简单)(3)

硬件原理图

2.程序解读

算法描述:

驱动LCD1602用的是库函数的方法,arduino的好处就是集成了众多外设的库函数,可以包含进去直接调用。如需要在LCD上显示字符,直接调用lcd.print()函数即可。用arduino驱动LCD1602相对于51或STM32来说,是明显方便了许多。51或者STM32是需要写驱动的代码的,驱动代码没有封装在他们的IDE里,不能直接调用。所以想显示哪些信息,只需要看官方公布的函数库调用即可。详细用到哪些函数,请看下面代码。

代码解读:

其实用库函数的最大好处,就是看起来代码量很上,简洁易懂。

#include <LiquidCrystal.h>//函数定义LiquidCrystal(rs, enable, d4, d5, d6, d7) LiquidCrystal lcd(12, 11, 10, 9, 8, 7)//设置接口 void setup() { //显示器的宽度16,高度2 lcd.begin(16,2)lcd.clear()//清屏 delay(1000)//延时1000ms } void loop () { //设置光标位置为第0行第1个位置 lcd.setCursor(0, 0) //使屏幕显示文字 lcd.print("Arduino-LCD1602")//设置光标位置为第1行第1个位置 lcd.setCursor(0, 1) //使屏幕显示文字 lcd.print("Arduino-LCD1602")//延时0.1秒,也就是1602的刷新速度是0.1s delay(100)}

3.实物效果

按照原理图连接好了之后,烧写程序可以看肆袭世到成功驱动了LCD1602,若看不到显示的信息,则需要调节一下电位器,使显示调到合适的对比度。以后做开发需要显示信息都可以1602来显示了,相比串口监视器显示,更方便直观。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12477315.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存