![]() |
發布時間: 2018-4-26 12:40
正文摘要:芯片是好的,用的是開發板,開發板也是好的,應該是程序哪有問題。仿真沒問題,但放到開發板上就不行了。 開發板用的是HC6800。 試過調對比度,但是沒什么幫助。 芯片第一行第二行均可單獨顯示靜態的內容。 出現 ... |
馬克扎西 發表于 2018-5-1 12:54 屏幕接反了 |
void write_com(uchar com) { e=0; rs=0; rw=0; P0=com; delay_uint(3); e=1; delay_uint(25); e=0; } 這些是定義起來干嘛的 |
我也遇到了這個問題,然后拔掉了單片機,測了一下D0~D7的電壓,只有D6的電壓為0,請問是這個原因嗎? |
Hellen_z 發表于 2020-3-7 18:09 他是插口插反了,你可以去檢查試試看 |
一樣的開發板,一樣的問題 |
考慮第二排地址錯誤 |
小伙,之前在論壇看到你的問題。我沒事自己畫的電路板也出現了,在洞洞板上是可以的。軟件也是可以用的,最后查到是硬件問題,有2個引腳連接到一起了。如果有別人遇到,可以查下管腳。 |
剛剛遇到了,最后通過一根根線排查接好就行了。 不接單片機是顯示一排黑方塊的,lz一閃一閃的可能是接觸不良,, 其他有些人說是延時問題,但程序我看著沒問題... |
小貓貓愛吃魚 發表于 2018-4-26 16:26 同意這個說法 |
sbit rs=P2^5; //寄存器選擇信號 H:數據寄存器 L:指令寄存器 sbit rw=P2^4; //寄存器選擇信號 H:數據寄存器 L:指令寄存器 sbit e =P2^6; //片選信號 下降沿觸發 這幾個端口對照開發板的電路圖查一下。我記得好像是 sbit rs=P2^6; sbit rw=P2^5; sbit e =P2^7; 只顯第一排黑塊是沒有LCD1602沒有正常初始化 |
sbit rs=P2^5; //寄存器選擇信號 H:數據寄存器 L:指令寄存器 sbit rw=P2^4; //寄存器選擇信號 H:數據寄存器 L:指令寄存器 sbit e =P2^6; //片選信號 下降沿觸發 |
檢查端口是否設置正確,從圖片上看連數碼管和 LED 都顯示了實為不該,正確應為只有 LCD 液晶屏顯示 |
兄弟,你解決問題了沒有?我遇見同樣的問題了 |
本帖最后由 zl2168 于 2018-4-30 21:20 編輯 給你介紹一個正確有效看得懂的案例,自己對照查錯吧! 實例67 LCD1602顯示屏顯示⒈ LCD1602顯示屏簡介 ⑴ 引腳功能 … ⑵ 內部寄存器 … ⑶ 控制指令 … ⑷ 操作時序 … ⒉ 電路設計 … ⒊ 程序設計 … ⒋ Keil調試 … ⒌ Proteus仿真 … 先Proteus仿真一下,確認有效。 ![]() ![]() 以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil C和Proteus》清華大學出版社ISBN 978-7-302-41682-1。書中電路和程序設計有詳細說明,程序語句條條有注解。 |
問題解決了嗎?你說第一行和第二行都能靜態顯示,我很好奇黑塊還能出現在什么地方,貼個圖才好幫你更好的分析呀 |
馬克扎西 發表于 2018-4-30 09:48 還是沒有仔細看,難怪玩不轉。 |
可能排線出現了問題 |
小貓貓愛吃魚 發表于 2018-4-26 16:26 你好,接口是按照開發板給的原理圖接的,核實了很多遍沒有錯啊 ![]() |
wulin 發表于 2018-4-26 17:41 還是和原來一樣誒 ![]() |
void init_1602() //lcd1602初始化設置 { write_com(0x38);//設置16*2顯示,5*7點陣,8位數據接口 write_com(0x01);//顯示清零,數據指針清零 write_com(0x0c);//設置開顯示,不顯光標 write_com(0x06);//設置寫一個字符后地址指針加1 } |