找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6966|回復: 11
收起左側(cè)

lcd1602顯示一排黑塊

[復制鏈接]
ID:897960 發(fā)表于 2021-6-5 10:28 | 顯示全部樓層 |閱讀模式
本帖最后由 Lzxhmxy1839 于 2021-6-5 10:37 編輯

本人自己設(shè)計的最小系統(tǒng)板,還沒跑過led燈,但是仔細檢查了,板子應(yīng)該沒問題。然后接lcd屏幕,第三腳的v0我接的是2k的電位器,之前沒接電位器,就只是亮背光,現(xiàn)在接了2k的就是顯示一排黑塊,p0口的上拉排阻接法正確,望各位大佬幫忙解決一下
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int

uchar code table[]="Welcome";                //單字符用單引號  多字符用雙引號
uchar code table1[]="Harbin CHINA";
sbit lcden=P1^0;                                                          //位定義使能端
sbit lcdrs=P1^1;                                                          //數(shù)據(jù)命令選擇端
//sbit dula=P2^6;                                                                  //申明U1鎖存器的鎖存端
//sbit wela=P2^7;                                                                  //申明U2鎖存器的鎖存端
uchar num;

void delay(uint z)                                                         //延時函數(shù)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
void write_com(uchar com)                                //寫命令函數(shù)
{
        lcdrs=0;                                           //寫指令rs先拉低           0是寫命令模式
        P0=com;                                                  //給P0口送的指令碼
        delay(50);                                           //延時
        lcden=1;                                          //使能端置1
        delay(50);
        lcden=0;                                          //拉低 依據(jù)時序圖
}
void write_data(uchar date)                           //寫數(shù)據(jù)函數(shù)         
{
        lcdrs=1;                                          //寫數(shù)據(jù)rs拉高                1是寫數(shù)據(jù)模式
        P0=date;                                                //P0口送數(shù)據(jù)  
        delay(50);
        lcden=1;                                                 //使能端置1
        delay(50);
        lcden=0;                                                 //使能端置0
}
void init()                                                           //初始化函數(shù)
{
        //dula=0;                                                                //關(guān)閉段選
        //wela=0;                                                                //關(guān)閉位選
        lcden=0;
        delay(500);                                                        //使能端置0
        write_com(0x38);                           //顯示設(shè)置指令碼                顯示模式設(shè)置
        delay(500);
        write_com(0x38);                           //顯示設(shè)置指令碼                顯示模式設(shè)置
        delay(500);
        write_com(0x38);                           //顯示設(shè)置指令碼                顯示模式設(shè)置
        delay(500);
        write_com(0x38);                           //顯示設(shè)置指令碼                顯示模式設(shè)置
        delay(500);
        write_com(0x0e);                           //顯示開/關(guān)光標設(shè)置                         0f是帶黑塊和光標一起閃爍   0e是只有一個__而且不閃爍 0c是后面什么都沒有
        write_com(0x06);                           //地址指針自動加1        還有整屏顯示左移
        write_com(0x01);                           //顯示清零 數(shù)據(jù)指針清零
        write_com(0x80+0x10);                           //設(shè)置數(shù)據(jù)指針位置         指向第一個
       

}
void main()
{
        init();
        for(num=0;num<7;num++)
        {
                write_data(table[num]);
                delay(5);       
        }
//        write_com(1);
        write_com(0x80+0x50);
                for(num=0;num<12;num++)
        {
                write_data(table1[num]);
                delay(5);
        }
        for(num=0;num<16;num++)       
        {
                write_com(0x18);
                delay(200);       
        }
        while(1);
}

IMG_5422.JPG
IMG_5421.JPG
IMG_5420.JPG
IMG_5419.JPG
回復

使用道具 舉報

ID:342822 發(fā)表于 2021-6-5 14:28 | 顯示全部樓層
檢查rs en rw接線
回復

使用道具 舉報

