找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 12786|回復(fù): 30
打印 上一主題 下一主題
收起左側(cè)

LCD1602上電后只顯示第一排的方塊,初始化應(yīng)該沒問題

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:572374 發(fā)表于 2019-8-21 11:41 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
請問大佬們,為什么液晶上電后只顯示第一排的方塊。初始化應(yīng)該沒問題,下面代碼,幫幫忙,急�。�!

單片機源程序如下:
  1. #include<reg52.h>
  2. #include<string.h>

  3. sbit rs=P0^7;
  4. sbit rw=P0^6;
  5. sbit en=P0^5;

  6. char t0[]="HELLO WORLD!";
  7. char t1[]="HELLO NEUSOFT!";
  8. int i;

  9. void delay(int z);
  10. void write_cmd(char cmd);
  11. void write_data(char dt);
  12. void init();

  13. void main()
  14. {
  15.         init();
  16. //        write_data('1');
  17.         for(i=0;i<strlen(t0);i++)
  18.         {
  19.                 write_data(t0[i]);
  20.                 delay(20);
  21.         }
  22.         while(1);
  23. }

  24. void init()
  25. {
  26.         write_cmd(0x38);
  27.         write_cmd(0x0c);
  28.         write_cmd(0x06);
  29.         write_cmd(0x01);
  30.         write_cmd(0x80);}

  31. void write_data(char dt)
  32. {
  33.          
  34.         rs=1;
  35.         rw=0;
  36.         P2=dt;

  37.         delay(5);
  38.         en=1;
  39.         delay(5);
  40.         en=0;
  41. }

  42. void write_cmd(char cmd)
  43. {
  44.         
  45.         rs=0;
  46.         rw=0;
  47.         P2=cmd;

  48.         delay(5);
  49.         en=1;
  50.         delay(5);
  51.         en=0;
  52. }

  53. void delay(int z)
  54. {
  55.         int x,y;
  56.         for(x=z;x>0;x--)
  57.                 for(y=110;y>0;y--);
  58. }
復(fù)制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:307020 發(fā)表于 2019-8-21 12:30 | 只看該作者
調(diào)LCD的驅(qū)動電壓試試沒有?就是原理圖中的電位器,管對比度的,對比度過大就會全是小方塊。
回復(fù)

使用道具 舉報

板凳
ID:213173 發(fā)表于 2019-8-21 12:59 | 只看該作者
程序沒有問題只能說沒有語法和邏輯問題,不代表沒有時間問題。主時鐘頻率和延時函數(shù)對LCD1602驅(qū)動碼的時序影響很大。這是典型的初始化失敗的現(xiàn)象。
回復(fù)

使用道具 舉報

地板
ID:10193 發(fā)表于 2019-8-21 13:25 | 只看該作者
第一行和第二行的地址是不一樣的,具體請看1602的手冊
回復(fù)

使用道具 舉報

5#
ID:267330 發(fā)表于 2019-8-21 14:39 | 只看該作者
有顯示,不過對比度調(diào)錯了,調(diào)節(jié)R15
回復(fù)

使用道具 舉報

