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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

LCD1602只顯示方格不顯示數(shù)據(jù),怎么回事呢

  [復(fù)制鏈接]
ID:1121838 發(fā)表于 2024-6-25 13:25 | 顯示全部樓層 |閱讀模式

單片機(jī)STC89C52,做了一個(gè)HX711的稱重電子秤。
程序:
#include <reg52.h>
#include <intrins.h>

// 定義LCD1602相關(guān)引腳
sbit RS = P2^6;   // RS引腳
sbit RW = P2^5;   // RW引腳
sbit E = P2^7;    // E引腳
sbit DATA = P0;   // 數(shù)據(jù)線引腳

// 定義HX711相關(guān)引腳
sbit PD_SCK = P1^5;   // 時(shí)鐘引腳
sbit DOUT = P1^6;     // 數(shù)據(jù)引腳

// 定義獨(dú)立按鍵引腳
sbit KEY = P3^2;

// 定義全局變量
bit tareFlag = 0;     // 去皮操作標(biāo)志位
long tareValue = 0;   // 去皮值

// LCD1602寫命令
void LcdWriteCmd(unsigned char cmd) {
    RS = 0;
    RW = 0;
    DATA = cmd;
    _nop_();
    E = 1;
    _nop_();
    E = 0;
    _nop_();
}

// LCD1602寫數(shù)據(jù)
void LcdWriteData(unsigned char dat) {
    RS = 1;
    RW = 0;
    DATA = dat;
    _nop_();
    E = 1;
    _nop_();
    E = 0;
    _nop_();
}

// LCD1602初始化
void LcdInit() {
    LcdWriteCmd(0x38);   // 設(shè)置16x2顯示模式
    LcdWriteCmd(0x0c);   // 開啟光標(biāo)并關(guān)閉閃爍
    LcdWriteCmd(0x06);   // 光標(biāo)右移
    LcdWriteCmd(0x01);   // 清除顯示
    LcdWriteCmd(0x80);   // 設(shè)置顯示位置為第一行第一個(gè)字符
}

// HX711讀取數(shù)據(jù)
long Hx711Read() {
    unsigned char i;
    long value = 0;

    while(DOUT);

    for (i = 0; i < 24; i++) {
        PD_SCK = 1;
        value = value << 1;
        _nop_();
        if (DOUT) {
            value++;
        }
        PD_SCK = 0;
        _nop_();
    }

    for (i = 0; i < 1; i++) {
        PD_SCK = 1;
        _nop_();
        PD_SCK = 0;
        _nop_();
    }

    return value;
}

// 延時(shí)函數(shù)
void Delay(unsigned int n) {
    unsigned int i, j;

    for (i = n; i > 0; i--) {
        for (j = 110; j > 0; j--);
    }
}

// 顯示重量和去皮值
void DisplayWeight(long weight) {
    unsigned char i;
    unsigned long temp;
    unsigned char str[] = "Weight:";

    temp = weight;

    for (i = 7; i >= 0; i--) {
        str[7 - i + 7] = temp % 10 + '0';
        temp /= 10;
    }

    for (i = 0; i < 8; i++) {
        LcdWriteData(str[i]);
    }

    if (tareFlag) {
        unsigned char strTare[] = " Tare:";
        temp = tareValue;

        for (i = 7; i >= 0; i--) {
            strTare[7 - i + 6] = temp % 10 + '0';
            temp /= 10;
        }

        for (i = 0; i < 7; i++) {
            LcdWriteData(strTare[i]);
        }
    }
}

// 去皮操作
void Tare() {
    tareFlag = 1;
    tareValue = Hx711Read();
}

// 主函數(shù)
void main() {
    long weight;

    LcdInit();   // 初始化LCD1602
    Delay(5);

    while (1) {
        weight = Hx711Read();   // 讀取重量

        if (tareFlag) {
            weight -= tareValue;   // 計(jì)算凈重
        }

        DisplayWeight(weight);   // 顯示重量

        if (KEY == 0) {
            Delay(50);
            if (KEY == 0) {
                Tare();   // 執(zhí)行去皮操作
                while (!KEY);
                Delay(10);
            }
        }
    }
}


回復(fù)

使用道具 舉報(bào)

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

這個(gè)是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-208189-1.html
http://www.zg4o1577.cn/bbs/dpj-210690-1.html

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

使用道具 舉報(bào)

ID:619259 發(fā)表于 2024-6-25 16:18 | 顯示全部樓層
可能的原因:
1.對比度調(diào)節(jié)沒調(diào)到最佳狀態(tài)。
2.寫命令和寫數(shù)據(jù)程序存在問題,造成初始化失敗和數(shù)據(jù)傳輸失敗。分析你的代碼,無忙檢測,說明你采用盲測的方法,即寫入數(shù)據(jù)時(shí)需要一定的延時(shí),確保數(shù)據(jù)傳輸完畢,才能執(zhí)行下一個(gè)指令。你代碼中“E = 1;   _nop_();   E = 0;”,顯然延時(shí)是不夠的。因不同的顯示屏的性能有差異,一般采用1ms延時(shí),如果還不行,再加大延時(shí)。如果用的是更高速度的芯片,最好還是加上忙檢測。
回復(fù)