ID:94031 發(fā)表于 2021-6-5 14:35 | 顯示全部樓層
用電位器調(diào)對比度合適了才能有顯示。
回復

使用道具 舉報

ID:328014 發(fā)表于 2021-6-5 15:05 | 顯示全部樓層
來看一下51hei論壇里面解決此問題的痛苦經(jīng)歷吧:
51hei搜索框輸入"1602 方塊"或者"1602 黑塊"或者"1602 白塊"或者"1602 格":

這個是io口設(shè)置問題,最終搞定了:http://www.torrancerestoration.com/bbs/dpj-199732-1.html
http://www.torrancerestoration.com/bbs/dpj-168643-1.html

既有可能是軟件問題也有硬件問題
http://www.torrancerestoration.com/bbs/dpj-187378-1.html
http://www.torrancerestoration.com/bbs/dpj-160754-1.html
回復

使用道具 舉報

ID:897960 發(fā)表于 2021-6-5 21:04 | 顯示全部樓層
xuyaqi 發(fā)表于 2021-6-5 14:35
用電位器調(diào)對比度合適了才能有顯示。

接了電位器,也調(diào)試了,只有方塊的顏色深淺變了,其他的沒變化,我接的是2k的電位器,這個是必須接10k的嗎
回復

使用道具 舉報

ID:897960 發(fā)表于 2021-6-5 21:05 | 顯示全部樓層
51hei團團 發(fā)表于 2021-6-5 15:05
來看一下51hei論壇里面解決此問題的痛苦經(jīng)歷吧:
51hei搜索框輸入"1602 方塊"或者"1602 黑塊"或者"1602 白 ...

好的我看看,謝謝
回復

使用道具 舉報

ID:897960 發(fā)表于 2021-6-5 21:06 | 顯示全部樓層

我設(shè)置的rs和en接1.1和1.0  rw的話我沒有用到讀  是可以直接接地的
回復

使用道具 舉報

8#
無效樓層,該帖已經(jīng)被刪除
ID:517951 發(fā)表于 2021-6-5 21:18 | 顯示全部樓層
這種現(xiàn)象和調(diào)節(jié)V0電位器沒有關(guān)系,是初始化代碼沒有送進去,1602上電就是這種現(xiàn)象。要查下顯示屏是否是好的,再查信號線,再看下代碼有沒問題。
回復

使用道具 舉報

ID:897960 發(fā)表于 2021-6-5 21:34 | 顯示全部樓層
rayin 發(fā)表于 2021-6-5 21:18
這種現(xiàn)象和調(diào)節(jié)V0電位器沒有關(guān)系,是初始化代碼沒有送進去,1602上電就是這種現(xiàn)象。要查下顯示屏是否是好的 ...

我這個程序在tx1c板子上,就是郭天祥的板子上是可以正常顯示的,在這個最小系統(tǒng)板不顯示
回復

使用道具 舉報

ID:105364 發(fā)表于 2021-6-5 22:06 | 顯示全部樓層
xuyaqi 發(fā)表于 2021-6-5 14:35
用電位器調(diào)對比度合適了才能有顯示。

不是電位器調(diào)對比度問題,程序是顯示2 排的,如果 上排全白,對比 茺已經(jīng)是最大了,下排應(yīng)當也一樣。
mcu沒燒代碼就是這樣顯示的。
回復

使用道具 舉報

ID:897960 發(fā)表于 2021-6-5 23:14 | 顯示全部樓層
47okey 發(fā)表于 2021-6-5 22:06
不是電位器調(diào)對比度問題,程序是顯示2 排的,如果 上排全白,對比 茺已經(jīng)是最大了,下排應(yīng)當也一樣。
mc ...

朋友你有l(wèi)cd可以顯示的代碼嗎,我試試你的
回復

使用道具 舉報

ID:897960 發(fā)表于 2021-6-11 14:55 | 顯示全部樓層
問題解決了, 是我把復位電路的電容兩個腳焊接接到一起了
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表