標題: 為什么我的LCD12864顯示程序無法在實物中顯示出來? [打印本頁]

作者: w18278023119    時間: 2021-11-30 20:56
標題: 為什么我的LCD12864顯示程序無法在實物中顯示出來?
程序如下!求求大佬教一下我。!

單片機源程序如下:
  1. include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint  unsigned int

  4. sbit LCD_RS=P3^4;       //數(shù)據(jù)/命令選擇端
  5. sbit LCD_RW=P3^6;       //讀/寫選擇端
  6. sbit LCD_EN=P3^5;       //液晶使能控制

  7. uchar code dis_l1[]={"白日依山盡"};   //定義所要被顯示的數(shù)據(jù)
  8. uchar code dis_l2[]={"黃河入海流"};
  9. uchar code dis_l3[]={"欲窮千里目"};
  10. uchar code dis_l4[]={"更上一層樓"};

  11. void delayms(uint ms)
  12. {
  13.    uint i,j;
  14.    for(i=ms;i>0;i++)
  15.       for(j=110;j>0;j--);
  16. }

  17. /*寫指令到LCD中,指令通過單片機的P0口輸入,
  18.   寫指令操作順序按照RS=0;RW=0;EN=0;延時;EN=1;寫指令;延時;EN=0的順序*/
  19. void write_comd(uchar cmd)
  20. {
  21.    LCD_RS=0;
  22.    LCD_RW=0;
  23.    LCD_EN=0;
  24.    delayms(5);
  25.    LCD_EN=1;
  26.    P0=cmd;
  27.    delayms(5);
  28.    LCD_EN=0;
  29. }
  30. /*寫數(shù)據(jù)到LCD中,數(shù)據(jù)通過單片機的P0口輸入,
  31.   寫數(shù)據(jù)操作順序按照RS=1;RW=0;EN=0;延時;EN=1;寫數(shù)據(jù);延時;EN=0的順序*/
  32. void write_dat(uchar dat)
  33. {
  34.    LCD_RS=1;
  35.    LCD_RW=0;
  36.    LCD_EN=0;
  37.    delayms(5);
  38.    LCD_EN=1;
  39.    P0=dat;
  40.    delayms(5);
  41.    LCD_EN=0;
  42. }

  43. /*設(shè)定LCD的顯示位置 X表示所要顯示的行數(shù),Y表示所要顯示的列數(shù)*/
  44. void lcd_posi(uchar X,uchar Y)
  45. {
  46.    uchar posi;
  47.    if(X==1)
  48.       X=0x80;
  49.    else if(X==2)
  50.            X=0x90;
  51.            else if(X==3)
  52.                    X=0x88;
  53.                    else if(X==4)
  54.                         X=0x98;
  55.     posi=X+Y;
  56.     write_comd(posi);
  57. }

  58. /*LCD初始化*/
  59. void lcd_init()
  60. {
  61.    write_comd(0x30);     //LCD功能設(shè)定指令,采用八位數(shù)據(jù),基本指令集
  62.    delayms(5);
  63.    write_comd(0x0c);     //LCD顯示狀態(tài)開關(guān)指令,顯示開,游標開,不允許反白顯示
  64.    delayms(5);
  65.    write_comd(0x01);    //LCD清除顯示指令,清除LCD顯示內(nèi)容,為后面顯示做準備
  66.    delayms(5);
  67. }


  68. void main()
  69. {
  70.    uchar i;
  71.    lcd_init();    //初始化

  72.    lcd_posi(1,0);//設(shè)定顯示位置為第一行第一個字符
  73.    i=0;
  74.    while(dis_l1[i]!='\0')
  75.       {
  76.          write_dat(dis_l1[i]);//顯示字符
  77.          i++;
  78.       }

  79.    lcd_posi(2,0);//設(shè)定顯示位置為第二行第一個字符
  80.    i=0;
  81.    while(dis_l2[i]!='\0')
  82.       {
  83.          write_dat(dis_l2[i]);
  84.          i++;
  85.       }

  86.    lcd_posi(3,0);//設(shè)定顯示位置為第三行第一個字符
  87.    i=0;
  88.    while(dis_l3[i]!='\0')
  89.       {
  90.          write_dat(dis_l3[i]);
  91.          i++;
  92.       }

  93.    lcd_posi(4,0);//設(shè)定顯示位置為第四行第一個字符
  94.    i=0;
  95.    while(dis_l4[i]!='\0')
  96.       {
  97.          write_dat(dis_l4[i]);
  98.          i++;
  99.       }

  100. }
