![]() |
發布時間: 2022-5-7 15:37
正文摘要:燒寫程序給板子上電之后,1602只顯示這一行白塊,應該不是對比度的問題?因為調可調電阻只是亮度變了下,程序在proteus上仿真是能實現運行的,大佬們幫忙看看,本人小白不太懂。。 單片機源程序如下: #includ ... |
可能是對比度沒填好,可以調下電位器 |
問題已經解決了,是PCB板我把復位按鍵的兩個相鄰引腳接一起導致一直通路,還有三極管原理圖和PCB封裝不對應導致出錯,重新打板之后已經能正常顯示了,感謝各位回復過的大佬,此貼終結。 |
這種芯片座有機會接觸不良 建議用以下代碼檢查LCD1602各信號腳有沒有電平變化
|
我Dell沈陽了 發表于 2022-5-7 20:53 第一:請確認LCD1602是否插反方向,插反方向是會導致白塊的,但不會燒壞屏 第二:請確認你的RS/RW/E/DATA 這些端口是否和程序里面的一致,不一致也會導致屏白塊 第三:以上兩項都正確,再確認你的程序寫指令和寫數據延時部分是否正確,一般仿真是不能評論實物的,仿真是理想化的仿真,但實物的時候一切以實際為主. 如果你不確定你的寫指令和寫數據部分延時需要多少,盡可能的調大(一般大些不會導致白塊或不顯示,只是寫指令和寫數據等的時間稍長些),等顯示出來再調小,調到剛好可以穩定顯示又不會太大為準(比如你調到40剛好可以顯示了,再小就不顯示了,直接調到45-50即可,調太大影響程序運行速度) |
E口跳變缺少延時! */ //------------------------------------------------ //LCD E口跳變時,LCD顯示一個字符/接收一個指令 //RS=0:命令指令,RS=1:顯示數據指令 //------------------------------------------------ void LcdWriteInfo( u8 RS, u8 RW, u8 dat ) { //while(LcdBusy()); LCD1602_RS = RS; LCD1602_E = 0; LCD1602_RW = RW; LCD1602_DATA = dat; delay1Cycle(5); LCD1602_E = 1; delay1Cycle(5); LCD1602_E = 0; delay1Cycle(5); } |
我Dell沈陽了 發表于 2022-5-7 20:53 一試無妨 |
有幾張圖在只看大圖那里,問問像我最后一張圖上這個1602插法影響大嗎?需要多插一個排母嗎? |
w1179benp 發表于 2022-5-7 19:58 已經發上來了 |
我Dell沈陽了 發表于 2022-5-7 19:39 還是把原理圖、PCB圖上上來看看吧。 |
w1179benp 發表于 2022-5-7 18:54 沒有反接,只是畫pcb的時候沒有考慮到ic鎖緊座的高度 ![]() ![]() |
發表于 2022-5-7 17:47
|
調調左上角對比度電位器,看對比度合適不。 |
沒看到你的MCU底板PCB定義,但直覺是你的1602插反方向了(通常設計開發板,1602不會蓋在MCU上) |
你的主函數到哪里去了??? 40us延時太短,能仿真不代表實物也能行。
|
寫命令和數據延時時間可能太短了,加長,到1~3毫秒估計就可以了。 |
來看一下51hei論壇里面解決此問題的痛苦經歷吧: 51hei搜索框輸入"1602 方塊"或者"1602 黑塊"或者"1602 白塊"或者"1602 格": 這個是io口設置問題,最終搞定了: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 |