找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4678|回复: 12
打印 上一主题 下一主题
收起左侧

单片机驱动lcd1602显示乱码

[复制链接]
跳转到指定楼层
楼主
10黑币
仿真lcd1602秒的十位是正常的,一到做实物,lcd1602显示的秒十位就是乱码。
在线求解


仿真显示正常


实物的秒的十位显示错误,成了;或者超过了6的各种奇怪乱码

最佳答案

查看完整内容

你要搞清楚时序图 //**************************************************** //写指令 //**************************************************** void LCD1602_write_com(unsigned char com) { LCD1602_RS = 0; //LCD1602_delay_ms(1); LCD1602_EN = 0; //
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:155507 发表于 2020-9-23 16:24 | 只看该作者

你要搞清楚时序图





//****************************************************
//写指令
//****************************************************
void LCD1602_write_com(unsigned char com)
{
        LCD1602_RS = 0;
        //LCD1602_delay_ms(1);
        LCD1602_EN = 0;  //<------
        LCD1602_PORT = com;
        LCD1602_EN = 1;  //<------
        LCD1602_delay_ms(1);
        LCD1602_EN = 0;
}

//****************************************************
//写数据
//****************************************************
void LCD1602_write_data(unsigned char dat)
{
        LCD1602_RS = 1;
        //LCD1602_delay_ms(1);
        LCD1602_EN = 0;    //<------     
        LCD1602_PORT = dat;
        LCD1602_EN = 1;
        LCD1602_delay_ms(1);
        LCD1602_EN = 0;
}


回复

使用道具 举报

板凳
ID:553020 发表于 2020-9-23 16:26 | 只看该作者
除了仿真使用的是89c52,实物使用的是89c54RD芯片以外,其余连接均和仿真一样
回复

使用道具 举报

地板
ID:337139 发表于 2020-9-23 17:12 | 只看该作者
本帖最后由 长风007 于 2020-9-23 17:16 编辑

查一下你的显示位,还有显示的时间间隔。实物是有时序要求的!

Hei002.jpg (61.75 KB, 下载次数: 55)

可以参考一下这个图

可以参考一下这个图
回复

使用道具 举报

5#
ID:553020 发表于 2020-9-23 22:10 | 只看该作者
长风007 发表于 2020-9-23 17:12
查一下你的显示位,还有显示的时间间隔。实物是有时序要求的!

这是lcd1602的程序,时序有问题吗?

#include "LCD1602.h"

//****************************************************
//MS延时函数(12M晶振下测试)
//****************************************************
void LCD1602_delay_ms(unsigned int n)
{
        unsigned int  i,j;
        for(i=0;i<n;i++)
                for(j=0;j<123;j++);
}

//****************************************************
//写指令
//****************************************************
void LCD1602_write_com(unsigned char com)
{
        LCD1602_RS = 0;
        LCD1602_delay_ms(1);
        LCD1602_EN = 1;
        LCD1602_PORT = com;
        LCD1602_delay_ms(1);
        LCD1602_EN = 0;
}

//****************************************************
//写数据
//****************************************************
void LCD1602_write_data(unsigned char dat)
{
        LCD1602_RS = 1;
        LCD1602_delay_ms(1);       
        LCD1602_PORT = dat;
        LCD1602_EN = 1;
        LCD1602_delay_ms(1);
        LCD1602_EN = 0;
}

//****************************************************
//连续写字符
//****************************************************
void LCD1602_write_word(unsigned char *s)
{
        while(*s>0)
        {
                LCD1602_write_data(*s);
                s++;
        }
}

void Init_LCD1602()
{
        LCD1602_EN = 0;                                                //设置为写状态
        LCD1602_write_com(0x38);                        //显示模式设定
        LCD1602_write_com(0x0c);                        //开关显示、光标有无设置、光标闪烁设置
        LCD1602_write_com(0x06);                        //写一个字符后指针加一
        LCD1602_write_com(0x01);                        //清屏指令
}


回复

使用道具 举报

6#
ID:96682 发表于 2020-9-24 05:15 来自手机 | 只看该作者
除了使用不同参数的芯片外,无需修改延时数值
回复

使用道具 举报

7#
ID:822755 发表于 2020-9-24 12:05 | 只看该作者
检查写的字符串有没有结束符“\x00",  
回复

使用道具 举报

8#
ID:315554 发表于 2020-9-24 12:40 | 只看该作者
有DS1302等芯片吗?IO线接对没,芯片确定正常?我以前遇过时钟芯片不正常有类似情况,99:00
回复

使用道具 举报

9#
ID:117977 发表于 2020-9-24 13:16 | 只看该作者
理论上你是在读DS1302的时钟,但是没看到你这部分代码
回复

使用道具 举报

10#
ID:117977 发表于 2020-9-24 13:18 | 只看该作者
两个思路  读取1302的时序适当加点延时,1302坏 换一片 读取的数据可以通过发串口来测试
回复

使用道具 举报

11#
ID:16255 发表于 2020-9-24 23:49 | 只看该作者
我估计你是用到时钟芯片了。DS1302、1307等。
可能是读取芯片数据没有正确读取出来,
检查一下程序是否正确?适当加一点延时可能会有帮助。
数据线是否正确连接?数据线上加上拉电阻了吗?
回复

使用道具 举报

12#
ID:620337 发表于 2020-9-26 09:01 | 只看该作者
原因:程序语句里是否含有中文字符,或者不可见字符,第二,通信异常,延迟不足也会产生,但是我更觉得是字符问题
回复

使用道具 举报

13#
ID:822755 发表于 2020-9-26 10:15 | 只看该作者
可能是读出的时钟数据没有屏蔽掉无关的位。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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