復制代碼


作者: 996256177    時間: 2021-11-30 22:08
得用字庫,給漢字取模,本不能直接顯示漢字

作者: 楊雪飛    時間: 2021-12-1 08:52
996256177 發(fā)表于 2021-11-30 22:08
得用字庫,給漢字取模,本不能直接顯示漢字

如果是7920主控的話就自帶字庫的。
作者: man1234567    時間: 2021-12-3 08:54
大概率是硬件接法有問題,包括線序錯誤、跳線錯誤等。
查各器件與程序要求的是否一致,先顯示個出任意個字符先。
點陣屏如果字庫不符合要求(硬或軟)、線序、時序等有問題是不會出東西的。
總之,先查器件與軟件是否匹配,再查硬件接法有無問題,再查軟件并調(diào)試就可以了。
象圖中這種標準化的試驗板,廠家都配有相關(guān)的試驗程序可以直接用,然后在此基礎(chǔ)上改更容易成功。
作者: 13205495918    時間: 2021-12-7 22:15
你買這個開發(fā)板沒給你12864的驅(qū)動嗎???
作者: mengsiu    時間: 2021-12-8 18:56
都舍不得把12864的排針焊接上嗎?
作者: mengsiu    時間: 2021-12-8 18:56
12864的對比度調(diào)好了沒有?
作者: w18278023119    時間: 2021-12-11 22:48
mengsiu 發(fā)表于 2021-12-8 18:56
都舍不得把12864的排針焊接上嗎?

不是的!是因為要和別的芯片焊,所以暫時先這樣弄著
作者: Y_G_G    時間: 2021-12-11 23:38
1,線要焊上,在你沒有保證程序完全正確的情況下,首先要保證的是硬件沒有問題,你這種接法,它就是不顯示,你并不能確定是軟件出了問題,還是硬件出了問題
2,要以實際效果為主,仿真在12864一點用處都沒有
3,看好引腳的排序,是不是這個方向,方向不對,屏幕一樣的會亮的!插反了容易燒
4,看一下店家給的資料,這個帶不帶中文字庫的,不帶的話,要掃描顯示的
作者: hy47566398    時間: 2022-4-21 07:50
有過這種遭遇,不過是我擰背后的羅絲顯示出來字的,整個羅絲能顯示的角度很窄,不超過90度
作者: 陳志祥    時間: 2022-5-2 09:12
沒有設(shè)置準雙向看
作者: 陳志祥    時間: 2022-5-2 09:12
沒有設(shè)置準雙向口
作者: zhxiufan    時間: 2022-5-2 10:23
第一,可能液晶選擇不對,你的代碼是控制帶字庫的12864的液晶的,如果你實物液晶是點陣液晶,就肯定無法正常顯示了。
第二,硬件上找找原因,包括連線、焊接等。
作者: shenqiwei    時間: 2022-5-3 02:06
你的LCD12864是不是帶字庫的,如果不帶你就要自己寫編寫一個屬于自己的字庫,程序幫你看過了,沒有大的毛病.
作者: 陳志祥    時間: 2022-5-9 09:01
設(shè)置管腳
作者: laowang123222    時間: 2022-5-10 02:08
注意對比度,還有接線之類的
作者: 021819    時間: 2022-6-7 21:20
我也遇見過類似的情況,應(yīng)該是液晶顯示器不帶中文字庫,換成純英文
作者: 啤酒瓶子老大    時間: 2022-6-7 23:52
把12864反過來拍個照。
作者: 17337161031    時間: 2022-6-8 10:36
如果仿真沒問題,就是需要調(diào)節(jié)背光
作者: 君工創(chuàng)    時間: 2022-6-8 12:12
液晶屏白茫茫,對比度調(diào)整好了嗎?




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