標(biāo)題: LCD1602上電后只顯示第一排的方塊,初始化應(yīng)該沒問題 [打印本頁]

作者: Conlin不喝飲料    時(shí)間: 2019-8-21 11:41
標(biāo)題: LCD1602上電后只顯示第一排的方塊,初始化應(yīng)該沒問題
請問大佬們,為什么液晶上電后只顯示第一排的方塊。初始化應(yīng)該沒問題,下面代碼,幫幫忙,急。!

單片機(jī)源程序如下:
  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ù)制代碼



作者: wj_yuq    時(shí)間: 2019-8-21 12:30
調(diào)LCD的驅(qū)動(dòng)電壓試試沒有?就是原理圖中的電位器,管對比度的,對比度過大就會(huì)全是小方塊。
作者: wulin    時(shí)間: 2019-8-21 12:59
程序沒有問題只能說沒有語法和邏輯問題,不代表沒有時(shí)間問題。主時(shí)鐘頻率和延時(shí)函數(shù)對LCD1602驅(qū)動(dòng)碼的時(shí)序影響很大。這是典型的初始化失敗的現(xiàn)象。
作者: gb302    時(shí)間: 2019-8-21 13:25
第一行和第二行的地址是不一樣的,具體請看1602的手冊
作者: jiangkeqin_sy    時(shí)間: 2019-8-21 14:39
有顯示,不過對比度調(diào)錯(cuò)了,調(diào)節(jié)R15
作者: 999994    時(shí)間: 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); }
作者: 999994    時(shí)間: 2019-8-21 14:43
你程序只讓第一行顯示 第二行當(dāng)然不會(huì)顯示啦
作者: Conlin不喝飲料    時(shí)間: 2019-8-21 18:26
wj_yuq 發(fā)表于 2019-8-21 12:30
調(diào)LCD的驅(qū)動(dòng)電壓試試沒有?就是原理圖中的電位器,管對比度的,對比度過大就會(huì)全是小方塊。

調(diào)過了,都擰壞了還是一樣...
作者: Conlin不喝飲料    時(shí)間: 2019-8-21 18:28
gb302 發(fā)表于 2019-8-21 13:25
第一行和第二行的地址是不一樣的,具體請看1602的手冊

