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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7093|回復(fù): 6
收起左側(cè)

請教關(guān)于lcd1602液晶顯示一行黑塊的問題

[復(fù)制鏈接]
ID:870622 發(fā)表于 2021-1-7 16:04 | 顯示全部樓層 |閱讀模式
本帖最后由 啊_奶瓶 于 2021-1-8 21:08 編輯

大佬們,為什么我的液晶可以亮,但是不能顯示字符呢
代碼是沒有問題的,我直接抄書上的代碼也不能讓他顯示字符,只是單純的亮著,請問是怎么一回事,該怎么解決

單片機源程序如下:
#include "reg52.h"
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="I LOVE MCU!";
uchar code table1[]="www.zg4o1577.cn";
sbit lcden=P3^4;//液晶使能端
sbit lcdrs=P3^5;//液晶數(shù)據(jù)命令選擇端
sbit dula=P2^6;//聲明U1鎖存器的鎖存端
sbit wela=P2^7;//聲明U2鎖存器的鎖存端
uchar num;


void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
        {
         for(y=110;y>0;y--);
        }
}

void write_com(uchar com)//命令
{
lcdrs=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}

void write_data(uchar date)//數(shù)據(jù)
{
lcdrs=1;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
        
}

void init()//液晶初始化
{
dula=0;
wela=0;
lcden=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}

void main()
{
init();

write_com(0x80);
for(num=0;num<11;num++)
        {
         write_data(table[num]);
         delay(5);
        }
        write_com(0x80+0x40);
        for(num=0;num<11;num++)
        {
         write_data(table1[num]);        
   delay(5);               
        }
  while(1);
}
51hei圖片20210107160429.jpg

BST-V51原理圖 v3.0.pdf

70.84 KB, 下載次數(shù): 4

回復(fù)

使用道具 舉報

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

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

既有可能是軟件問題也有硬件問題
http://www.zg4o1577.cn/bbs/dpj-187378-1.html
http://www.zg4o1577.cn/bbs/dpj-160754-1.html
回復(fù)

使用道具 舉報

ID:390416 發(fā)表于 2021-1-7 18:28 | 顯示全部樓層
LCD1602顯示數(shù)字 以及℃ 這種自定義符號  你可以看看我的貼子
http://www.zg4o1577.cn/bbs/dpj-200685-1.html
回復(fù)

使用道具 舉報

ID:743654 發(fā)表于 2021-1-7 20:11 | 顯示全部樓層
調(diào)節(jié)對比度,VO 和 GND之間接一個10k的可調(diào)電阻。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2021-1-7 20:38 | 顯示全部樓層
軟件都是基于硬件編寫的,如果這個程序不是此學(xué)習(xí)板的配套示例,就不能保證正常工作。把此板的原理圖發(fā)上來幫你看看。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:517466 發(fā)表于 2021-1-7 21:17 | 顯示全部樓層
從現(xiàn)象來看,是LCD1602處于剛加電狀態(tài)下的顯示情況。說明你的驅(qū)動處理沒有起作用。
建議:
1、檢查接線情況是否正常
2、檢查程序中IO口設(shè)置和硬件的實際連線是否一致
3、LCD1602的驅(qū)動部分,與LCD1602的技術(shù)要求是否一致(時序是否匹配、指令和數(shù)據(jù)的執(zhí)行順序是否正確)
看你的代碼,在液晶初始化的處理中,指令之間沒有必要的延時,恐怕是問題所在。
以下是我用過的代碼:
sbit rs=P0^7;
sbit rw=P0^6;
sbit ep=P0^5;

void delay (ulong m) {
        while(m--);
}

BOOL lcd_bz() {
        BOOL result;
        rs=0;           // 讀忙信號
        rw=1;
        ep=1;
        _nop_();_nop_();_nop_();_nop_();
        result = (BOOL)(PDATA&0x80);
        ep=0;
        result ;
}

void lcd_wcmd (BYTE cmd) {
        while (lcd_bz());
        rs=0;
        rw=0;
        ep=0;
        _nop_();
        _nop_();
        PDATA=cmd ;
        _nop_();_nop_();_nop_();_nop_();
        ep=1;
        _nop_();_nop_();_nop_();_nop_();
        ep=0;
}
//80H+ 地址碼( 0-27H ,40H-67H)
void lcd_pos (BYTE pos) {
          lcd_wcmd (pos|0x80);
}
void lcd_wdat (BYTE dat) {
        while (lcd_bz());
        rs=1;
        rw=0;
        ep=0;
        _nop_();_nop_();
        PDATA=dat ;
        _nop_();        _nop_();        _nop_();        _nop_();
        ep=1;
        _nop_();        _nop_();        _nop_();        _nop_();
        ep=0;
}

void lcd_init () {
        lcd_wcmd (0x38);
        delay(1200);
        lcd_wcmd (0x0c);
        delay(1200);
        lcd_wcmd (0x06);
        delay(1200);
        lcd_wcmd (0x01);
        delay(1200);
}

主程序中:
        lcd_init();
        delay (20);
       
        lcd_pos (0); // 定位第一行
        i=0;
        while (dis1 [i]!='\0')        {
                 lcd_wdat (dis1 [i]); // 顯示一行數(shù)據(jù)
                 i++;       
        }
       
        lcd_pos (0x40); // 定位第二行
        i=0;
        while (dis2 [i]!='\0')        {
                 lcd_wdat (dis2 [i]); // 顯示一行數(shù)據(jù)
                 i++;       
        }

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:517951 發(fā)表于 2021-1-7 21:24 | 顯示全部樓層
顯示一行黑塊的原因就是LCD1602的初始化代碼沒有送入顯示器的驅(qū)動IC,需要檢查11條數(shù)據(jù)線是否可靠連接, 數(shù)據(jù)線位寬4位還是8位,4位寬數(shù)據(jù)線設(shè)置時指令和數(shù)據(jù)要分2次送入。1602驅(qū)動IC是慢速器件,時序需要一定時間的保持寬度。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品国产高清一区二区三区 | 玖玖视频网 | 日韩不卡三区 | 久久久久国产一区二区三区四区 | 亚洲人成网站777色婷婷 | av中文在线 | 天天宗合网 | 国产精品一区在线观看 | 久久精品黄色 | 亚洲欧美一区二区三区国产精品 | 国产精品久久久久aaaa九色 | 欧美日韩电影一区 | 狠狠草视频 | 日韩成人久久 | 最新国产精品 | av网站在线看| 国产ts人妖一区二区三区 | 国产精品高潮呻吟 | 国产精品视频网站 | 五月激情婷婷在线 | 亚洲网站在线播放 | 99热在线免费| 久久欧美精品 | 欧美日韩国产一区二区三区 | 国产美女一区二区三区 | 亚洲精品黑人 | 91精品国产色综合久久 | 日韩一区二区三区av | 九九精品在线 | 九九热这里 | 综合激情网 | 日韩精品一区二区三区中文在线 | 99久久精品免费看国产高清 | 久国产视频 | 国产精品视频网 | 国产99在线 | 欧美 | 蜜桃视频麻豆 | 欧洲精品在线观看 | 国产精品日韩欧美一区二区三区 | 久久国产精品一区二区三区 | 国产免费一级一级 |