標題: LCD1602燒錄單片機程序顯示白色方塊一行,請大佬指出 [打印本頁]

作者: 占良    時間: 2021-7-28 08:56
標題: LCD1602燒錄單片機程序顯示白色方塊一行,請大佬指出
搭建了lcd1602的顯示電路,硬件檢查了沒問題,但是燒錄程序,無顯示,現(xiàn)附圖源碼,顯示狀態(tài)圖,
懇請大俠指出哪里不對,謝謝

51hei圖片_20210728084952.jpg (134.41 KB, 下載次數(shù): 110)

51hei圖片_20210728084952.jpg

51hei圖片_20210728084919.jpg (188.75 KB, 下載次數(shù): 99)

51hei圖片_20210728084919.jpg

51hei圖片_20210728084930.jpg (204.96 KB, 下載次數(shù): 95)

51hei圖片_20210728084930.jpg

51hei圖片_20210728084948.jpg (177.46 KB, 下載次數(shù): 119)

51hei圖片_20210728084948.jpg

作者: 在下陸一發(fā)    時間: 2021-7-28 10:28
怕不是地址端錯誤?  之前在csdn看到一個類似的,不知道能不能幫到你,網(wǎng)址在這https://blog.csdn.net/qq_31038073/article/details/90581356
作者: rz12345    時間: 2021-7-28 11:13
好像沒看到字模!
作者: angmall    時間: 2021-7-28 11:26
樓主 : 建議你檢查電路是否存在虛焊

可能產(chǎn)生的問題如下:
1、I/O口與LCD的數(shù)據(jù)口方向焊反
2、LCD的RS、RW、E的控制I/O口在程序編輯時定義錯誤
3、程序錯誤
只要這三點做對了是絕對沒問題的

作者: 公司的    時間: 2021-7-28 13:42
有可能是單片機連接的問題,我之前也遇到過,換了塊單片機系統(tǒng)就可以。
作者: 占良    時間: 2021-7-28 13:53
公司的 發(fā)表于 2021-7-28 13:42
有可能是單片機連接的問題,我之前也遇到過,換了塊單片機系統(tǒng)就可以。

剛開始我也是這樣認為的,換了單片機還是一樣的,換了LCD1602顯示屏也是這樣的,我燒錄蜂鳴器的程序,可以運行正確,說明搭建的電路沒問題
作者: 占良    時間: 2021-7-28 14:06
angmall 發(fā)表于 2021-7-28 11:26
樓主 : 建議你檢查電路是否存在虛焊

可能產(chǎn)生的問題如下:

這些檢查了,程序是可以編譯生成HEX文件成功的
作者: 占良    時間: 2021-7-28 14:26
在下陸一發(fā) 發(fā)表于 2021-7-28 10:28
怕不是地址端錯誤?  之前在csdn看到一個類似的,不知道能不能幫到你,網(wǎng)址在這https://blog.csdn.net/qq_3 ...

沒有I2C模塊,謝謝
作者: lkc8210    時間: 2021-7-28 15:23
直接貼代碼很難嗎?
試試下面的代碼吧,Proteus 仿真成功
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char

  4. sbit E = P2^5;
  5. sbit RW = P2^6;
  6. sbit RS = P2^7;

  7.         unsigned char send[]={"987654321       "};
  8.         unsigned char send2[]={"There is lkc8210"};

  9. void delay_ms(int ms)
  10. {
  11.         int i,j;
  12.         for(i=0; i<ms; i++)
  13.         for(j=0; j<111; j++);
  14. }
  15. void delay_us(int us)
  16. {
  17.         while(--us);
  18. }

  19. void Port_W(char value)
  20. {
  21.         E=0;
  22.         RW=0;
  23.         P0=value;
  24.         E=1;
  25.         delay_us(3);
  26.         E=0;
  27. }

  28. void disp(char addr, char dat)
  29. {
  30.         RS=0;
  31.         Port_W(addr+0x80);
  32.         delay_us(3);
  33.         RS=1;
  34.         Port_W(dat);
  35.         delay_us(3);
  36. }
  37. void LCD_Initial()
  38. {
  39.         RS=0;
  40.         Port_W(0x38);
  41.         Port_W(0x01);
  42.         delay_ms(5);
  43.         Port_W(0x0C);
  44. }
  45. void main()
  46. {
  47.         unsigned char i;
  48.         LCD_Initial();
  49.         delay_ms(1000);
  50.         for(i=0;i<16;i++)disp(i,send[i]);
  51.         for(i=0;i<16;i++)disp(i+0x40,send2[i]);

  52.     while(1)
  53.     {
  54.     }
  55. }
復(fù)制代碼




如果還是不顯示就是硬件問題


作者: 占良    時間: 2021-7-28 17:25
lkc8210 發(fā)表于 2021-7-28 15:23
直接貼代碼很難嗎?
試試下面的代碼吧,Proteus 仿真成功

感謝,問題解決了,問題是P0口上拉排阻弄反了
作者: 1024153202    時間: 2021-7-29 13:54
字膜可以拍的再清晰點,我之前也遇到過的
作者: lzb1964937553    時間: 2021-7-29 18:16
程序本身的問題,建議先換一個led試試,我之前有和你一樣的問題,更換屏幕后就解決了
作者: 1836114456    時間: 2021-8-24 15:03
應(yīng)該是灰度問題,v0接個電阻器試試

作者: wojiaoguogai    時間: 2021-8-30 18:33
初始化沒過




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