這個(gè)我知道,我是想讓第一行顯示hello world,我在模擬電路上試過是可以的,但是用在這就不行了
作者: Conlin不喝飲料    時(shí)間: 2019-8-21 18:29
999994 發(fā)表于 2019-8-21 14:42
void main() {         init(); //        write_data('1');          for(i=0;i

??請問你這是什么意思,看不懂...
作者: Conlin不喝飲料    時(shí)間: 2019-8-21 18:30
999994 發(fā)表于 2019-8-21 14:43
你程序只讓第一行顯示 第二行當(dāng)然不會(huì)顯示啦

這個(gè)當(dāng)然知道鴨,我代碼就是只讓第一行顯示hello world
作者: Conlin不喝飲料    時(shí)間: 2019-8-21 18:30
本帖最后由 Conlin不喝飲料 于 2019-8-21 18:47 編輯
wulin 發(fā)表于 2019-8-21 12:59
程序沒有問題只能說沒有語法和邏輯問題,不代表沒有時(shí)間問題。主時(shí)鐘頻率和延時(shí)函數(shù)對LCD1602驅(qū)動(dòng)碼的時(shí)序 ...

不是很懂...能再準(zhǔn)確的說一下嗎,請問我應(yīng)該怎么樣初始化...
作者: 無聲默片    時(shí)間: 2019-8-21 20:33
將第一行程序顯示位置的代碼改一下,放到第二行試一試
作者: 107056    時(shí)間: 2019-8-21 22:12
你會(huì)不會(huì)是插反了。。。,我有塊一樣的板
作者: 107056    時(shí)間: 2019-8-21 22:12
1602反過來插試試
作者: 107056    時(shí)間: 2019-8-21 22:15
而且這個(gè)板數(shù)碼管跟1602不能同時(shí)用,用的時(shí)候要拔跳線帽的
作者: m182892    時(shí)間: 2019-8-22 08:58
1602插反了不會(huì)燒,但是輸入電流會(huì)變大,模塊發(fā)熱,這是我曾經(jīng)碰到過的。
作者: Conlin不喝飲料    時(shí)間: 2019-8-22 09:03
107056 發(fā)表于 2019-8-21 22:12
你會(huì)不會(huì)是插反了。。。,我有塊一樣的板

沒有,我也試過反著插,你有沒有測試程序,能不能發(fā)給我
作者: Conlin不喝飲料    時(shí)間: 2019-8-22 09:04
107056 發(fā)表于 2019-8-21 22:15
而且這個(gè)板數(shù)碼管跟1602不能同時(shí)用,用的時(shí)候要拔跳線帽的

對,不能同時(shí)使用
作者: Conlin不喝飲料    時(shí)間: 2019-8-22 09:09
107056 發(fā)表于 2019-8-21 22:12
1602反過來插試試

你是反著插的嗎,你的可以用嗎?我太難了
作者: Host    時(shí)間: 2019-8-22 09:43
最好和你的數(shù)碼管分開使用,不然會(huì)有影響的
作者: Conlin不喝飲料    時(shí)間: 2019-8-22 13:35
Host 發(fā)表于 2019-8-22 09:43
最好和你的數(shù)碼管分開使用,不然會(huì)有影響的

這個(gè)數(shù)碼管關(guān)不了,他有一些管口和液晶共用
作者: 107056    時(shí)間: 2019-8-22 15:38
Conlin不喝飲料 發(fā)表于 2019-8-22 13:35
這個(gè)數(shù)碼管關(guān)不了,他有一些管口和液晶共用

你J1跳線帽拔了數(shù)碼管跟1602應(yīng)該就不會(huì)共用了
作者: 韋孟祥    時(shí)間: 2019-8-23 14:57
我說一下自己的看法啊,lcd1602不都是先寫命令,然后再寫數(shù)據(jù)的嗎,main函數(shù)里面你沒有寫命令,你可以試一下,然后你確定了你的開發(fā)板與那個(gè)圖是對應(yīng)的嗎
作者: Conlin不喝飲料    時(shí)間: 2019-9-4 14:22
韋孟祥 發(fā)表于 2019-8-23 14:57
我說一下自己的看法啊,lcd1602不都是先寫命令,然后再寫數(shù)據(jù)的嗎,main函數(shù)里面你沒有寫命令,你可以試一 ...

命令已經(jīng)在初始化函數(shù)里面寫了噢,這個(gè)圖也是對的,我要裂開來了....
作者: Conlin不喝飲料    時(shí)間: 2019-9-4 14:35
107056 發(fā)表于 2019-8-22 15:38
你J1跳線帽拔了數(shù)碼管跟1602應(yīng)該就不會(huì)共用了

拔了跳線帽確實(shí)數(shù)碼管沒顯示了,但是液晶還是只是上電狀態(tài)...太難了
作者: 孤獨(dú)的狼吃羊    時(shí)間: 2020-12-1 11:44
同樣的問題,想問問你解決了嗎= =
作者: rayin    時(shí)間: 2020-12-2 09:10
初始化代碼沒有執(zhí)行到1602就會(huì)導(dǎo)致第一行顯示全黑,需要檢查RW,E,rs,P2是否與單片機(jī)引腳可靠連接,且51單片機(jī)的P0口必須要有上拉10k電阻,3條控制信號線接到了P0上了,沒有10K電阻就會(huì)有問題。
作者: 小文文    時(shí)間: 2020-12-2 09:51
你這是調(diào)的過亮了。
作者: gagaga123    時(shí)間: 2020-12-13 23:16
同樣問題,想問問解決了沒
作者: ibrohimz    時(shí)間: 2020-12-14 00:45
volarge current is low, repair your IC




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1