矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
查看: 2145|回复: 10

关于arduino驱动1602液晶屏的问题

[复制链接]
发表于 2021-4-24 19:45:05 | 显示全部楼层 |阅读模式
我用1602液晶屏显示数字,出来的却是字母请问这是为什么
把现闪电语句放入setup里就没有问题,在loop里就有这个问题
而且程序中只要调用我自己写的函数里有显示的语句,就有这个问题
 楼主| 发表于 2021-4-24 19:48:13 | 显示全部楼层
但是如果用实例里的程序,写入单片机,就没有问题,都是正常的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-24 19:49:09 | 显示全部楼层
现在感觉我的程序里因为某种未知的错误将变量里的数字转化成字母输出到液晶屏了
回复 支持 反对

使用道具 举报

     
发表于 2021-4-24 20:00:32 | 显示全部楼层
什么数字变成哪个字母,说清楚。老老实实把你的时间关系检查一下,太快了就错了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-24 20:03:35 | 显示全部楼层
0:t
1:u
2:v
3:w
4:t
5:u
6:v
7:w
8:|
9:}
8和9显示成了符号
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-24 20:04:23 | 显示全部楼层
w6955 发表于 2021-4-24 20:00
什么数字变成哪个字母,说清楚。老老实实把你的时间关系检查一下,太快了就错了。

时间关系检查不了,用的是那个自带的<LiquidCrystal.h>库
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-24 20:04:57 | 显示全部楼层
之前在同一个单片机上没有问题,烧其它程序没有问题
回复 支持 反对

使用道具 举报

     
发表于 2021-4-24 21:09:26 | 显示全部楼层
我有一片很早买的1602,一直找到不到使用的场合,屏太小,显示信息有限
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-24 22:00:07 | 显示全部楼层
谢谢大家,现在已经解决了,是端口冲突的问题
回复 支持 反对

使用道具 举报

     
发表于 2021-4-25 06:29:58 | 显示全部楼层
吃错药的老鼠 发表于 2021-4-24 22:00
谢谢大家,现在已经解决了,是端口冲突的问题

解决了就好,使用成熟库的系统一般不容易出大问题。
回复 支持 反对

使用道具 举报

     
发表于 2021-4-25 11:40:24 | 显示全部楼层
吃错药的老鼠 发表于 2021-4-24 20:04
时间关系检查不了,用的是那个自带的库

一般 1602 主控是 HD44780(的兼容芯片),44780 在 EN 下降沿将数据锁存到内部寄存器,要求

1、至少 140ns 的地址建立时间(RorW 引脚变为低电平后),如果你只写不读,RorW 引脚始终低电平可不考虑
2、至少 195ns 的数据建立时间,数据放到总线上后至少要经过这个时间,EN 才能以下降沿将数据锁存到内部寄存器
3、使能脉冲宽度(高电平持续时间)至少 450ns
4、数据保持时间至少 10ns,也就是说,EN 在下降沿将数据锁存到内部寄存器需要至少 10ns 时间,这个时间内,总线上的数据不应变化
5、使能周期最少 1us,也就是说,两次写入 44780 的时间不能短于 1us

所以如果是自编的 44780 操作代码需要用延迟保证上述时序。但你用的是 Arduino 的官方库,应该有足够的延迟保证这一点,所以如果遇到问题,可以用简易 LA 把总线上的数据抓出来看看是怎么回事。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-4-28 07:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表