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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3048|回復: 0
打印 上一主題 下一主題
收起左側(cè)

簡單的LCD漢字顯示程序 按鍵按下顯示字符(不帶只讀 有仿真)

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:142974 發(fā)表于 2016-10-16 23:51 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
簡單的LCD漢字顯示程序附帶仿真程序和C文件,按下按鈕就可以顯示下面的字符.下面是原理圖:


仿真工程文件下載:
漢字顯示程序.rar (35.84 KB, 下載次數(shù): 27)

源程序:
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar code tab1[]={//簡單漢字顯示程序
  5. 0x08,0x04,0xC3,0x12,0x26,0x8A,0xA2,0xAA,0xA4,0xA3,0x22,0x26,0xEA,0x02,0x02,0x00,
  6. 0x00,0x00,0xFF,0x00,0x00,0x3F,0x24,0x24,0x24,0x3F,0x00,0x80,0xFF,0x00,0x00,0x00,
  7. 0x00,0x00,0xF8,0x49,0x4A,0x4C,0x48,0xF8,0x48,0x4C,0x4A,0x49,0xF8,0x00,0x00,0x00,
  8. 0x10,0x10,0x13,0x12,0x12,0x12,0x12,0xFF,0x12,0x12,0x12,0x12,0x13,0x10,0x10,0x00,
  9. 0x10,0x60,0x02,0x0C,0xC0,0x02,0x1E,0xE2,0x02,0x02,0x02,0xE2,0x1E,0x00,0x00,0x00,
  10. 0x04,0x04,0x7C,0x03,0x80,0x80,0x40,0x20,0x13,0x0C,0x13,0x20,0x40,0x80,0x80,0x00,
  11. 0x10,0x0C,0x04,0x24,0x24,0x24,0x25,0x26,0xA4,0x64,0x24,0x04,0x04,0x14,0x0C,0x00,
  12. 0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,
  13. 0x00,0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00,0x00,
  14. 0x40,0x42,0x44,0x58,0x40,0x7F,0x40,0x40,0x40,0x7F,0x40,0x50,0x48,0x46,0x40,0x00,
  15. 0x40,0x40,0x42,0x42,0x42,0x42,0x42,0xC2,0x42,0x42,0x42,0x42,0x42,0x40,0x40,0x00,
  16. 0x20,0x10,0x08,0x06,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x02,0x04,0x08,0x30,0x00,
  17. 0x24,0x24,0xA4,0xFE,0x23,0x22,0x00,0x3E,0x22,0x22,0x22,0x22,0x22,0x3E,0x00,0x00,
  18. 0x08,0x06,0x01,0xFF,0x01,0x06,0x40,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x41,0x00,
  19. 0x00,0x00,0xFC,0x04,0x04,0x04,0x14,0x15,0x56,0x94,0x54,0x34,0x14,0x04,0x04,0x00,
  20. 0x40,0x30,0x0F,0x00,0x01,0x01,0x01,0x41,0x81,0x7F,0x01,0x01,0x01,0x05,0x03,0x00

  21. };
  22. uchar code tab2_1[]={ //abcdefgh ijklmnop


  23. 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,
  24. 0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,
  25. 0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,
  26. 0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,
  27. 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,
  28. 0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,
  29. 0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00,
  30. 0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,
  31. 0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,
  32. 0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,
  33. 0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00,
  34. 0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,
  35. 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,
  36. 0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,
  37. 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,
  38. 0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00,

  39. };
  40. uchar code tab2_2[]={//qrstuvwx yz
  41. 0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80,
  42. 0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,
  43. 0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00,
  44. 0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,
  45. 0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20,
  46. 0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00,
  47. 0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00,
  48. 0x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00,
  49. 0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00,
  50. 0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00,
  51. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  52. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  53. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  54. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  55. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  56. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  57. };
  58. uchar code tab2_3[]={//0123456789

  59. 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,
  60. 0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,
  61. 0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,
  62. 0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,
  63. 0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,
  64. 0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,
  65. 0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,
  66. 0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,
  67. 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,
  68. 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,
  69. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  70. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  71. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  72. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  73. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  74. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,


  75. };






  76. sbit  RST=P2^5;
  77. sbit  E=P2^4;
  78. sbit  RW=P2^3;
  79. sbit  RS=P2^2;
  80. sbit  CS2=P2^1;
  81. sbit  CS1=P2^0;
  82. sbit  K0=P1^0;
  83. sbit  K1=P1^1;
  84. sbit  K2=P1^2;
  85. uchar b,n,m;
  86. void Delay(uchar ms){
  87.         uchar i;
  88.         for(;ms>0;ms--)
  89.                 for(i=120;i>0;i--);
  90. }
  91. void Check_busy()
  92. {
  93.         uchar a;
  94.         RW=1;
  95.         RS=0;
  96.         E=1;
  97.         while(1)
  98.         {
  99.                 E=0;
  100.                 if(!(P0&0x80))
  101.                         break;
  102.                 E=1;
  103.                 a++;
  104.                 if(a>10)
  105.                         break;
  106.         }
  107. }
  108. void Write_inst(uchar inst)
  109. {
  110.         Check_busy();
  111.         RS=0;
  112.         RW=0;
  113.         E=1;
  114.         P0=inst;
  115.         E=0;
  116. }
  117. void Write_data(uchar dat)
  118. {
  119.         Check_busy();
  120.         RS=1;
  121.         RW=0;
  122.         E=1;
  123.         P0=dat;
  124.         E=0;
  125. }
  126. void Chip_select(uchar p)
  127. {
  128.         if(p==0){
  129.                 CS1=0;
  130.                 CS2=0;
  131.                 }
  132.         else if(p==1){
  133.                 CS1=0;
  134.                 CS2=1;
  135.                 }
  136.         else if(p==2){
  137.                 CS1=1;
  138.                 CS2=0;
  139.                 }
  140.         else{
  141.                 CS1=1;
  142.                 CS2=1;
  143.                 }
  144. }
  145. void display1(uint opt,uint line,uint list,uchar a,uchar s)//字符顯示程序
  146. {       
  147.         uint i;
  148.         uchar temp;
  149.         Chip_select(opt);
  150.         s=s*16;   //16個字符為一組
  151.         Write_inst(0xb8+line*1); //1頁為8   2頁為16 display(1,0,0,0);display(1,1,4,8);display(1,1,5,9);
  152.         Delay(100);   
  153.         Write_inst(0x40+list*8); //一次掃描16列  
  154.         for(i=0;i<8;i++){
  155.                 if(a==0){
  156.                         temp=tab2_1[s];//a=0輸出abcdefgh ijklmnop
  157.                 }
  158.                 else if(a==1){
  159.                         temp=tab2_2[s];//a=1輸出qrstuvwx yz
  160.                 }
  161.                 else if(a==2){
  162.                         temp=tab2_3[s];//a=2輸出0123456789
  163.                 }
  164.                
  165.                 Write_data(temp); //查表格
  166.                 s++;
  167.         }
  168.         Write_inst(0xb8+line*1+1); //下半頁
  169.         Delay(100);
  170.         Write_inst(0x40+list*8);  //一次掃描16列
  171.                 for(i=0;i<8;i++){
  172.                 if(a==0){
  173.                         temp=tab2_1[s];//a=0輸出19941002
  174.                 }
  175.                 else if(a==1){
  176.                         temp=tab2_2[s];//a=1輸18450087636
  177.                 }
  178.                 else if(a==2){
  179.                         temp=tab2_3[s];//a=2輸出0123456789
  180.                 }
  181.                 Write_data(temp); //查表格
  182.                 s++;
  183.        
  184. }
  185.                    }
  186. void display2(uint opt,uint line,uint list,uchar a,uchar s){        //漢字顯示程序
  187.         uint i;
  188.         uchar temp;
  189.         Chip_select(opt);
  190.         s=s*32;   //每32個字符為一組
  191.         Write_inst(0xb8+line*2);
  192.         Write_inst(0x40+list*16);
  193.         for(i=0;i<16;i++){
  194.                 if(a==0)     {//簡單漢字顯示程序
  195.                         temp=tab1[s];
  196.                 }
  197.                 Write_data(temp); //查表格
  198.                 s++;
  199.         }
  200.         Write_inst(0xb8+line*2+1); //下半頁
  201.         Delay(100);
  202.         Write_inst(0x40+list*16);  //一次掃描16列
  203.         for(i=0;i<16;i++)  {     
  204.         if(a==0)     {//簡單漢字顯示程序
  205.                         temp=tab1[s];
  206.                 }
  207.                 Write_data(temp); //查表格
  208.                 s++;
  209.         }
  210. }
  211. void Read_data(uchar dat)
  212. {
  213.         Check_busy();
  214.         RS=1;
  215.         RW=1;
  216.         E=1;
  217.         P0=dat;
  218.         E=0;
  219. }
  220. void clear_screen()
  221. {
  222.      uint i,j;
  223.          Chip_select(0);
  224.          for(i=0xb8;i<0xc0;i++){
  225.          Write_inst(i);
  226.          Write_inst(0x40);
  227.          for(j=0;j<64;j++)
  228.          {
  229.             Write_data(0);
  230.                 }
  231.         }
  232. }
  233. void Init_lcd()
  234. {
  235.         Write_inst (0x3f);
  236.         Delay(4);
  237.         Write_inst (0xc0);
  238.         Delay(10);
  239.         Write_inst (0xb8);
  240.         Delay(10);
  241.         Write_inst (0x40);
  242.         Delay(10);
  243. }
  244. void main(){

  245.                 while(1)  {


  246. if(K0==0){Init_lcd();
  247. clear_screen();}
  248. if(K1==0){        Init_lcd();
  249.         clear_screen();
  250.   
  251.   
  252. for(n=0;n<4;n++){ display2(1,0,n,0,n);
  253.         display2(2,0,n,0,4+n);         }          

  254. for(n=0;n<8;n++){ display1(1,2,n,0,n);
  255.         display1(2,2,n,0,8+n);         }

  256. for(n=0;n<8;n++){ display1(1,4,n,1,n);
  257.         display1(2,4,n,1,8+n);         }
  258. for(n=0;n<8;n++){ display1(1,6,n,2,n);
  259.         display1(2,6,n,2,8+n);         }

  260.         Init_lcd();
  261. /*        display2(1,1,0,0,0);          
  262.         display2(1,1,1,0,1);
  263.         display2(1,2,2,0,2);       
  264.         display2(1,2,3,0,3);       
  265.         display2(1,2,4,0,4);
  266.         display2(1,2,5,0,5);
  267.         display2(1,2,6,0,6);
  268.         display2(1,2,7,0,7);        */

  269.         }

  270.          }          }               
