找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 5875|回復(fù): 16
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)+LCD12864一直藍(lán)屏,無(wú)任何顯示 如何一步步的排查問(wèn)題?

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:993527 發(fā)表于 2021-12-25 21:52 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
按照教學(xué)視頻編寫(xiě)的程序,輸入進(jìn)去不顯示,只藍(lán)屏,孩子弄一天了,到底怎么回事。

12864.jpg (213.08 KB, 下載次數(shù): 80)

12864.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:908826 發(fā)表于 2021-12-26 08:35 | 只看該作者
嘿嘿嘿,你這可以把12864的程序貼出來(lái)讓大家看看到底是軟件的問(wèn)題還是硬件的問(wèn)題
回復(fù)

使用道具 舉報(bào)

板凳
ID:140371 發(fā)表于 2021-12-26 12:00 | 只看該作者
單片機(jī)+ lcd12864  只藍(lán)屏
要檢查:
1.硬件接線對(duì)嗎?(包括單片機(jī)有無(wú)正常工作 .. lcd12864接線有無(wú)問(wèn)題,程式中使用管腳與接線是否相符)
2.編寫(xiě)的程序適合這個(gè)LCD對(duì)嗎?(LCD 12864不只一總型號(hào)..不同的型號(hào)驅(qū)動(dòng)程是有差別)
3.編寫(xiě)的程序?qū)?
4.lcd 12864對(duì)比調(diào)整適當(dāng)
5.lcd損壞 .....(這種情形相當(dāng)少見(jiàn))
只要不是lcd損壞 ...完成1 至 4 項(xiàng) 一定會(huì)顯示



回復(fù)

使用道具 舉報(bào)

地板
ID:97554 發(fā)表于 2021-12-26 14:18 | 只看該作者
這個(gè)如果不是某某開(kāi)發(fā)板的套件加配套程序的話很難說(shuō)明到底哪里除了問(wèn)題,12864問(wèn)題不比1602,要復(fù)雜的多,比如同一廠家的LCD12864只是后綴不同都需要不同的接線以及驅(qū)動(dòng)程序,而且不同的主控芯片需要不同的初始化程序。把問(wèn)題敘述的更清楚些也許更容易讓大家?guī)椭憬鉀Q問(wèn)題。
回復(fù)

使用道具 舉報(bào)

5#
ID:97554 發(fā)表于 2021-12-26 14:22 | 只看該作者
比如,你貼出來(lái)的甚至連接線都看不清楚誰(shuí)跟誰(shuí)。起碼的液晶屏的型號(hào),與MCU連線,以及程序全部貼好,然后大家再根據(jù)具體情況幫助你判斷問(wèn)題的所在。這樣會(huì)更好些,不讓你讓大家浪費(fèi)時(shí)間在這猜想,這樣根本猜不出個(gè)所以然,因?yàn)閱?wèn)題太多了。

畢竟像貼圖這種情況只需要連接背光的AK兩個(gè)引腳即可。
回復(fù)

使用道具 舉報(bào)

6#
ID:903924 發(fā)表于 2021-12-26 16:59 | 只看該作者
12864的第三個(gè)焊點(diǎn)旁邊有一個(gè)焊點(diǎn) 看看有沒(méi)有焊上  加一個(gè)調(diào)節(jié)屏幕的電阻試試  10K的可調(diào)電阻
回復(fù)

使用道具 舉報(bào)

7#
ID:627300 發(fā)表于 2021-12-26 18:44 | 只看該作者
Qiuhan 發(fā)表于 2021-12-26 16:59
12864的第三個(gè)焊點(diǎn)旁邊有一個(gè)焊點(diǎn) 看看有沒(méi)有焊上  加一個(gè)調(diào)節(jié)屏幕的電阻試試  10K的可調(diào)電阻

一般都是用的LCD12864背部的可調(diào)電阻  如果想用第三個(gè)焊點(diǎn)VO來(lái)外接可調(diào)電阻的話需要把背部的通路斷掉
回復(fù)

使用道具 舉報(bào)

8#
ID:3212 發(fā)表于 2021-12-26 19:55 | 只看該作者
有一個(gè)小經(jīng)驗(yàn):之前我玩這個(gè)12864的時(shí)候也是用的接線的方式,故障也是差不多:有背光,就是不顯示。
后來(lái)搞了很久,才發(fā)現(xiàn)是一根接線質(zhì)量差,是中間斷的。走了好多彎路才糾正過(guò)來(lái)
回復(fù)

使用道具 舉報(bào)

