找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 6245|回復(fù): 12
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)驅(qū)動(dòng)lcd1602顯示亂碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
10黑幣
仿真lcd1602秒的十位是正常的,一到做實(shí)物,lcd1602顯示的秒十位就是亂碼。
在線求解


仿真顯示正常


實(shí)物的秒的十位顯示錯(cuò)誤,成了;或者超過了6的各種奇怪亂碼

最佳答案

查看完整內(nèi)容

你要搞清楚時(shí)序圖 //**************************************************** //寫指令 //**************************************************** void LCD1602_write_com(unsigned char com) { LCD1602_RS = 0; //LCD1602_delay_ms(1); LCD1602_EN = 0; //
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:155507 發(fā)表于 2020-9-23 16:24 | 只看該作者

你要搞清楚時(shí)序圖





//****************************************************
//寫指令
//****************************************************
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;
}

//****************************************************
//寫數(shù)據(jù)
//****************************************************
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;
}


回復(fù)

使用道具 舉報(bào)

板凳
ID:553020 發(fā)表于 2020-9-23 16:26 | 只看該作者
除了仿真使用的是89c52,實(shí)物使用的是89c54RD芯片以外,其余連接均和仿真一樣
回復(fù)

使用道具 舉報(bào)

地板
ID:337139 發(fā)表于 2020-9-23 17:12 | 只看該作者
本帖最后由 長風(fēng)007 于 2020-9-23 17:16 編輯

查一下你的顯示位,還有顯示的時(shí)間間隔。實(shí)物是有時(shí)序要求的!

Hei002.jpg (61.75 KB, 下載次數(shù): 87)

可以參考一下這個(gè)圖

可以參考一下這個(gè)圖
回復(fù)

使用道具 舉報(bào)

5#
ID:553020 發(fā)表于 2020-9-23 22:10 | 只看該作者
長風(fēng)007 發(fā)表于 2020-9-23 17:12
查一下你的顯示位,還有顯示的時(shí)間間隔。實(shí)物是有時(shí)序要求的!

這是lcd1602的程序,時(shí)序有問題嗎?

#include "LCD1602.h"

//****************************************************
//MS延時(shí)函數(shù)(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;
}

//****************************************************
//寫數(shù)據(jù)
//****************************************************
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;
}

//****************************************************
//連續(xù)寫字符
//****************************************************
void LCD1602_write_word(unsigned char *s)
{
        while(*s>0)
        {
                LCD1602_write_data(*s);
                s++;
        }
}

void Init_LCD1602()
{
        LCD1602_EN = 0;                                                //設(shè)置為寫狀態(tài)
        LCD1602_write_com(0x38);                        //顯示模式設(shè)定
        LCD1602_write_com(0x0c);                        //開關(guān)顯示、光標(biāo)有無設(shè)置、光標(biāo)閃爍設(shè)置
        LCD1602_write_com(0x06);                        //寫一個(gè)字符后指針加一
        LCD1602_write_com(0x01);                        //清屏指令
}


回復(fù)

使用道具 舉報(bào)

6#
ID:96682 發(fā)表于 2020-9-24 05:15 來自觸屏版 | 只看該作者
除了使用不同參數(shù)的芯片外,無需修改延時(shí)數(shù)值
回復(fù)

使用道具 舉報(bào)

7#
ID:822755 發(fā)表于 2020-9-24 12:05 | 只看該作者
檢查寫的字符串有沒有結(jié)束符“\x00",  
回復(fù)

使用道具 舉報(bào)

8#
ID:315554 發(fā)表于 2020-9-24 12:40 | 只看該作者
有DS1302等芯片嗎?IO線接對(duì)沒,芯片確定正常?我以前遇過時(shí)鐘芯片不正常有類似情況,99:00
回復(fù)

使用道具 舉報(bào)

9#
ID:117977 發(fā)表于 2020-9-24 13:16 | 只看該作者
理論上你是在讀DS1302的時(shí)鐘,但是沒看到你這部分代碼
回復(fù)

使用道具 舉報(bào)

10#
ID:117977 發(fā)表于 2020-9-24 13:18 | 只看該作者
兩個(gè)思路  讀取1302的時(shí)序適當(dāng)加點(diǎn)延時(shí),1302壞 換一片 讀取的數(shù)據(jù)可以通過發(fā)串口來測試
回復(fù)

使用道具 舉報(bào)

11#
ID:16255 發(fā)表于 2020-9-24 23:49 | 只看該作者
我估計(jì)你是用到時(shí)鐘芯片了。DS1302、1307等。
可能是讀取芯片數(shù)據(jù)沒有正確讀取出來,
檢查一下程序是否正確?適當(dāng)加一點(diǎn)延時(shí)可能會(huì)有幫助。
數(shù)據(jù)線是否正確連接?數(shù)據(jù)線上加上拉電阻了嗎?
回復(fù)

使用道具 舉報(bào)

12#
ID:620337 發(fā)表于 2020-9-26 09:01 | 只看該作者
原因:程序語句里是否含有中文字符,或者不可見字符,第二,通信異常,延遲不足也會(huì)產(chǎn)生,但是我更覺得是字符問題
回復(fù)

使用道具 舉報(bào)

13#
ID:822755 發(fā)表于 2020-9-26 10:15 | 只看該作者
可能是讀出的時(shí)鐘數(shù)據(jù)沒有屏蔽掉無關(guān)的位。
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表