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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2040|回復: 4
打印 上一主題 下一主題
收起左側

單片機+LCD1602第二排總顯示錯誤

[復制鏈接]
跳轉到指定樓層
樓主
如題,做一個環境檢測系統,用了SHT31和GY39,一時興起,就把兩個溫濕度拿來比比,然后發現LCD1602第二排顯示錯誤,濕度的%RH后面多出了兩個HH,在按下按鍵(顯示大氣壓力和光照時)第二排變成了KPaaa,多了兩個aa但是程序里應該是沒有寫入重復字符的啊求教
下面是主程序部分的LCD部分程序
                LcdInit();
                if(count==1)
           {
                LcdWriteData(Bme.Temp/1000+0X30);
                LcdWriteData(Bme.Temp%1000/100+0X30);
                LcdWriteData('.');
                LcdWriteData(Bme.Temp%100/10+0X30);
                LcdWriteData(0xdf);
                LcdWriteData('C');
            LcdWriteData(' ');
                LcdWriteData(' ');
                LcdWriteData(' ');                          
                LcdWriteData(Bme.Hum/1000+0x30);
                LcdWriteData(Bme.Hum%1000/100+0x30);
                LcdWriteData('%');
                LcdWriteData('R');
                LcdWriteData('H');
                LcdWriteCom(0x40+0x80);
                LcdWriteData(a/10+0X30);
                LcdWriteData(a%10+0X30);
                LcdWriteData('.');
                LcdWriteData(b%10+0X30);
                LcdWriteData(0xdf);
                LcdWriteData('C');
                LcdWriteData(' ');
                LcdWriteData(' ');
                LcdWriteData(' ');                          
                LcdWriteData(c/10+0X30);
                LcdWriteData(c%10+0X30);
                LcdWriteData('%');
                LcdWriteData('R');
                LcdWriteData('H');
                delay(50000);
                }
                else if(count==2)
                {
                LcdWriteData('L');
                LcdWriteData('u');
                LcdWriteData('x');
                LcdWriteData(':');
                LcdWriteData(Lux/100000+0X30);
                LcdWriteData(Lux%100000/10000+0X30);
                LcdWriteData(Lux%10000/1000+0X30);
                LcdWriteData(Lux%1000/100+0X30);
                LcdWriteData('.');
                LcdWriteData(Lux%100/10+0X30);
                LcdWriteData(Lux%10+0X30);                          
                LcdWriteCom(0x40+0x80);
                LcdWriteData('P');
                LcdWriteData(':');
                LcdWriteData(Bme.P/100/100000+0x30);
                LcdWriteData(Bme.P/100%100000/10000+0x30);
                LcdWriteData(Bme.P/100%10000/1000+0x30);
                LcdWriteData('.');
                LcdWriteData(Bme.P/100%1000/100+0x30);
                LcdWriteData(Bme.P/100%100/10+0x30);
                LcdWriteData(Bme.P/100%10+0x30);
                LcdWriteData('k');
                LcdWriteData('p');
                LcdWriteData('a');
                delay(50000);}

圖1.jpg (721.92 KB, 下載次數: 35)

第二排那個后面多兩個H

第二排那個后面多兩個H

圖2.jpg (3.2 MB, 下載次數: 33)

多了兩個a

多了兩個a
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:584814 發表于 2020-5-27 17:11 來自觸屏版 | 只看該作者
建議將顯示函數寫成帶行列和內容的格式,那樣找問題容易書寫更直觀。
回復

使用道具 舉報

板凳
ID:213173 發表于 2020-5-27 17:20 | 只看該作者
這類問題主要容易發生在刷新字符個數不一。關鍵是LCD定位不準,原來字符沒有清除干凈。實際就是程序有不易察覺的漏洞。有一個方法可以避免此毛病:定義兩個長度16的緩存數組,一個用于上排,一個用于下排。把固定字符按序排列,其它用空格或0填充,程序運行中要改變的顯示內容以字符形式寫進數組。更新LCD顯示內容時一次把緩存16個字符全部刷新。
回復

使用道具 舉報

地板
ID:326333 發表于 2020-5-27 17:55 | 只看該作者
每次寫之前加個清屏指令試一下
回復

使用道具 舉報

5#
ID:277948 發表于 2020-5-28 19:31 | 只看該作者
跟樓上,在清屏后建議延時一段時間,充分清除。也可以讀取BF標志位(看單片機是不是忙)
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品区一区二区三区 | av天空 | 在线免费观看色 | 正在播放国产精品 | 成人午夜视频在线观看 | 日韩久久久一区二区 | 日韩精品视频在线播放 | 99re在线免费视频 | 精品久久久久久亚洲综合网 | 日韩中文在线视频 | 国产视频福利一区 | 一区二区三区av夏目彩春 | 亚洲免费网 | 国产欧美在线视频 | 国产精品一级 | 国产精品久久777777 | 中文字幕在线观看一区二区 | 国产在线拍偷自揄拍视频 | 欧美福利视频 | 亚洲精品9999 | 成人久久| 国产第一区二区 | 亚洲一区二区三区免费在线 | 成人在线免费 | 日本成人在线播放 | 国产精品视屏 | 日韩成人在线免费观看 | 色网站在线免费观看 | 国产精品久久久99 | 最新午夜综合福利视频 | 日本在线一区二区三区 | 亚洲av一级毛片 | 九九九久久国产免费 | 国产日韩精品一区二区 | 黄色一级毛片 | 亚洲国产成人精品女人 | 国产中文一区二区三区 | 国产成人jvid在线播放 | 日韩三级视频 | 在线欧美a | 国产精品99999999 |