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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2247|回復: 5
收起左側

單片機驅動lcd12864亂碼

[復制鏈接]
ID:278457 發表于 2020-9-12 17:08 | 顯示全部樓層 |閱讀模式
視頻: 1.rar (1.15 MB, 下載次數: 7)
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #include<stdlib.h>
  4. #define uchar unsigned char
  5. #define uint unsigned int
  6. #define LCD_data P0   //數據口
  7. #define ushort unsigned short int
  8. ushort b;

  9. /*******引腳定義*******/
  10. sbit LCD_RS=P3^5;
  11. sbit LCD_RW=P3^6;
  12. sbit LCD_EN=P3^4;
  13. sbit LCD_PSB=P3^7;
  14. sbit wela=P2^6;
  15. sbit dula=P2^7;
  16. uchar code dis1[]={"abcdefg"};
  17. uchar code dis2[]={"您好"};
  18. uchar code dis3[]={"歡迎光臨"};
  19. uchar code dis4[]={"www.baidu.com"};

  20. uchar code dis5[]={"數值:"};
  21. uchar dis6[5]={"L 000"};
  22. uchar dis7[5]={"R 000"};
  23. uchar code dis8[]={""};

  24. /*******延時函數*******/
  25. void delay_1ms(uint x)
  26. {
  27.         uint i,j;
  28.     for(j=0;j<x;j++)
  29.       for(i=0;i<110;i++);
  30. }

  31. void quzhi()
  32. {
  33.   uint f=dis6[5],g=dis7[5];
  34.    for(f=0;f<5;f++)
  35.     for(g=0;g<5;g++);
  36. }

  37. /*******寫指令*******/
  38. void write_cmd(uchar cmd)
  39. {
  40.         LCD_RS=0;
  41.     LCD_RW=0;
  42.     LCD_EN=0;
  43.     P0=cmd;
  44.     delay_1ms(5);
  45.     LCD_EN=1;
  46.     delay_1ms(5);
  47.     LCD_EN=0;
  48. }

  49. /*******顯示數據*******/
  50. void write_dat(uchar dat)
  51. {
  52.         LCD_RS=1;
  53.     LCD_RW=0;
  54.     LCD_EN=0;
  55.     P0=dat;
  56.     delay_1ms(5);
  57.     LCD_EN=1;
  58.     delay_1ms(5);
  59.     LCD_EN=0;
  60. }

  61. /*******設定初始顯示位置*******/
  62. void lcd_pos(uchar x,uchar y)
  63. {
  64.         uchar pos;
  65.     if(x==0)
  66.           x=0x82;
  67.         else if(x==1)
  68.       x=0x91;
  69.         else if(x==2)
  70.       x=0x8A;
  71.         else if(x==3)
  72.       x=0x98;
  73.         pos=x+y;
  74.     write_cmd(pos);
  75. }

  76. void lcd_pos2(uchar x,uchar y)
  77. {
  78.         uchar pos2;
  79.     if(x==0)
  80.           x=0x80;
  81.         else if(x==1)
  82.       x=0x93;
  83.         else if(x==2)
  84.       x=0x8B;
  85.         else if(x==3)
  86.       x=0x98;
  87.         pos2=x+y;
  88.     write_cmd(pos2);
  89. }

  90. /*******LCD初始化程序*******/
  91. void lcd_init()
  92. {
  93.         LCD_PSB=1;                 //并口方式
  94.         write_cmd(0x30);           
  95.     delay_1ms(5);
  96.     write_cmd(0x0c);           //顯示開,關光標
  97.         delay_1ms(5);
  98.     write_cmd(0x01);           //清除LCD的顯示內容
  99.         delay_1ms(5);
  100. }

  101. /*******LCD數據顯示位置*******/
  102. void shuju()
  103. {
  104.    uchar i;
  105.    lcd_pos(0,0);                               //第一行
  106. while(dis1[i]!='\0')
  107.   {                        
  108.    write_dat(dis1[i]);
  109.    i++;
  110.   }  
  111.    lcd_pos(1,0);                               //第二行
  112.    i=0;
  113. while(dis2[i]!='\0')
  114.   {
  115.    write_dat(dis2[i]);
  116.    i++;
  117.   }
  118.    lcd_pos(2,0);                               //第三行
  119.    i=0;
  120. while(dis3[i]!='\0')
  121.   {
  122.    write_dat(dis3[i]);
  123.    i++;
  124.   }
  125.    lcd_pos(3,0);                               //第四行
  126.    i=0;
  127. while(dis4[i]!='\0')
  128.   {
  129.    write_dat(dis4[i]);
  130.    i++;
  131.   }
  132.   delay_1ms(2000);
  133.   write_cmd(0x01);
  134.   lcd_pos2(0,0);                              //第一行
  135.   i=0;
  136. while(dis5[i]!='\0')
  137.   {
  138.    write_dat(dis5[i]);
  139.    i++;
  140.   }
  141. lcd_pos2(1,0);                              //第二行
  142. i=0;
  143. while(dis6[i]!='\0')
  144.   {
  145.    write_dat(dis6[i]);
  146.    i++;
  147.   }
  148. lcd_pos2(2,0);                              //第三行
  149. i=0;
  150. while(dis7[i]!='\0')
  151.   {
  152.    write_dat(dis7[i]);
  153.    i++;
  154.   }
  155. lcd_pos2(3,0);                              //第四行
  156. i=0;
  157. while(dis8[i]!='\0')
  158.   {
  159.    write_dat(dis8[i]);
  160.    i++;
  161.   }
  162. }

  163. /*******主程序*******/
  164. void main()
  165. {
  166.     uchar i;
  167.     wela=0;
  168.     dula=0;
  169.         TMOD=0x01;
  170.         TH0=(65536-45872)/256;
  171.     TL0=(65536-45872)%256;
  172.         EA=1;
  173.         ET0=1;
  174.         TR0=1;
  175.         delay_1ms(10);
  176.         lcd_init();
  177.     shuju();
  178.     quzhi();
  179.     while(1)
  180.      {
  181.        lcd_pos2(2,0);                               //第三行
  182.            i=0;
  183.        while(dis7[i]!='\0')
  184.         {
  185.          write_dat(dis7[i]);
  186.          i++;
  187.         }
  188.        lcd_pos2(1,0);                              //第二行
  189.        i=0;
  190.       while(dis6[i]!='\0')
  191.       {
  192.         write_dat(dis6[i]);
  193.         i++;
  194.       }
  195.     }
  196. }

  197. void T0_time() interrupt 1
  198. {
  199.         TH0=(65536-45872)/256;
  200.     TL0=(65536-45872)%256;
  201.     b++;
  202.     dis7[2]='0'+b;
  203.      if (b>9)
  204.            {
  205.         b=0;
  206.        }
  207.     dis7[3]='0'+b;
  208.      if (b>99)
  209.            {
  210.         b=0;
  211.        }
  212.     dis7[4]='0'+b;
  213.      if (b>999)
  214.            {
  215.         b=0;
  216.        }
  217.     dis6[2]='0'+b;
  218.      if (b>9)
  219.            {
  220.         b=0;
  221.        }
  222.     dis6[3]='0'+b;
  223.      if (b>9)
  224.            {
  225.         b=0;
  226.        }
  227.     dis6[4]='0'+b;
  228.      if (b>9)
  229.            {
  230.         b=0;
  231.        }
  232. }