復制代碼


評分

參與人數(shù) 2黑幣 +55 收起 理由
a1162677273 + 5 共享資料的黑幣獎勵!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线免费观看成人 | 久草电影网 | 国产一区二区三区 | 亚洲高清在线观看 | 黄色大片视频 | 午夜在线视频 | 精品成人 | 欧美成人免费在线 | 国产精品久久久久久久久久尿 | 97久久精品午夜一区二区 | 精品一区二区三区中文字幕 | 国产精品色综合 | 美女爽到呻吟久久久久 | 91精品国产综合久久久密闭 | 狠狠干av| 中文字幕一级毛片视频 | 中文字幕av在线播放 | 免费美女网站 | 国产精品一区二区三区在线 | 欧美精品一二三 | 国产精品美女久久久久aⅴ国产馆 | 国产美女精品视频 | 国产精品网址 | 精品日韩一区 | 免费观看av网站 | 黄色毛片一级 | 午夜精品一区二区三区在线观看 | 日韩成人 | 欧美黄色精品 | 中文字幕日韩一区 | 91欧美精品成人综合在线观看 | a级性视频| 久久久久久国模大尺度人体 | 欧美精品一区二区在线观看 | 精品国产一区二区三区久久影院 | 日韩欧美一区二区在线播放 | 国产精品久久久久久久久久久久久久 | 日韩一三区 | 国产高清在线精品一区二区三区 | 日本三级电影在线观看视频 | 一级黄色夫妻生活 |