標(biāo)題: 單片機(jī)+LCD1602顯示重碼,請(qǐng)大神們幫忙分析程序 [打印本頁]

作者: 老二不怕黑    時(shí)間: 2022-9-5 11:45
標(biāo)題: 單片機(jī)+LCD1602顯示重碼,請(qǐng)大神們幫忙分析程序
某一個(gè)寶買的1602顯示屏,沒有PDF,好不容易找個(gè)程序給顯示了,但是卻沒有按程序顯示,求大神們幫忙看看呢
/*********************************************************************************
* 【外部晶振】: 11.0592mhz        
* 【主控芯片】: STC12C5612AD
* 【程序功能】: 1602基本顯示                                                                                          
* 【疑難雜癥】: 現(xiàn)在能顯示,但是如照片一樣,程序里寫的是ABCDEFGHIJKLMN,但是顯示的時(shí)候
每隔以一位還是顯示上一個(gè)數(shù)據(jù),還是時(shí)序沒對(duì)嗎?
**********************************************************************************/

//#include<reg52.h>
#include<612AD.H>

#define uchar unsigned char
#define uint unsigned int

sbit rs=P3^5;
sbit rw=P3^4;        
sbit en=P3^3;
uchar table1[]={"ABCDEFGHIJKLMN"}; //實(shí)物上顯示aBBDDFFHHJJLLN,請(qǐng)問第一個(gè)字符怎么會(huì)是小寫呢,還有按程序來第三個(gè)字符應(yīng)該是C的啊,實(shí)物顯示卻是B,請(qǐng)大神們幫忙研究研究呢,還有好多字母都顯示不全呢,我想顯示Q卻顯示P,想顯示O卻顯示D
uchar table2[]="0123456789ABCDEFG";//實(shí)物上顯示0022446688aBBD,
void delay(uint x)
{
        uint a,b;
        for(a=x;a>0;a--)
                for(b=10;b>0;b--);
}



void write_com(uchar com)
{
        P1=com;
        rs=0;
        en=0;
        delay(20);
        en=1;
        delay(20);
        en=0;
        
}

void write_date(uchar date)
{
        P1=date;
        rs=1;
        en=0;
        delay(20);
        en=1;
        delay(20);
        en=0;
        
}

void init()
{
        rw=0;
        write_com(0x38);   //顯示模式設(shè)置:16×2顯示,5×7點(diǎn)陣,8位數(shù)據(jù)接口
        delay(25);
        write_com(0x0f);   //顯示模式設(shè)置
        delay(25);
        write_com(0x06);   //顯示模式設(shè)置:光標(biāo)右移,字符不移
        delay(25);
        write_com(0x01);   //清屏幕指令,將以前的顯示內(nèi)容清除
        delay(25);        
}

void main()
{
        uchar a;
        init();

{
        write_com(0x80);         //將第一個(gè)字符寫在向右偏移17個(gè)字符處,為后面的由右向左劃入做準(zhǔn)備。
        delay(25);
        for(a=0;a<14;a++)
        {
        write_date(table1[a]);
        delay(50);               
        }

        write_com(0xc0);
        delay(50);
        for(a=0;a<14;a++)
        {
        write_date(table2[a]);
        delay(50);               
        }
}
        while(1);
}




作者: wwh2382    時(shí)間: 2022-9-5 13:00
確定你買的是1602?
作者: xuyaqi    時(shí)間: 2022-9-5 14:20
焊接問題,虛焊,連腳。
作者: xuyaqi    時(shí)間: 2022-9-5 14:21
杜邦線連接不良。
作者: mengsiu    時(shí)間: 2022-9-5 15:05
略略看了一下代碼,似乎沒什么異常。
樓上的說杜邦線連接不良,也不排除這個(gè)原因。應(yīng)該是D0腳數(shù)據(jù)沒有正常傳輸。
作者: angmall    時(shí)間: 2022-9-5 16:44
檢查接腳,D0 和 D1 短路了。

  1. ABCDEFGHIJKLMN
  2. @BBDDFFHHJJLLN


  3. 40 41 A
  4. 42 42 B
  5. 42 43 C
  6. 44 44 D
  7. 44 45 E
  8. 46 46
  9. 46 47
  10. 48 48
  11. 48 49
  12. 4A 4A
  13. 4A 4B
  14. 4C 4C
  15. 4C 4D
  16. 4E 4E
復(fù)制代碼

作者: wulin    時(shí)間: 2022-9-5 16:48
根據(jù)錯(cuò)碼規(guī)律,可以肯定是P1到1602的8根連接線中的P1.0有問題。




