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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1322|回復: 1
收起左側

單片機驅動LCD12864串行不顯示

[復制鏈接]
ID:992677 發表于 2023-4-1 23:29 | 顯示全部樓層 |閱讀模式
12864串行不顯示,是原理圖有問題嗎,還是程序有問題?
1.jpg 2.png
  1. /********************************************************************
  2. * 名稱 : writebyte()
  3. * 功能 : 按照液晶的串口通信協議,發送數據
  4. * 輸入 : zdata
  5. * 輸出 : 無
  6. ***********************************************************************/
  7. void writebyte(unsigned char zdata)
  8. {
  9.         for(i=0; i<8; i++)
  10.         {
  11.                 if((zdata << i) & 0x80)
  12.                 {
  13.                         rw = 1;
  14.                 }
  15.                 else
  16.                 {
  17.                         rw = 0;
  18.                 }
  19.                 en = 0;
  20.                 en = 1;
  21.         }
  22. }
  23. /********************************************************************
  24. * 名稱 : write_com()
  25. * 功能 : 寫串口指令
  26. * 輸入 : cmdcode
  27. * 輸出 : 無
  28. ***********************************************************************/
  29. void write_com(unsigned char cmdcode)
  30. {
  31.         writebyte(0xf1);
  32.         writebyte(cmdcode);
  33.         writebyte(cmdcode << 4);
  34. }
  35. /********************************************************************
  36. * 名稱 : write_data()
  37. * 功能 : 寫串口指令
  38. * 輸入 : cmdcode
  39. * 輸出 : 無
  40. ***********************************************************************/
  41. void write_data(unsigned char Dispdata)
  42. {
  43.         writebyte(0xfb);
  44.         writebyte(Dispdata);
  45.         writebyte(Dispdata << 4);
  46. }

  47. /**********************************************************
  48. *函數名: addr_12864
  49. *功能:寫地址
  50. *說明:寫漢字時要寫個地址
  51. *輸入:無
  52. *返回:無
  53. **********************************************************/
  54. void addr_12864(uchar hang,uchar lie)          //地址轉換
  55. {
  56.         uchar address;
  57.         switch(hang)
  58.         {
  59.                 case 1: address=0x80 + lie ;         //計算12864第一行的地址
  60.                                 break;
  61.                 case 2: address=0x90 + lie ;         //計算12864第二行的地址
  62.                                 break;
  63.                 case 3: address=0x88 + lie ;         //計算12864第三行的地址
  64.                                 break;
  65.                 case 4: address=0x98 + lie ;         //計算12864第四行的地址
  66.                                 break;
  67.                 default :
  68.                                 break;
  69.         }        
  70.         write_com(address);                                        //寫地址給12864
  71. }


  72. /***********************lcd12864上顯示3位十進制數************************/
  73. void write_lcd3(uchar hang,uchar add,uint date)
  74. {
  75.         addr_12864(hang,add);                          //寫12864地址
  76.          if(date/100%10 == 0)
  77.                 write_data(' ');
  78.         else
  79.                 write_data(0x30+date/100%10);  //顯示百位數
  80.         write_data(0x30+date/10%10);          //顯示十位數
  81.         write_data(0x30+date%10);                  //顯示個位數
  82. }

  83. /***********************lcd12864上顯示2位十進制數************************/
  84. void write_lcd2(uchar hang,uchar add,uint date)
  85. {
  86.         addr_12864(hang,add);                          //寫12864地址
  87.          write_data(0x30+date/10%10);          //顯示十位數
  88.         write_data(0x30+date%10);                  //顯示個位數
  89. }

  90. /**********************************************************
  91. *函數名: write_string
  92. *功能:在12864上顯示字符數據
  93. *說明:
  94. *輸入:無
  95. *返回:無
  96. **********************************************************/
  97. void write_string(uchar hang,uchar lie,uchar *p)
  98. {
  99.         addr_12864(hang,lie);          //寫12864地址
  100.         while(1)                                                                                                                 
  101.         {
  102.                 if(*p == '\0')  break;        //\0字符串的結尾標志  break結束while循環 結束寫字符
  103.                 write_data(*p);            //寫數據
  104.                 p++;                    //指針地址加1  
  105.         }        
  106. }

  107. /*****************控制光標函數********************/
  108. void write_guanbiao(uchar hang,uchar lie,uchar date)
  109. {               
  110.         addr_12864(hang,lie);          //寫12864地址
  111.         if(date == 1)
  112.                 write_com(0x0f);     //顯示光標并且閃爍        
  113.         else
  114.                 write_com(0xc0);   //關閉光標
  115. }         

  116. /********************************************************************
  117. * 名稱 : init_12864()
  118. * 功能 : 初始化函數
  119. * 輸入 : cmdcode
  120. * 輸出 : 無
  121. ***********************************************************************/
  122. void init_12864()
  123. {  
  124.         write_com(0x30);         //功能設置 基本指令
  125.         write_com(0x0c);         //開顯示 不顯示光標
  126.         write_com(0x01);         //清屏
  127.         write_string(1,0,"PM2.5:000ug/m3  ");          //初始化12864顯示
  128.         write_string(2,0,"溫度:00℃      ");          //初始化12864顯示
  129.         write_string(3,0,"濕度:00%       ");          //初始化12864顯示
  130.         write_string(4,0,"一氧化碳000 PPM ");          //初始化12864顯示
  131. }
復制代碼


回復

使用道具 舉報

ID:992677 發表于 2023-4-1 23:31 | 顯示全部樓層
E和R/W接P2.6和P2.7
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久草视频网站 | 久久久久免费观看 | 欧美精品二区 | 新av在线 | 91视频免费在观看 | 欧美在线视频观看 | 国产午夜久久久 | 在线黄av| www四虎com| 日本亚洲精品 | 午夜羞羞 | 欧美精品在线观看 | 日韩视频在线免费观看 | 91久久综合 | 亚洲精品一区二三区不卡 | 欧美日韩中文字幕 | 一区二区伦理电影 | 黑人巨大精品 | 欧美成人a∨高清免费观看 老司机午夜性大片 | 九九热在线视频 | 亚洲精品日韩视频 | 99re66在线观看精品热 | 久久精品免费 | 日韩精品一区二区三区中文在线 | 久久国产三级 | 日韩在线播放中文字幕 | 国产精品久久久久婷婷二区次 | 国产1区2区3区 | 久久亚洲一区二区 | 99色在线 | 欧美视频区 | 一级高清免费毛片 | 精品国产乱码久久久久久果冻传媒 | a视频在线 | 欧美一区二区三区精品 | 成年精品| 欧美精品久久 | 男女污污动态图 | 日日夜夜草 | 亚洲国产一区在线 | av中文字幕网 |