久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3913|回復: 3
收起左側

LCD1602顯示黑色小方塊毫無反應無任何顯示,測試了好多的程序

[復制鏈接]
ID:430097 發表于 2018-11-20 19:23 | 顯示全部樓層 |閱讀模式
用的是普中科技的51單片機,從網上找了一些lcd的代碼把程序燒入單片機后lcd毫無反應,就只是背景板亮再就是lcd的第一行有好多黑色的小方塊。下面是其中的一個代碼。
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. //這三個引腳參考資料
  5. sbit E=P2^7;                //1602使能引腳
  6. sbit RW=P2^6;                //1602讀寫引腳        
  7. sbit RS=P2^5;                //1602數據/命令選擇引腳

  8. uchar tab1[]="512";  //要顯示什么就在這兒改
  9. uchar tab2[]="LCD1602 test ok!";  //[size=15.5555562973022px]要顯示什么就在這兒改

  10. void delay(uint del)   //延時1ms
  11. {
  12. uint i,j;
  13. for(i=0;i<del;i++)
  14.    for(j=0;j<=168;j++);
  15. }
  16. void writecmd(uchar com)  //寫指令
  17. {
  18. E=0;
  19. RS=0;
  20. RW=0;
  21. P0=com;
  22. delay(2);
  23. E=1;  
  24. delay(2);
  25. E=0;
  26. }
  27. void writedata(uchar dat)//寫數據
  28. {  
  29.   E=0;
  30.   RS=1;
  31.   RW=0;
  32.   P0=dat;
  33.   delay(2);
  34.   E=1;  
  35.   delay(2);
  36.   E=0;

  37. }
  38. void init(void)               //初始化
  39. {
  40. delay(15);
  41. writecmd(0x38);
  42. delay(5);
  43. writecmd(0x38);
  44. delay(5);
  45. writecmd(0x38);
  46. writecmd(0x38);
  47. writecmd(0x08);
  48. writecmd(0x01);
  49. writecmd(0x06);
  50. writecmd(0x0c);
  51. }
  52. void main()
  53. {  
  54. uchar j;
  55.   init();
  56.   writecmd(0x80);    //告訴液晶在哪個地方顯示 (設置地址指針)//80H+00
  57.   for(j=0;j<16;j++)  //有16個字符,要循環16次
  58.   {
  59.    writedata(tab1[j]);
  60.         delay(2);
  61.   }
  62.   writecmd(0x80+0x40); //再設置第二行的起始位置80H+40H

  63.   for(j=0;j<16;j++)   //有16個字符,要循環16次
  64.   {
  65.   writedata(tab2[j]);
  66.          delay(2);
  67.   }
  68.   while(1);         //讓液晶顯示就一直停在這里。

  69. }
復制代碼


回復

使用道具 舉報

ID:1 發表于 2018-11-21 01:22 | 顯示全部樓層
這是51黑論壇里面別人相似問題的解決過程:http://www.zg4o1577.cn/bbs/dpj-39388-1.html
回復

使用道具 舉報

ID:405182 發表于 2018-11-21 08:12 | 顯示全部樓層
試試這個
void lcd_initial(void)
{
        RS=0;
        delay(300);
        RW=0;
        ENABLE=1;
        delay(300);
        P0=0x38;
        delay(300);
        ENABLE=0;
        P0=0x06;
        ENABLE=1;
        delay(300);
        ENABLE=0;
        P0=0x0c;         //////
        ENABLE=1;
        delay(300);
        ENABLE=0;
        P0=0x0c;
        ENABLE=1;
        delay(300);
        ENABLE=0;
        P0=0x01;
        ENABLE=1;
        delay(300);
        ENABLE=0;
        P0=0x80;
        ENABLE=1;
        delay(300);
        ENABLE=0;
}
/////
void writecharxy(unsigned char x,unsigned char y,unsigned char c)
{
   switch(x)
        {
                case 0x01:
                {
                        RS=0;
                        delay(300);
                        RW=0;
                        delay(300);
                        ENABLE=1;
                        delay(300);
                        P0=0x80|y;
                        delay(300);
                        ENABLE=0;
                        RS=1;
                        delay(300);
                        RW=0;
                        delay(300);
                        ENABLE=1;
                        delay(300);
                        P0=c;
                        delay(300);
                        ENABLE=0;
                }
                        break;
                case 0x02:
                {
                       
                        RS=0;
                        delay(300);
                        RW=0;
                        delay(300);
                        ENABLE=1;
                        delay(300);
                        P0=0xc0|y;
                        delay(300);
                        ENABLE=0;
                        RS=1;
                        delay(300);
                        RW=0;
                        delay(300);
                        ENABLE=1;
                        delay(300);
                        P0=c;
                        delay(300);
                        ENABLE=0;
                }
                        break;
                default:break;
        }
}
//////
void delay(unsigned int t)
{
for(;t>0;t--);
}
回復

使用道具 舉報

ID:423020 發表于 2018-11-24 10:45 | 顯示全部樓層
1、寫指令、寫數據子程序里開始沒有讀忙,不知道是不是這個問題,可以在一開始加入幾個ms的延時替代讀忙試一下。
2、也有可能是對比度沒有調對,可以適當的增加以下LCD電壓試一下。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文精品久久 | 国产精品亚洲综合 | 久久精片| 久久精品欧美一区二区三区不卡 | 大吊一区二区 | 国产精品久久久久久久久久 | 黄色毛片免费看 | 日韩av在线中文字幕 | 一区二区免费视频 | 午夜视频免费网站 | 精品国产乱码久久久久久牛牛 | 一级做a| 国产99久久精品一区二区永久免费 | 九九热精品在线 | 婷婷丁香在线视频 | 久久久精品一区二区三区 | 中文字幕亚洲视频 | 免费欧美| 日本成人片在线观看 | 国产在线视频一区 | 中文一区二区视频 | 国产一区二区三区四区五区加勒比 | 日本欧美在线观看视频 | 五月槐花香 | 毛片免费在线观看 | 亚洲综合热 | 香蕉av免费| 国产精品一区二区三区在线 | 精品国产乱码久久久久久88av | 国产精品夜间视频香蕉 | 欧美一区二区三区在线观看 | h视频免费看 | 天天看片天天干 | 亚洲视频一区在线观看 | 国产欧美日韩在线观看 | 日日干日日| 亚洲97 | 国产精品电影网 | 久久成人精品视频 | 人人干97| 久久免费国产 |