|
發布時間: 2018-8-2 10:34
正文摘要:#include<reg52.h> typedef unsigned char uchar; typedef unsigned int uint; sbit RS = P3^5; sbit RW = P3^6; sbit EN = P3^4; //判斷液晶顯示是否忙 void Read_Busy() { uchar busy; ... |
| 絕對是判忙程序出了問題,換成while(busy & 0x80==1); |
|
本帖最后由 zl2168 于 2018-8-3 21:53 編輯 實例67 LCD1602顯示屏顯示 先Proteus仿真一下,確認有效。
實例61 LCD1602顯示屏顯示.rar
(49.26 KB, 下載次數: 8)
以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil C和Proteus》清華大學出版社ISBN 978-7-302-41682-1。書中電路和程序設計有詳細說明,程序語句條條有注解。 |
楊雪飛 發表于 2018-8-2 19:05 不檢測忙是有延時的 我沒驗延時 就檢測忙 |
| 前面幾個可以不檢測忙,但初始化要按照手冊里寫的,你現在是初始化里沒有寫這6行代碼 |
李博文 發表于 2018-8-2 16:30 這個小測試程序好像不檢測忙也可以,我看到好多都是沒有檢測忙的 |
| 1602手冊里初始化開頭記得是延時15ms,寫指令38h, |
楊雪飛 發表于 2018-8-2 12:37 找到了問題 程序一直卡在 判忙哪里 時序出了問題 |
|
上面正解,你再寫一個0X30,看下是不是顯示0 |
楊雪飛 發表于 2018-8-2 12:35 不是 顯示不了H一直顯示p |
楊雪飛 發表于 2018-8-2 12:35 顯示不了p |
|
0x05 是P |
| 0x48應該顯示個大寫的H就對了 |
| 你只寫了個0x48數據,你還想顯示什么? |
|
這個和你單片機p0.0-p0.7口的電平有關吧? |
| 程序的編譯一直沒問題 仿真一直顯示P |