久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機+LCD12864一直藍屏,無任何顯示 如何一步步的排查問題?

查看數: 6071 | 評論數: 16 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2021-12-25 21:52

正文摘要:

按照教學視頻編寫的程序,輸入進去不顯示,只藍屏,孩子弄一天了,到底怎么回事。

回復

ID:981034 發表于 2021-12-31 16:46
第一接線套路,二程序套路
ID:994918 發表于 2021-12-30 22:54
多看幾遍12864的說明書DATASHEET,將引腳功能、數據、控制 代碼記熟,先排除硬件問題。再仔細校對控制時序。
static void lcd12864_write_command(uint8 cmd)/*寫命令*/
{
    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寫數據
// 參數: dat:寫入的數據.
// 返回: 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初始化
// 參數: 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;                //復位RST=1
    lcd12864_write_command(0x34);         //34H--擴充指令操作
    delay5us();
    lcd12864_write_command(0x30);         //功能設置,一次送8位數據,基本指令集
    delay5us();
    lcd12864_write_command(0x0C);         //顯示狀態開關:整體顯示開,光標顯示關,光標顯示反白關
    delay5us();
    lcd12864_write_command(0x01);         //清DDRAM
    delay5us();      
    lcd12864_write_command(0x02);         //DDRAM地址歸位
    delay5us();
    lcd12864_write_command(0x80);         //設定DDRAM 7位地址000,0000到地址計數器AC
    delay5us();
}

//========================================================================
// 描述: lcd12864設定顯示位置
// 參數: X,Y:坐標.
// 返回: 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清屏
// 參數: none.
// 返回: none.
//========================================================================
void lcd12864_clear()
{
    lcd12864_write_command(0x30);//
    lcd12864_write_command(0x01);//清除顯示
    delay(1);
}

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

//========================================================================
// 描述: lcd12864寫字符串
// 參數: X(0~3)行,Y(0~7)個字符; 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寫數字()
// 參數: X(0~3)行,Y(0~7)個字符; num:要顯示的數字;
// 返回: 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顯示圖像
// 參數: p:要顯示的圖像.
// 返回: none.
//========================================================================
void lcd12864_show_image(uint8 *p)
{
    int ygroup,x,y,i;
    int temp;
    int tmp;
            
    for(ygroup=0;ygroup<64;ygroup++)           //寫入液晶上半圖象部分
    {                           //寫入坐標
        if(ygroup<32)
        {
            x=0x80;
            y=ygroup+0x80;
        }else
        {
            x=0x88;
            y=ygroup-32+0x80;   
        }         
        lcd12864_write_command(0x34);        //寫入擴充指令命令
        lcd12864_write_command(y);           //寫入y軸坐標
        lcd12864_write_command(x);           //寫入x軸坐標
        lcd12864_write_command(0x30);        //寫入基本指令命令
        tmp=ygroup*16;
        for(i=0;i<16;i++)
                {
                    temp=p[tmp++];
                    lcd12864_write_data(temp);
        }
    }
    lcd12864_write_command(0x34);        //寫入擴充指令命令
    lcd12864_write_command(0x36);        //顯示圖象
}

ID:993527 發表于 2021-12-30 17:41
我退貨了,謝謝各位熱血的朋友,就不一一回復啦
ID:893997 發表于 2021-12-29 15:47
這樣一般都是底層驅動對不上
ID:584814 發表于 2021-12-28 15:25
如果沒有老師實地指導,建議買成品的試驗套件,想省錢某魚就可以不用買全新。
套件一般都廠家有標配的例程,先搞出花樣提高興趣并且先感覺一下,然后移置到自己DIY的板上。
如果有實地指導除外,否則不同器件的接線和編程都是不一樣的,對于你這種自制寶貝只能理論上點贊。
ID:232791 發表于 2021-12-28 09:02
1.程序問題——占大頭,所謂的教程程序一般都得修修改改才能用。
2.上面說的對比度問題
3.接線問題
這些問題都可以跟屏幕廠家溝通,都不是上面大問題
至于屏幕損壞,只要是才買的這種幾率很小很小
ID:997175 發表于 2021-12-26 20:26
應該是對比度的問題
ID:403593 發表于 2021-12-26 20:21
middfat 發表于 2021-12-26 19:55
有一個小經驗:之前我玩這個12864的時候也是用的接線的方式,故障也是差不多:有背光,就是不顯示。
后來 ...