復制代碼
回復

使用道具 舉報

ID:584814 發表于 2020-9-15 09:33 | 顯示全部樓層
排除硬件肯定是程序問題。帖多少代碼都不表示可以通吃任何12864的屏。
回復

使用道具 舉報

ID:790159 發表于 2020-9-16 10:38 | 顯示全部樓層
調試點陣,先不要顯示文字等信息,先用全黑測試一下,全黑沒有問題了在測試顯示
回復

使用道具 舉報

ID:790159 發表于 2020-9-16 10:39 | 顯示全部樓層
全黑不能顯示,那么重點檢查驅動與液晶屏初始化參數
回復

使用道具 舉報

ID:278457 發表于 2021-12-16 01:07 | 顯示全部樓層
我試過了,也調試了,沒有起到什么用
回復

使用道具 舉報

ID:232791 發表于 2021-12-17 14:12 | 顯示全部樓層
搞點圖片吧,不然還得下載你的rar,多麻煩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区网站 | 国内自拍偷拍一区 | 一区二区中文 | 中文字幕在线观看 | aaa综合国产 | 国产成人福利在线观看 | av一区二区在线观看 | 日日干综合 | 五月激情六月婷婷 | 嫩草91在线| 美人の美乳で授乳プレイ | 成人精品 | 国产精品99视频 | 久久久久久久久淑女av国产精品 | 国产高清一区二区三区 | 国产一级大片 | 国产亚洲高清视频 | 亚洲人成人一区二区在线观看 | 国产一区久久久 | 麻豆av在线免费观看 | 日本一区二区三区在线观看 | 国产成人网 | 日韩黄色小视频 | 日韩视频在线免费观看 | 欧美一级黄色免费看 | 成年人视频在线免费观看 | 在线免费国产视频 | 99精品99| 91精品一区二区三区久久久久久 | 在线观看av免费 | 亚洲伊人久久综合 | 国产精品一区二区三区久久 | 亚洲毛片 | 亚洲一区在线播放 | 国产精品高清在线 | 亚洲一区二区视频 | 在线观看免费高清av | 一级欧美| 奇米久久久 | 日韩欧美国产一区二区 | 久久精品国产久精国产 |