6#
ID:290170 發(fā)表于 2019-8-21 14:42 | 只看該作者
void main() {         init(); //        write_data('1');          for(i=0;i<strlen(t0);i++)         {                 write_data(t0[i]);                 delay(20);         }         while(1); }
回復(fù)

使用道具 舉報

7#
ID:290170 發(fā)表于 2019-8-21 14:43 | 只看該作者
你程序只讓第一行顯示 第二行當然不會顯示啦
回復(fù)

使用道具 舉報

8#
ID:572374 發(fā)表于 2019-8-21 18:26 | 只看該作者
wj_yuq 發(fā)表于 2019-8-21 12:30
調(diào)LCD的驅(qū)動電壓試試沒有?就是原理圖中的電位器,管對比度的,對比度過大就會全是小方塊。

調(diào)過了,都擰壞了還是一樣...
回復(fù)

使用道具 舉報

9#
ID:572374 發(fā)表于 2019-8-21 18:28 | 只看該作者
gb302 發(fā)表于 2019-8-21 13:25
第一行和第二行的地址是不一樣的,具體請看1602的手冊

這個我知道,我是想讓第一行顯示hello world,我在模擬電路上試過是可以的,但是用在這就不行了
回復(fù)

使用道具 舉報

10#
ID:572374 發(fā)表于 2019-8-21 18:29 | 只看該作者
999994 發(fā)表于 2019-8-21 14:42
void main() {         init(); //        write_data('1');          for(i=0;i

??請問你這是什么意思,看不懂...
回復(fù)

使用道具 舉報

11#
ID:572374 發(fā)表于 2019-8-21 18:30 | 只看該作者
999994 發(fā)表于 2019-8-21 14:43
你程序只讓第一行顯示 第二行當然不會顯示啦

這個當然知道鴨,我代碼就是只讓第一行顯示hello world
回復(fù)

使用道具 舉報

12#
ID:572374 發(fā)表于 2019-8-21 18:30 | 只看該作者
本帖最后由 Conlin不喝飲料 于 2019-8-21 18:47 編輯
wulin 發(fā)表于 2019-8-21 12:59
程序沒有問題只能說沒有語法和邏輯問題,不代表沒有時間問題。主時鐘頻率和延時函數(shù)對LCD1602驅(qū)動碼的時序 ...

不是很懂...能再準確的說一下嗎,請問我應(yīng)該怎么樣初始化...
回復(fù)

使用道具 舉報

13#
ID:235543 發(fā)表于 2019-8-21 20:33 | 只看該作者
將第一行程序顯示位置的代碼改一下,放到第二行試一試
回復(fù)

使用道具 舉報

14#
ID:531987 發(fā)表于 2019-8-21 22:12 | 只看該作者
你會不會是插反了。。。,我有塊一樣的板
回復(fù)

使用道具 舉報

15#
ID:531987 發(fā)表于 2019-8-21 22:12 | 只看該作者
1602反過來插試試
回復(fù)

使用道具 舉報

16#
ID:531987 發(fā)表于 2019-8-21 22:15 | 只看該作者
而且這個板數(shù)碼管跟1602不能同時用,用的時候要拔跳線帽的
回復(fù)

使用道具 舉報

17#
ID:56665 發(fā)表于 2019-8-22 08:58 | 只看該作者
1602插反了不會燒,但是輸入電流會變大,模塊發(fā)熱,這是我曾經(jīng)碰到過的。
回復(fù)

使用道具 舉報

18#
ID:572374 發(fā)表于 2019-8-22 09:03 | 只看該作者
107056 發(fā)表于 2019-8-21 22:12
你會不會是插反了。。。,我有塊一樣的板

沒有,我也試過反著插,你有沒有測試程序,能不能發(fā)給我
回復(fù)

使用道具 舉報

19#
ID:572374 發(fā)表于 2019-8-22 09:04 | 只看該作者
107056 發(fā)表于 2019-8-21 22:15
而且這個板數(shù)碼管跟1602不能同時用,用的時候要拔跳線帽的

對,不能同時使用
回復(fù)

使用道具 舉報

20#
ID:572374 發(fā)表于 2019-8-22 09:09 | 只看該作者

你是反著插的嗎,你的可以用嗎?我太難了
回復(fù)

使用道具 舉報

21#
ID:214223 發(fā)表于 2019-8-22 09:43 | 只看該作者
最好和你的數(shù)碼管分開使用,不然會有影響的
回復(fù)

使用道具 舉報

22#
ID:572374 發(fā)表于 2019-8-22 13:35 | 只看該作者
Host 發(fā)表于 2019-8-22 09:43
最好和你的數(shù)碼管分開使用,不然會有影響的

這個數(shù)碼管關(guān)不了,他有一些管口和液晶共用
回復(fù)

使用道具 舉報

23#
ID:531987 發(fā)表于 2019-8-22 15:38 | 只看該作者
Conlin不喝飲料 發(fā)表于 2019-8-22 13:35
這個數(shù)碼管關(guān)不了,他有一些管口和液晶共用

你J1跳線帽拔了數(shù)碼管跟1602應(yīng)該就不會共用了
回復(fù)

使用道具 舉報

24#
ID:366214 發(fā)表于 2019-8-23 14:57 | 只看該作者
我說一下自己的看法啊,lcd1602不都是先寫命令,然后再寫數(shù)據(jù)的嗎,main函數(shù)里面你沒有寫命令,你可以試一下,然后你確定了你的開發(fā)板與那個圖是對應(yīng)的嗎
回復(fù)

使用道具 舉報

25#
ID:572374 發(fā)表于 2019-9-4 14:22 | 只看該作者
韋孟祥 發(fā)表于 2019-8-23 14:57
我說一下自己的看法啊,lcd1602不都是先寫命令,然后再寫數(shù)據(jù)的嗎,main函數(shù)里面你沒有寫命令,你可以試一 ...

命令已經(jīng)在初始化函數(shù)里面寫了噢,這個圖也是對的,我要裂開來了....
回復(fù)

使用道具 舉報

26#
ID:572374 發(fā)表于 2019-9-4 14:35 | 只看該作者
107056 發(fā)表于 2019-8-22 15:38
你J1跳線帽拔了數(shù)碼管跟1602應(yīng)該就不會共用了

拔了跳線帽確實數(shù)碼管沒顯示了,但是液晶還是只是上電狀態(tài)...太難了
回復(fù)

使用道具 舉報

27#
ID:575597 發(fā)表于 2020-12-1 11:44 | 只看該作者
同樣的問題,想問問你解決了嗎= =
回復(fù)

使用道具 舉報

28#
ID:517951 發(fā)表于 2020-12-2 09:10 | 只看該作者
初始化代碼沒有執(zhí)行到1602就會導(dǎo)致第一行顯示全黑,需要檢查RW,E,rs,P2是否與單片機引腳可靠連接,且51單片機的P0口必須要有上拉10k電阻,3條控制信號線接到了P0上了,沒有10K電阻就會有問題。
回復(fù)

使用道具 舉報

29#
ID:429356 發(fā)表于 2020-12-2 09:51 | 只看該作者
你這是調(diào)的過亮了。
回復(fù)

使用道具 舉報

30#
ID:839796 發(fā)表于 2020-12-13 23:16 | 只看該作者
同樣問題,想問問解決了沒
回復(fù)

使用道具 舉報

31#
ID:859795 發(fā)表于 2020-12-14 00:45 來自手機 | 只看該作者
volarge current is low, repair your IC
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表