作者: 370008208    時(shí)間: 2022-9-5 17:01
把0xc0改成0x80+0x40試下。
作者: 老二不怕黑    時(shí)間: 2022-9-5 18:45
xuyaqi 發(fā)表于 2022-9-5 14:20
焊接問題,虛焊,連腳。

我是用烙鐵焊接的,型號(hào)是HM1602H,
作者: 老二不怕黑    時(shí)間: 2022-9-5 18:46
xuyaqi 發(fā)表于 2022-9-5 14:21
杜邦線連接不良。

我是用烙鐵焊接的,型號(hào)是HM1602H,
作者: wulin    時(shí)間: 2022-9-5 21:12
老二不怕黑 發(fā)表于 2022-9-5 18:46
我是用烙鐵焊接的,型號(hào)是HM1602H,



作者: 老二不怕黑    時(shí)間: 2022-9-6 11:03
370008208 發(fā)表于 2022-9-5 17:01
把0xc0改成0x80+0x40試下。

謝謝了,剛剛試了下不對(duì)的,沒效果
作者: 老二不怕黑    時(shí)間: 2022-9-6 11:49
angmall 發(fā)表于 2022-9-5 16:44
檢查接腳,D0 和 D1 短路了。

更換了液晶和mcu,還是一樣的效果,,謝謝了
作者: 老二不怕黑    時(shí)間: 2022-9-6 11:50
wulin 發(fā)表于 2022-9-5 16:48
根據(jù)錯(cuò)碼規(guī)律,可以肯定是P1到1602的8根連接線中的P1.0有問題。

測(cè)量硬件連接沒得問題,更換了液晶和單片機(jī)都是一樣的結(jié)果,如果把錯(cuò)的那個(gè)字符換成另一個(gè)字符又是對(duì)的
作者: lkc8210    時(shí)間: 2022-9-7 09:47























作者: dyx811    時(shí)間: 2022-9-7 10:17
樓主可不可以把整個(gè)板子都看一下。我也想學(xué)學(xué)
作者: 老二不怕黑    時(shí)間: 2022-9-7 12:55
lkc8210 發(fā)表于 2022-9-7 09:47

我懂起這個(gè)意思了,試了一下還是不對(duì)的,因?yàn)槲夷怯休斎隥顯示卻是P,感覺像是字庫不對(duì)一樣,請(qǐng)幫忙分析下會(huì)不會(huì)有那個(gè)可能呢,
作者: lkc8210    時(shí)間: 2022-9-7 13:31
老二不怕黑 發(fā)表于 2022-9-7 12:55
我懂起這個(gè)意思了,試了一下還是不對(duì)的,因?yàn)槲夷怯休斎隥顯示卻是P,感覺像是字庫不對(duì)一樣,請(qǐng)幫忙分析下 ...

輸入Q顯示P不就是D0開路了
你用什么開發(fā)板?
作者: wulin    時(shí)間: 2022-9-7 13:41
老二不怕黑 發(fā)表于 2022-9-7 12:55
我懂起這個(gè)意思了,試了一下還是不對(duì)的,因?yàn)槲夷怯休斎隥顯示卻是P,感覺像是字庫不對(duì)一樣,請(qǐng)幫忙分析下 ...

樓主不要固執(zhí)己見,胡亂懷疑,其實(shí)就是簡(jiǎn)單的人為操作不當(dāng)?shù)墓收。無外乎是虛焊、漏焊、斷線、搭地、接觸不良。Q的ASCII碼是0x51,P的ASCII碼是0x50。只要用萬用表測(cè)一下P1.0到1602的D0的電壓就能查出故障所在。
作者: 老二不怕黑    時(shí)間: 2022-9-7 15:32
wulin 發(fā)表于 2022-9-7 13:41
樓主不要固執(zhí)己見,胡亂懷疑,其實(shí)就是簡(jiǎn)單的人為操作不當(dāng)?shù)墓收稀o外乎是虛焊、漏焊、斷線、搭地、接觸 ...

沒有胡亂懷疑,單片機(jī)那邊是焊接的,然后LCD那邊是插接的,自己做的座子,很牢的,扯都扯不掉的,然后萬用表打都是通的,
作者: 老二不怕黑    時(shí)間: 2022-9-7 15:35
dyx811 發(fā)表于 2022-9-7 10:17
樓主可不可以把整個(gè)板子都看一下。我也想學(xué)學(xué)

之前自己畫的PCB,還是有很多不到位的地方