確實是,現在很難買到質量好的杜邦線了。。。
ID:403593 發表于 2021-12-26 20:21
我仿佛看到了曾經的自己。首先,要在正常使用的開發板上,用原廠點屏代碼測試,最好連引腳都不要動,能成功點亮了再說。然后,自己焊接的實驗板,先實現正常的下載點燈都沒問題了,再考慮修改移植代碼。這樣用杜邦線連接模塊最好只用于驗證,實際使用最好是畫圖打板,反正現在打板也是免費,順便練習畫圖技能。現在萬能寶上面的杜邦線質量普遍不怎么樣,我已經被坑過好幾次了,所以,有條件最好自己制作杜邦線,或者直接焊接。
ID:3212 發表于 2021-12-26 19:55
有一個小經驗:之前我玩這個12864的時候也是用的接線的方式,故障也是差不多:有背光,就是不顯示。
后來搞了很久,才發現是一根接線質量差,是中間斷的。走了好多彎路才糾正過來
ID:627300 發表于 2021-12-26 18:44
Qiuhan 發表于 2021-12-26 16:59
12864的第三個焊點旁邊有一個焊點 看看有沒有焊上  加一個調節屏幕的電阻試試  10K的可調電阻

一般都是用的LCD12864背部的可調電阻  如果想用第三個焊點VO來外接可調電阻的話需要把背部的通路斷掉
ID:903924 發表于 2021-12-26 16:59
12864的第三個焊點旁邊有一個焊點 看看有沒有焊上  加一個調節屏幕的電阻試試  10K的可調電阻
ID:97554 發表于 2021-12-26 14:22
比如,你貼出來的甚至連接線都看不清楚誰跟誰。起碼的液晶屏的型號,與MCU連線,以及程序全部貼好,然后大家再根據具體情況幫助你判斷問題的所在。這樣會更好些,不讓你讓大家浪費時間在這猜想,這樣根本猜不出個所以然,因為問題太多了。

畢竟像貼圖這種情況只需要連接背光的AK兩個引腳即可。
ID:97554 發表于 2021-12-26 14:18
這個如果不是某某開發板的套件加配套程序的話很難說明到底哪里除了問題,12864問題不比1602,要復雜的多,比如同一廠家的LCD12864只是后綴不同都需要不同的接線以及驅動程序,而且不同的主控芯片需要不同的初始化程序。把問題敘述的更清楚些也許更容易讓大家幫助你解決問題。
ID:140371 發表于 2021-12-26 12:00
單片機+ lcd12864  只藍屏
要檢查:
1.硬件接線對嗎?(包括單片機有無正常工作 .. lcd12864接線有無問題,程式中使用管腳與接線是否相符)
2.編寫的程序適合這個LCD對嗎?(LCD 12864不只一總型號..不同的型號驅動程是有差別)
3.編寫的程序對嗎?
4.lcd 12864對比調整適當
5.lcd損壞 .....(這種情形相當少見)
只要不是lcd損壞 ...完成1 至 4 項 一定會顯示



ID:908826 發表于 2021-12-26 08:35
嘿嘿嘿,你這可以把12864的程序貼出來讓大家看看到底是軟件的問題還是硬件的問題

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 狠狠爱一区二区三区 | 欧美国产日韩在线观看成人 | 午夜影院在线播放 | 波多野结衣二区 | 久久久久久久av | 国产一区二区三区视频免费观看 | 日韩一二三| 国产成人在线一区 | 亚洲精品视频在线 | 国产色在线 | 日本在线一二 | 亚洲国产一| av影音在线 | 久久岛国| 久久国产亚洲 | 最新午夜综合福利视频 | 一区二区三区四区在线播放 | 亚洲精品一区二区网址 | 国产精品一区二区av | 成人在线观看免费爱爱 | 成人毛片视频免费 | 欧美影院| www.亚洲精品| 99riav国产一区二区三区 | 亚洲精选久久 | 懂色av一区二区三区在线播放 | jvid精品资源在线观看 | 91在线视频网址 | 精品欧美一区二区三区久久久 | 中文字幕91| 精品视频久久久久久 | 免费观看a级毛片在线播放 黄网站免费入口 | 黄色在线| 日韩精品一区二区三区中文字幕 | 久久国产精品视频 | 亚洲视频 欧美视频 | 亚洲a在线观看 | 亚洲精品在线看 | 国产91中文| 欧美在线视频一区二区 | 国产精品伦一区二区三级视频 |