9#
ID:403593 發(fā)表于 2021-12-26 20:21 | 只看該作者
我仿佛看到了曾經(jīng)的自己。首先,要在正常使用的開(kāi)發(fā)板上,用原廠點(diǎn)屏代碼測(cè)試,最好連引腳都不要?jiǎng),能成功點(diǎn)亮了再說(shuō)。然后,自己焊接的實(shí)驗(yàn)板,先實(shí)現(xiàn)正常的下載點(diǎn)燈都沒(méi)問(wèn)題了,再考慮修改移植代碼。這樣用杜邦線連接模塊最好只用于驗(yàn)證,實(shí)際使用最好是畫(huà)圖打板,反正現(xiàn)在打板也是免費(fèi),順便練習(xí)畫(huà)圖技能,F(xiàn)在萬(wàn)能寶上面的杜邦線質(zhì)量普遍不怎么樣,我已經(jīng)被坑過(guò)好幾次了,所以,有條件最好自己制作杜邦線,或者直接焊接。
回復(fù)

使用道具 舉報(bào)

10#
ID:403593 發(fā)表于 2021-12-26 20:21 | 只看該作者
middfat 發(fā)表于 2021-12-26 19:55
有一個(gè)小經(jīng)驗(yàn):之前我玩這個(gè)12864的時(shí)候也是用的接線的方式,故障也是差不多:有背光,就是不顯示。
后來(lái) ...

確實(shí)是,現(xiàn)在很難買(mǎi)到質(zhì)量好的杜邦線了。。。
回復(fù)

使用道具 舉報(bào)

11#
ID:997175 發(fā)表于 2021-12-26 20:26 | 只看該作者
應(yīng)該是對(duì)比度的問(wèn)題
回復(fù)

使用道具 舉報(bào)

12#
ID:232791 發(fā)表于 2021-12-28 09:02 | 只看該作者
1.程序問(wèn)題——占大頭,所謂的教程程序一般都得修修改改才能用。
2.上面說(shuō)的對(duì)比度問(wèn)題
3.接線問(wèn)題
這些問(wèn)題都可以跟屏幕廠家溝通,都不是上面大問(wèn)題
至于屏幕損壞,只要是才買(mǎi)的這種幾率很小很小
回復(fù)

使用道具 舉報(bào)

13#
ID:584814 發(fā)表于 2021-12-28 15:25 | 只看該作者
如果沒(méi)有老師實(shí)地指導(dǎo),建議買(mǎi)成品的試驗(yàn)套件,想省錢(qián)某魚(yú)就可以不用買(mǎi)全新。
套件一般都廠家有標(biāo)配的例程,先搞出花樣提高興趣并且先感覺(jué)一下,然后移置到自己DIY的板上。
如果有實(shí)地指導(dǎo)除外,否則不同器件的接線和編程都是不一樣的,對(duì)于你這種自制寶貝只能理論上點(diǎn)贊。
回復(fù)

使用道具 舉報(bào)

14#
ID:893997 發(fā)表于 2021-12-29 15:47 | 只看該作者
這樣一般都是底層驅(qū)動(dòng)對(duì)不上
回復(fù)

使用道具 舉報(bào)

15#
ID:993527 發(fā)表于 2021-12-30 17:41 | 只看該作者
我退貨了,謝謝各位熱血的朋友,就不一一回復(fù)啦
回復(fù)

使用道具 舉報(bào)

16#
ID:994918 發(fā)表于 2021-12-30 22:54 | 只看該作者
多看幾遍12864的說(shuō)明書(shū)DATASHEET,將引腳功能、數(shù)據(jù)、控制 代碼記熟,先排除硬件問(wèn)題。再仔細(xì)校對(duì)控制時(shí)序。
static void lcd12864_write_command(uint8 cmd)/*寫(xiě)命令*/
{
    while(lcd12864_chek_busy());
    LCD12864_RS = 0;
    LCD12864_RW = 0;
    LCD12864_EN = 0;
    delay1us();
    LCD12864_DATA = cmd;
    delay50us();
    LCD12864_EN = 1;
    delay50us();
    LCD12864_EN = 0;
   return temp1;
}
// 描述: lcd12864寫(xiě)數(shù)據(jù)
// 參數(shù): dat:寫(xiě)入的數(shù)據(jù).
// 返回: none.
//========================================================================
static void lcd12864_write_data(uint8 dat)
{
    while(lcd12864_chek_busy());
    LCD12864_RS = 1;
    LCD12864_RW = 0;
    LCD12864_EN = 0;
    LCD12864_DATA = dat;
    delay50us();
    LCD12864_EN = 1;
    delay50us();
    LCD12864_EN = 0;
}