51hei圖片_20220907153155.jpg (5.32 MB, 下載次數(shù): 229)

51hei圖片_20220907153155.jpg

51hei圖片_20220907153200.jpg (5.42 MB, 下載次數(shù): 211)

51hei圖片_20220907153200.jpg

作者: 老二不怕黑    時(shí)間: 2022-9-7 15:36
lkc8210 發(fā)表于 2022-9-7 09:47

謝謝朋友認(rèn)真幫忙仿真,但是我實(shí)測(cè)了各個(gè)線路都是通的呢
作者: 188610329    時(shí)間: 2022-9-7 16:16
老二不怕黑 發(fā)表于 2022-9-7 15:36
謝謝朋友認(rèn)真幫忙仿真,但是我實(shí)測(cè)了各個(gè)線路都是通的呢

萬用表你測(cè)通不通得多長(zhǎng)時(shí)間?實(shí)際數(shù)據(jù)傳輸多長(zhǎng)時(shí)間?對(duì)于數(shù)據(jù)線來講,萬用表測(cè)出的“通”都是有待考證的,只有“不通”才是可信的?戳四愕暮更c(diǎn),我覺得d0不通的可能性太大了。我以前焊功濫的時(shí)候,也有過這情況也是不信邪,最后呢,試了所有的方法后,最后只能懷疑自己的焊接技術(shù),拋棄所有的線,直接用電阻,LED,剪下來的引腳,焊好后,正常了,認(rèn)識(shí)到自己的問題了,再耐心用24的線一個(gè)個(gè)替換,當(dāng)然事后是努力提高自己焊接熟練度,避免這種情況發(fā)生,純粹講一下自身經(jīng)歷,是否有參考價(jià)值,樓主自行判斷。
作者: 老二不怕黑    時(shí)間: 2022-9-7 16:29
188610329 發(fā)表于 2022-9-7 16:16
萬用表你測(cè)通不通得多長(zhǎng)時(shí)間?實(shí)際數(shù)據(jù)傳輸多長(zhǎng)時(shí)間?對(duì)于數(shù)據(jù)線來講,萬用表測(cè)出的“通”都是有待考證的, ...

好的,謝謝指教,我等下再把排針取了焊孔里面看
作者: wulin    時(shí)間: 2022-9-7 16:41
老二不怕黑 發(fā)表于 2022-9-7 15:36
謝謝朋友認(rèn)真幫忙仿真,但是我實(shí)測(cè)了各個(gè)線路都是通的呢

看了你的PCB及焊接技術(shù),還有極大提升空間。不是各個(gè)線路都是通的就不會(huì)有問題,還要確保每個(gè)焊接點(diǎn)都不會(huì)與其他不同網(wǎng)絡(luò)竄連。你用表測(cè)一下P1.0網(wǎng)絡(luò)對(duì)地阻值是多少,懷疑對(duì)地或相鄰電路短路。如不是人為錯(cuò)誤造成也有可能是PCB加工有瑕疵。這在實(shí)踐中會(huì)遇到。
作者: 老二不怕黑    時(shí)間: 2022-9-7 19:01
wulin 發(fā)表于 2022-9-7 16:41
看了你的PCB及焊接技術(shù),還有極大提升空間。不是各個(gè)線路都是通的就不會(huì)有問題,還要確保每個(gè)焊接點(diǎn)都不 ...

          對(duì)頭了,找到原因了,是之前這個(gè)PCB版做其他測(cè)試時(shí)P1.0端口在別的地方加了一個(gè)下拉電阻,然后現(xiàn)在去掉就OK了,謝謝師傅悉心解答!

同時(shí)謝謝樓上各位師傅的細(xì)心幫忙!非常感謝,

作者: 老二不怕黑    時(shí)間: 2022-9-7 19:09
謝謝各位師傅的幫助,成功顯示了,后續(xù)有更新再上圖了。


作者: zilihangjian    時(shí)間: 2022-9-9 12:10
這基本上可以判斷硬件出了問題,仔細(xì)檢查一下線路。
作者: 老二不怕黑    時(shí)間: 2022-9-12 12:10
ADC_I_SENSCE.zip (1.83 MB, 下載次數(shù): 6)
時(shí)鐘和溫度,還有電壓電流檢測(cè),算是搞完了,請(qǐng)大神幫忙看看有問題沒得呢 ,順便弱弱的問下,有沒有能免費(fèi)薅羊毛的地方呢,加力創(chuàng)和華秋試了不得行啊






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1