![]() |
程序一般例程不會出錯,確認一下你的delay函數是否準確,可以main開始delay(1000)然后debug看看用時是不是你想要的 |
不是對比度調整的問題,如果是對比度不正常,會出現二行白條而不是只有第二行白條,從硬件上檢查接線是否正確,軟件上好好看看程序有沒有問題。 |
從圖片看,對比度沒太大問題。 應該是初始化問題,延遲函數準不準? 另外硬件的引腳定義正確么? 另外,寫指令和寫數據用下面這段試試 void Lcd1602_Write_Cmd(unsigned char cmd) //寫命令 { Read_Busy(); LCD1602_RS = 0; LCD1602_RW = 0; LCD1602_EN = 1; LCD1602_DB = cmd; _nop_();_nop_();_nop_();_nop_(); LCD1602_EN = 1; _nop_();_nop_();_nop_();_nop_(); LCD1602_EN = 0; } void Lcd1602_Write_Data(unsigned char dat) //寫數據 { Read_Busy(); LCD1602_RS = 1; LCD1602_RW = 0; LCD1602_EN = 1; LCD1602_DB = dat; _nop_();_nop_();_nop_();_nop_(); LCD1602_EN = 1; _nop_();_nop_();_nop_();_nop_(); LCD1602_EN = 0; } |
正巧,我前幾天發了一個LCD1602 的貼子 專門 針對復位失敗這個問題的 |
ANT1987 發表于 2021-5-7 14:14 是對比度的問題嗎?我百度里說的是初始化失敗才有這個白條...對比度調整是不是得接電阻 |
賊個調一下對比度就好啦 后面有旋鈕 |
初始化前有問題,檢查一下接線,還有顯示屏說明書和仿真軟件命令上的差異 |