![]() |
第一種原因:初始化不成功 第二種原因:lcd正對著從左往右數第三個引腳直接接地了,應該加個10k或者可調電阻,用來調對比度 |
已解決, 貌似是沒調晶振頻率,還是謝謝大家了 |
lzt456 發表于 2021-7-23 10:48 1602的代碼是通用的。不同的單片機可能要做一些延時上的調整,我用過5、6種1602,都可以直接用的。不用更改代碼 |
調對比度 |
楊雪飛 發表于 2021-7-23 09:51 這個是我在網上買的 |
名字不是重點 發表于 2021-7-23 10:27 嗯,我去試試 |
yzwzfyz 發表于 2021-7-23 10:05 我是想用書上這種方式,把lcd點亮 |
Y_G_G 發表于 2021-7-23 06:39 這個我是知道的,我是感覺普中和這個書上的邏輯都沒毛病,我把書上用作字符串做循環的放松也行,只是他自己這個程序有點問題,我是兩個程序,一點一點試,發現其實原理都沒問題,但是就書上這個有點毛病,但又說不出哪有點問題,但肯定是寫入數據部分(數據手冊看過的,基本原理大概清楚) |
看圖說話:
![]() |
這種圖形出現的原因就是初始化不成功。 分析你是用開發板所以不存在數據口沒上拉的可能。認真讀一下1602的時序圖,發現代碼有一個問題(不夠強壯----邏輯不夠嚴謹): 應該 是: lcd1602_e=1; lcd1602_db=data; lcd1602_e=0; 你可以再試一下。 |
未弄清顯示原理,即使成功了,意義也不大。 未帶你需要用到LCD時,自己還能整出來嗎? 所以必須弄清楚原理。 |
普中家的程序只適用于普中家的1602,跟其他的不兼容。12864也是7920帶字庫的。試試其他的程序吧,具體哪里的問題沒有細研究,反正手里的一塊普中68000的就是這個問題,這也是我一直反對新手使用開發板學習的問題。1602還是非常好驅動的,程序也是大把的,只是普中的不知道出于什么目的,用了一塊特殊的1602。另外你這個首先看下開發板跟1602DB連接的是不是P0口,P0口有沒有上拉電阻,沒有的話是萬萬不能顯示的。還有那EN RS RW引腳對應了沒有。 |
這個是對比度沒調好吧。。。 |
我覺得"復制粘貼,試一下",這是學單片機最沒效率的,個人看法 首先,數據手冊一定要先看明白,知道它是怎么操作的,哪個指令是干嘛的,要不要上拉電阻,工作電壓,延時要求 然后,可以上網找別人的代碼,然后自己寫(這個很重要),自己寫完代碼然后加上注釋,比如它這個為什么0xff,數據手冊里面哪個位是干嘛的 再然后,想辦法顯示一個點,或者一個字母"A"什么,不要一上來就寫完整個程序,幾百上千行代碼,然后燒錄一看..... 你只要能在LCD上面顯示一個你想要顯示的符號,基本上后面的事就簡單了 |
來看一下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-187378-1.html http://www.zg4o1577.cn/bbs/dpj-160754-1.html |