使用道具 舉報(bào)

ID:366877 發(fā)表于 2024-6-25 16:44 | 顯示全部樓層
大概率是對比度調(diào)節(jié)出了問題。延時(shí)問題只要看看手冊,按規(guī)定延時(shí)即可。
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2024-6-25 17:51 | 顯示全部樓層



2024-06-25_174732.png
2024-06-25_174742.png
2024-06-25_175033.png



回復(fù)

使用道具 舉報(bào)

ID:332444 發(fā)表于 2024-6-25 19:25 | 顯示全部樓層
初學(xué)時(shí)用過帶的代碼似乎就是方塊的現(xiàn)象,所以,一直沒什么信心,很久后自己研究時(shí)序,自己寫驅(qū)動(dòng),就再也沒遇到方塊問題,到我帖子里面對比看看。
回復(fù)

使用道具 舉報(bào)

ID:1127243 發(fā)表于 2024-6-27 14:42 | 顯示全部樓層
如果在查看了對比度和引腳連接問題后仍無法解決,可以嘗試換一個(gè)顯示屏。我們上次做就是給的顯示屏壞掉了,查了很久的錯(cuò)最后換了一個(gè)就好了
回復(fù)

使用道具 舉報(bào)

ID:1127342 發(fā)表于 2024-6-27 20:18 | 顯示全部樓層
應(yīng)該是對比度調(diào)節(jié)的問題,先試試改這個(gè)看看
回復(fù)

使用道具 舉報(bào)

ID:329625 發(fā)表于 2024-7-2 09:08 來自觸屏版 | 顯示全部樓層
實(shí)物的話會(huì)出現(xiàn)這種狀況 需要調(diào)節(jié)背光燈  然后同步做個(gè)仿真驗(yàn)證一下 仿真里面不會(huì)出現(xiàn)這種現(xiàn)象
回復(fù)

使用道具 舉報(bào)

ID:517951 發(fā)表于 2024-7-7 11:45 | 顯示全部樓層
如果顯示兩行的方格, 就應(yīng)該是V0 需要調(diào)節(jié).
如果顯示一行的方格, 就應(yīng)該是初始化代碼沒有正確的發(fā)送到1602的driver IC.
回復(fù)

使用道具 舉報(bào)

ID:1128391 發(fā)表于 2024-7-7 14:00 | 顯示全部樓層
第1行黑塊,第2行空白,是1602本身上電復(fù)位成功的標(biāo)志。意味著單片機(jī)沒有進(jìn)行初始化,需要檢查電路.
兩行都是顯示黑塊 嘗試調(diào)節(jié)電位器,直到黑塊消失。帶背光的1602 lcd在上電復(fù)位的成功的時(shí)候,調(diào)整正確的時(shí)候是看不見黑塊的。
回復(fù)

使用道具 舉報(bào)

ID:1128391 發(fā)表于 2024-7-7 14:02 | 顯示全部樓層
第1行黑塊,第2行空白,是1602本身上電復(fù)位成功的標(biāo)志。意味著單片機(jī)沒有進(jìn)行初始化,需要檢查電路.兩行都是顯示黑塊 嘗試調(diào)節(jié)電位器,直到黑塊消失。帶背光的1602 lcd在上電復(fù)位的成功的時(shí)候,調(diào)整正確的時(shí)候是看不見黑塊的。
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品美女在线观看视频在线观看 | 欧美精品一区二区三区在线播放 | 国产伦精品 | 国产亚洲精品久久久久动 | 国产一级在线 | 国产成人免费网站 | 久久久久国产一区二区三区四区 | 亚洲精品久久国产高清情趣图文 | 男女羞羞视频在线观看 | 精品久久久久一区二区国产 | 亚洲精品一区国语对白 | 一级黄色片日本 | 亚洲精品久久久久久国产精华液 | 成av人电影在线 | 日本一区二区高清不卡 | 亚洲午夜精品一区二区三区他趣 | 亚洲国产成人av好男人在线观看 | 中日韩毛片 | 国产福利在线小视频 | 日本视频免费观看 | 福利电影在线 | 日本精品视频在线 | 久色一区| 欧美一区二区小视频 | 作爱视频免费观看 | 好姑娘高清在线观看电影 | 男人av在线播放 | 国产1区2区 | 国产午夜精品一区二区三区四区 | 中文字幕国产精品 | 国产精品成人一区二区三区吃奶 | 亚洲一区二区三区视频 | 精品一区二区久久 | 黑人成人网 | 国产成人精品免费 | 一区二区在线免费观看 | 美女在线视频一区二区三区 | 色又黄又爽网站www久久 | 欧美综合一区二区 | 亚洲狠狠| 国产精品爱久久久久久久 |