//========================================================================
// 描述: lcd12864初始化
// 參數(shù): none.
// 返回: none.
//========================================================================
void lcd12864_init()
{
    //引腳配置
    LCD12864_RS_OUT;
    LCD12864_RW_OUT;
    LCD12864_E_OUT;
    LCD12864_RST_OUT;  
    LCD12864_DATA_OUT;

    LCD12864_RST = 1;  
    LCD12864_RST = 0;            
    LCD12864_RST = 1;                //復(fù)位RST=1
    lcd12864_write_command(0x34);         //34H--擴(kuò)充指令操作
    delay5us();
    lcd12864_write_command(0x30);         //功能設(shè)置,一次送8位數(shù)據(jù),基本指令集
    delay5us();
    lcd12864_write_command(0x0C);         //顯示狀態(tài)開(kāi)關(guān):整體顯示開(kāi),光標(biāo)顯示關(guān),光標(biāo)顯示反白關(guān)
    delay5us();
    lcd12864_write_command(0x01);         //清DDRAM
    delay5us();      
    lcd12864_write_command(0x02);         //DDRAM地址歸位
    delay5us();
    lcd12864_write_command(0x80);         //設(shè)定DDRAM 7位地址000,0000到地址計(jì)數(shù)器AC
    delay5us();
}

//========================================================================
// 描述: lcd12864設(shè)定顯示位置
// 參數(shù): X,Y:坐標(biāo).
// 返回: none.
//========================================================================
void lcd12864_display_pos(uint8 X,uint8 Y)
{                          
   uint8  pos;
   if (Y==0)
     {Y=0x80;}
   else if (Y==1)
     {Y=0x90;}
   else if (Y==2)
     {Y=0x88;}
   else if (Y==3)
     {Y=0x98;}
   pos = X+Y ;  
   lcd12864_write_command(pos);     //顯示地址
}

//========================================================================
// 描述: lcd12864清屏
// 參數(shù): none.
// 返回: none.
//========================================================================
void lcd12864_clear()
{
    lcd12864_write_command(0x30);//
    lcd12864_write_command(0x01);//清除顯示
    delay(1);
}

//========================================================================
// 描述: lcd12864寫(xiě)單個(gè)字符
// 參數(shù): X,Y;坐標(biāo); sig:要顯示的字符.
// 返回: none.
//========================================================================
void lcd12864_show_char(uint8 X,uint8 Y,uint8 sig)
{   
    lcd12864_display_pos(X,Y);
    lcd12864_write_data(sig);             //輸出單個(gè)字符
}

//========================================================================
// 描述: lcd12864寫(xiě)字符串
// 參數(shù): X(0~3)行,Y(0~7)個(gè)字符; str:要顯示的字符串;
// 返回: none.
//========================================================================
void lcd12864_show_string(uint8 X,uint8 Y,uint8 *str)
{
    uint8 i = 0;
    lcd12864_display_pos(X,Y);
    while(str[i] != '\0')
    {
         lcd12864_write_data(str[i]);
         i++;
    }
}

//========================================================================
// 描述: lcd12864寫(xiě)數(shù)字()
// 參數(shù): X(0~3)行,Y(0~7)個(gè)字符; num:要顯示的數(shù)字;
// 返回: none.
//========================================================================
void lcd12864_show_num(uint8 x,uint8 y,int num)
{
        char men[8];
        char *str = men;
        sprintf(str,"%d",num);
        lcd12864_show_string(x,y,str);
}

//========================================================================
// 描述: lcd12864顯示圖像
// 參數(shù): p:要顯示的圖像.
// 返回: none.
//========================================================================
void lcd12864_show_image(uint8 *p)
{
    int ygroup,x,y,i;
    int temp;
    int tmp;
            
    for(ygroup=0;ygroup<64;ygroup++)           //寫(xiě)入液晶上半圖象部分
    {                           //寫(xiě)入坐標(biāo)
        if(ygroup<32)
        {
            x=0x80;
            y=ygroup+0x80;
        }else
        {
            x=0x88;
            y=ygroup-32+0x80;   
        }         
        lcd12864_write_command(0x34);        //寫(xiě)入擴(kuò)充指令命令
        lcd12864_write_command(y);           //寫(xiě)入y軸坐標(biāo)
        lcd12864_write_command(x);           //寫(xiě)入x軸坐標(biāo)
        lcd12864_write_command(0x30);        //寫(xiě)入基本指令命令
        tmp=ygroup*16;
        for(i=0;i<16;i++)
                {
                    temp=p[tmp++];
                    lcd12864_write_data(temp);
        }
    }
    lcd12864_write_command(0x34);        //寫(xiě)入擴(kuò)充指令命令
    lcd12864_write_command(0x36);        //顯示圖象
}

回復(fù)

使用道具 舉報(bào)

17#
ID:981034 發(fā)表于 2021-12-31 16:46 | 只看該作者
第一接線套路,二程序套路
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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