[51单片机] LCD1602显示一直闪烁的问题

[复制链接]
3260|12
 楼主| sysharon 发表于 2020-6-19 21:18 | 显示全部楼层 |阅读模式
本帖最后由 sysharon 于 2020-6-19 21:54 编辑

大佬们,这个lcd1602显示程序要怎么改才能让数据稳定的显示啊,现在写入的数据一直在闪动
 楼主| sysharon 发表于 2020-6-19 21:19 | 显示全部楼层
MAIN0:
MOV P0,#00000001B      
ACALL  ENABLE            
MOV P0,#00111000B     
ACALL  ENABLE         
MOV P0,#00001100B     
ACALL  ENABLE         
MOV P0,#00000110B   
ACALL  ENABLE
MOV P0,#00H
ACALL ENABLE
MOV A,#01010100B
ACALL WRITE
MOV A,#01100101B
ACALL WRITE
MOV A,#01101101B
ACALL WRITE
MOV A,#00111010B
ACALL WRITE
MOV P0,#0C0H
ACALL  ENABLE
MOV A,#01010111B
ACALL WRITE
MOV A,#01100101B
ACALL WRITE
MOV A,#01101001B
ACALL WRITE
MOV A,#00111010B
ACALL WRITE
ACALL MAIN1
ACALL DISPLAY1
ACALL DELAY2
ACALL DELAY2
ACALL DELAY2
LJMP MAIN0
MAIN1:
CLR P2.2
LCALL TEST
LCALL OPDATA
LCALL OPDATA2
RET
 楼主| sysharon 发表于 2020-6-19 21:19 | 显示全部楼层
sysharon 发表于 2020-6-19 21:19
MAIN0:
MOV P0,#00000001B      
ACALL  ENABLE            

大佬们救救小弟吧,以及改了一天了,实在找不到办法了
 楼主| sysharon 发表于 2020-6-19 21:22 | 显示全部楼层
sysharon 发表于 2020-6-19 21:19
大佬们救救小弟吧,以及改了一天了,实在找不到办法了

目测现在的问题是频繁写入闪动问题,改变温度采集的数据的时候,显示非常不稳定,要怎么改啊,延时貌似也不能完全解决问题,加了定时器感觉也不行T_T
 楼主| sysharon 发表于 2020-6-19 21:23 | 显示全部楼层
 楼主| sysharon 发表于 2020-6-19 22:07 | 显示全部楼层
本帖最后由 sysharon 于 2020-6-19 22:09 编辑

加了一段MAIN01的程序貌似解决了,可是觉得还不是最完美的方法,一定有办法的大佬们帮帮我
MAIN01:
MOV 40H,SHUJV
ACALL MAIN1
MOV A,SHUJV
SUBB A,40H
CJNE A,#00H,MAIN0
JMP MAIN0
MAIN0:
MOV P0,#00000001B      
ACALL  ENABLE            
MOV P0,#00111000B     
ACALL  ENABLE         
MOV P0,#00001100B     
ACALL  ENABLE         
MOV P0,#00000110B   
ACALL  ENABLE
MOV P0,#00H
ACALL ENABLE
MOV A,#01010100B
ACALL WRITE
MOV A,#01100101B
ACALL WRITE
MOV A,#01101101B
ACALL WRITE
MOV A,#00111010B
ACALL WRITE
MOV P0,#0C0H
ACALL  ENABLE
MOV A,#01010111B
ACALL WRITE
MOV A,#01100101B
ACALL WRITE
MOV A,#01101001B
ACALL WRITE
MOV A,#00111010B
ACALL WRITE
ACALL DISPLAY1
ACALL DELAY2
ACALL DELAY2
ACALL DELAY2
LJMP MAIN01
MAIN1:
CLR P2.2
LCALL TEST
LCALL OPDATA
LCALL OPDATA2
RET
Kelan 发表于 2020-6-19 22:19 | 显示全部楼层
写一次就行了,LCD控制器自动回刷新显示。另外,考虑LCD的闪烁功能是否关闭?
 楼主| sysharon 发表于 2020-6-19 22:46 | 显示全部楼层
Kelan 发表于 2020-6-19 22:19
写一次就行了,LCD控制器自动回刷新显示。另外,考虑LCD的闪烁功能是否关闭? ...

大佬的意思是不是把显示写成函数然后调用一次就行??
fhmd 发表于 2020-6-20 00:00 | 显示全部楼层
同一位置字符没有变化的,写一次就行了,一直刷就一直闪
Cjy_JDxy 发表于 2020-6-20 09:25 | 显示全部楼层
sysharon 发表于 2020-6-19 22:46
大佬的意思是不是把显示写成函数然后调用一次就行??

汇编,好厉害
guojunhope 发表于 2020-6-20 14:01 | 显示全部楼层
我估计不是软件的问题,你要给LCD的电源引脚加滤波电容
 楼主| sysharon 发表于 2020-6-20 14:33 | 显示全部楼层
guojunhope 发表于 2020-6-20 14:01
我估计不是软件的问题,你要给LCD的电源引脚加滤波电容

这里面有什么原理呀??
以前没加滤波电容也成功稳定显示了。
guojunhope 发表于 2020-6-20 18:36 | 显示全部楼层
sysharon 发表于 2020-6-20 14:33
这里面有什么原理呀??
以前没加滤波电容也成功稳定显示了。

这种显示器件本身容易受干扰,所以加电容滤波应该是必须的,之前侥幸的成功,不能作为依据
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

32

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部