欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 22436|回復(fù): 8
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)lcd12864全屏顯示圖片程序詳解

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:83710 發(fā)表于 2015-6-23 18:44 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本帖最后由 hongniu 于 2015-6-23 18:46 編輯

今天對(duì)軟件做了調(diào)整使能顯示全屏圖像,如下圖示:
11月19日晚于天津四項(xiàng)目部宿舍



原始圖片



轉(zhuǎn)換黑白后:


液晶顯示器顯示:





源程序:
  1. #include<reg51.h>
  2. #define uint unsigned int;
  3. #define uchar unsigned char;
  4. sbit rs=P1^0;//并行模式下為指令數(shù)據(jù)選擇信H/L=指令/數(shù)據(jù)
  5. sbit rw=P1^1;//并行的讀寫(xiě)信號(hào)H/L=讀/寫(xiě)
  6. sbit e=P1^2; //并行下的使能信號(hào)
  7. sbit reset=P1^5;

  8.    uchar x,y;
  9.    uchar datetabal;
  10. uchar d1,d2;//數(shù)據(jù)緩沖
  11. uchar k=0,h=0;
  12. unsigned int i,j;


  13. uchar code tab[]={/*--  調(diào)入了一幅圖像:C:\Users\lenovo\Desktop\是.bmp  --*/
  14. /*--  寬度x高度=128x64  --*/
  15. 0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x00,0x07,0xFF,0xFF,0xFF,
  16. 0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x00,0x03,0xFF,0xFF,0xFF,
  17. 0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,0x01,0xFF,0xFF,0xFF,
  18. 0x7F,0xFF,0xFF,0xFF,0xE1,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0xFF,0xFF,0xFF,
  19. 0x4F,0xFF,0xFF,0xFE,0x00,0x61,0xCF,0xFF,0xF9,0xFF,0xC0,0x00,0x00,0xFF,0xFF,0xFF,
  20. 0x47,0xFF,0xFF,0xF0,0x00,0x40,0xC7,0xFF,0xF8,0xFF,0xC3,0x80,0x70,0x7F,0xFF,0xFF,
  21. 0x47,0xFF,0xFF,0x3E,0x3C,0x04,0x47,0xFF,0xF8,0xFF,0xCF,0xFF,0xFF,0xFF,0xFF,0xFF,
  22. 0x44,0x01,0xE1,0x60,0x60,0x04,0x47,0xE1,0xC0,0xFF,0xFF,0xF7,0xBF,0xFF,0xFF,0xFF,
  23. 0x44,0x00,0xC0,0xC0,0x40,0x18,0x47,0xC0,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  24. 0x44,0x44,0x60,0x44,0x40,0x30,0xC7,0xC6,0x08,0xFF,0xFF,0xFF,0x9F,0xFF,0xFF,0xFF,
  25. 0x44,0x44,0x60,0x44,0x40,0x61,0xC7,0xC7,0x88,0xFF,0xFF,0x3E,0x3F,0xFF,0xFF,0xFF,
  26. 0x44,0x44,0x40,0x44,0x46,0x43,0xC7,0xC7,0x88,0xFF,0xFF,0x9D,0x1F,0xFF,0xFF,0xFF,
  27. 0x44,0x44,0x44,0x04,0x04,0x47,0xC7,0xC4,0x88,0xFF,0xFF,0x3F,0xFF,0xFF,0xFF,0xFF,
  28. 0x44,0x44,0x60,0x00,0x00,0x00,0xC0,0x60,0x40,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  29. 0x66,0x66,0x70,0x60,0x00,0x00,0x60,0x30,0xE0,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,
  30. 0x7F,0xFF,0xFF,0x8C,0x7F,0xC3,0xFF,0xFF,0xFF,0xFF,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF,
  31. 0x7F,0xFF,0xFF,0x80,0x7F,0xF3,0xFF,0xFF,0xFF,0xFF,0xF3,0xFF,0xFF,0xFF,0xFF,0xFF,
  32. 0x7F,0xFF,0xFF,0xB0,0xFE,0x7B,0xFF,0xFF,0xFF,0xFF,0xF0,0x80,0x1B,0xFF,0xFF,0xFF,
  33. 0x7F,0xFF,0xFF,0xBF,0xFF,0xFB,0xFF,0xFF,0xFF,0xF8,0xB0,0x20,0x13,0xEF,0xFF,0xFF,
  34. 0x7F,0xFF,0xFF,0xFF,0x7E,0xFF,0xFF,0xFF,0xFF,0x00,0xFB,0x80,0x03,0xE0,0x1F,0xFF,
  35. 0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x50,0xE0,0x07,0xE8,0x07,0xFF,
  36. 0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,0x00,0x78,0x7E,0xC0,0x03,0xFF,
  37. 0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x1F,0xEE,0xC0,0x01,0xFF,
  38. 0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x07,0xFC,0xC0,0x00,0xFF,
  39. 0x7F,0xFF,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0x80,0x00,0x02,0x03,0xFD,0x80,0x20,0x7F,
  40. 0x7F,0xFF,0xFF,0xF7,0xE1,0xCF,0xFF,0xFF,0x00,0x00,0x01,0x00,0xF9,0x80,0x20,0x3F,
  41. 0x7F,0xFF,0xFF,0xFF,0xE0,0x1F,0xFF,0xFE,0x00,0x00,0x00,0x00,0xF9,0x00,0x20,0x3F,
  42. 0x7F,0xFF,0xFE,0xDE,0x00,0x1F,0xFF,0xFC,0x00,0x00,0x00,0xF9,0xFF,0x00,0x20,0x3F,
  43. 0x7F,0xFF,0xFC,0x0F,0x00,0x00,0x3F,0xF8,0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xE0,0x1F,
  44. 0x7F,0xFF,0xFF,0xF8,0x00,0x00,0x03,0xF0,0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xE0,0x1F,
  45. 0x7F,0xFF,0xFF,0xFF,0xA3,0xE0,0x03,0xE0,0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xE0,0x1F,
  46. 0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xE0,0x1B,
  47. 0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x30,0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xE0,0x11,
  48. 0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x18,0x00,0x03,0xFF,0xFF,0xFC,0x7F,0xE0,0x01,
  49. 0x7F,0xFF,0xC3,0xFF,0xC7,0xFF,0xFE,0x0E,0x00,0x03,0xFF,0xFC,0x00,0x7F,0xE0,0x00,
  50. 0x7F,0xF8,0x03,0xFF,0xC3,0xFF,0xFE,0x06,0x00,0x03,0xFF,0x1E,0x78,0x7F,0xE0,0x01,
  51. 0x7F,0xC0,0x03,0xFF,0xF8,0x07,0xFE,0x07,0x00,0x03,0xFF,0x8E,0x60,0xFF,0xE0,0x07,
  52. 0x7F,0x00,0x03,0xFB,0x00,0x07,0xFC,0x01,0x00,0x03,0xFF,0xC6,0x01,0xFF,0xEE,0x0F,
  53. 0x7F,0x00,0x03,0xF3,0x88,0x7F,0xFC,0x00,0x00,0x0B,0xF0,0x06,0x13,0xFF,0xFF,0xFF,
  54. 0x7F,0x00,0x03,0xF9,0xF1,0xE7,0xFC,0x03,0xE0,0x01,0xF0,0x7E,0x73,0x1F,0x0F,0xFF,
  55. 0x7E,0x00,0x7F,0xFF,0xC0,0x07,0xF7,0x83,0xFF,0x7C,0x7C,0xFE,0x70,0x1F,0x5B,0xFF,
  56. 0x7E,0x01,0xFF,0xFB,0xC0,0x03,0xF7,0xD2,0x7E,0xF1,0x7C,0xFE,0x00,0xFC,0xEF,0xFF,
  57. 0x7C,0x03,0xFF,0xF3,0xF3,0xE3,0xF3,0x40,0xFE,0x88,0xFC,0xFF,0x09,0xFF,0xFF,0xFF,
  58. 0x78,0x03,0xFE,0xF3,0xF2,0x0F,0xE0,0xE0,0x7F,0xE3,0x7C,0xF8,0x39,0xF9,0xF3,0xFF,
  59. 0x60,0x03,0xFD,0xF3,0xF2,0x47,0xE1,0xF8,0x7C,0x83,0xDC,0x00,0x38,0xF9,0xE3,0xFF,
  60. 0x60,0x03,0xD9,0xFF,0xF8,0x47,0xE1,0xF8,0xFE,0x43,0xFC,0x0F,0x38,0xF3,0xE0,0x7F,
  61. 0x40,0xD9,0xE3,0xFE,0x79,0x07,0xC1,0xF0,0xFE,0x05,0xFF,0xFF,0x30,0x73,0xE7,0xFF,
  62. 0x00,0xF2,0x01,0xFE,0x71,0x27,0x80,0xE0,0x7F,0x2C,0xFF,0xFF,0x07,0x03,0xE1,0xFF,
  63. 0x00,0x50,0x03,0xFC,0x72,0x27,0x00,0x00,0x3F,0xF8,0xFF,0xFF,0x0F,0x83,0xE1,0xFF,
  64. 0x01,0x00,0x03,0xFC,0xF2,0x27,0x80,0x00,0x02,0x00,0x7F,0xFF,0xFF,0xFF,0xE3,0xFF,
  65. 0x40,0x00,0x03,0xF1,0xF7,0x30,0x00,0x00,0x10,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
  66. 0x40,0x00,0x03,0xF3,0xFF,0xF8,0x20,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
  67. 0x60,0x00,0x03,0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,
  68. 0x70,0x00,0x03,0xFF,0xFF,0xFF,0xF0,0x00,0x02,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,
  69. 0x78,0x00,0x03,0xFF,0xFF,0xFF,0xA0,0x00,0x02,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,
  70. 0x7C,0x00,0x17,0xFF,0xFF,0xFE,0x80,0x00,0x06,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,
  71. 0x00,0x00,0x7F,0xFF,0xFF,0xFE,0x00,0x00,0x04,0x00,0x1F,0xFE,0xFF,0xFF,0xFF,0xFF,
  72. 0x00,0x00,0x0F,0xFF,0xFF,0xFC,0x00,0x00,0x04,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,
  73. 0x00,0x00,0x07,0xFF,0xFF,0xFC,0x00,0x00,0x04,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,
  74. 0x00,0x00,0x07,0xFF,0xFF,0xFC,0x00,0x00,0x04,0x04,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,
  75. 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,
  76. 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,
  77. 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  78. 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

  79. };


  80. void delay40ms(void)   //誤差 -0.000000000009us
  81. {
  82.     unsigned char ad,bd,cd;
  83.     for(cd=11;cd>0;cd--)
  84.         for(bd=124;bd>0;bd--)
  85.             for(ad=12;ad>0;ad--);
  86. }
  87. void delay4_6ms()//
  88. {
  89. unsigned char av,bv;
  90.     for(bv=12;bv>0;bv--)
  91.         for(av=175;av>0;av--);

  92. }
  93. void delay(void)
  94. {
  95.      ;;;

  96. }

  97. void writedate(unsigned char a)//寫(xiě)數(shù)據(jù)
  98. {
  99.   





  100.    delay4_6ms();
  101.       rs=1;
  102.     delay();
  103.     rw=0;
  104.    delay();
  105.    e=1;
  106.    delay();


  107.    P0=a;
  108.   
  109.   

  110. delay();
  111. e=0;
  112. delay();






  113. }

  114. void writectrl(unsigned char ds)//寫(xiě)指令
  115. {
  116.   rs=0;
  117.    delay();
  118.     rw=0;
  119.   delay();
  120.    e=1;
  121.    delay();
  122. P0=ds;
  123. delay();
  124. e=0;
  125.    delay();
  126.   

  127. }

  128. void main()
  129. {
  130.     reset=0;
  131.     delay();
  132.     reset=1;
  133.     delay40ms();

  134.   writectrl(0x3f);//開(kāi)擴(kuò)充指令操作數(shù)據(jù)位選擇8位
  135.    delay4_6ms();


  136.    writectrl(0x3e);//寫(xiě)指令擴(kuò)充指令操作,8位數(shù)據(jù),繪圖開(kāi)關(guān)關(guān)
  137.   delay4_6ms();

  138.    // writectrl(0x80);//寫(xiě)指令設(shè)置  垂直  列地址 Y軸為  “0”
  139.    //delay4_6ms();
  140.     //writectrl(0x80);//寫(xiě)指令設(shè)置 水平  行地址 X軸  “0”
  141.        //delay4_6ms();
  142.      //writedate(0xffff);  //數(shù)據(jù)寫(xiě)入FffFH
  143.   //delay4_6ms();


  144.    x=0;
  145.    y=0;   //記得初始化啊
  146.    i=0;
  147.    j=0;
  148. for( h=0;h<32;h++  )
  149. {
  150.      x=0;
  151.    for (k=0;k<8;k++)
  152.    {

  153.    
  154.    
  155.    writectrl((0x80+y));//寫(xiě)指令設(shè)置  垂直  列地址 Y軸為  “0”
  156.    delay4_6ms();
  157.     writectrl((0x80+x));//寫(xiě)指令設(shè)置 水平  行地址 X軸  “0”
  158.        delay4_6ms();     
  159.   writedate(tab[i]);  //數(shù)據(jù)寫(xiě)入FFH
  160.         i++;  // i是用來(lái)當(dāng)指針用的 其實(shí)這里也可以換成指針,我喜歡這樣所以。。。
  161.   writedate(tab[i]);  //數(shù)據(jù)寫(xiě)入FFH
  162.   delay4_6ms();
  163.      i++; //
  164.    
  165.      x++;//
  166.   
  167.     }

  168.     y++; //只有行掃了8個(gè)字,才可以加以,因?yàn)?個(gè)字節(jié)正好是一行,這就是下一列的呵呵







  169.   
  170. }

  171. //;***********以上是上半屏(Y=0-1F,X=0-07)以下是下扳平Y(jié)=8-0F X=0-1F********************************
  172. x=0;y=0;//這里XY清零是因?yàn)橄掳肫潦菑?8H開(kāi)始的,而上半屏是從80H開(kāi)始的其實(shí)這里就是用到了上邊的,只是改了個(gè)水平坐標(biāo)值,垂直坐標(biāo)還是從0-31
  173. for( h=0;h<32;h++  )
  174. {
  175.      x=0;
  176.    for (k=0;k<8;k++)
  177.    {

  178.    
  179.    
  180.    writectrl((0x80+y));//:/寫(xiě)指令設(shè)置  垂直  列地址 Y軸為  “0”
  181.    delay4_6ms();
  182.     writectrl((0x88+x));//寫(xiě)指令設(shè)置 水平  行地址 X軸  “0”
  183.        delay4_6ms();     
  184.    writedate(tab[i]);  //數(shù)據(jù)寫(xiě)入FFH
  185.          i++;
  186.    writedate(tab[i]);  //數(shù)據(jù)寫(xiě)入FFH
  187.   
  188.   delay4_6ms();
  189.          i++;
  190.      x++;
  191.   
  192.     }

  193.     y++;







  194.   
  195. }

  196.   




  197. while(1);  //*******************************************************
  198.             //12864到今晚我也成功了,呵呵,我是這樣的:把12864分成兩部分,上半部分12832,下半部分12832
  199.       //然后用掃描的辦法從第一行開(kāi)始掃描,知道32行,在執(zhí)行下半部分掃描程序,第33行開(kāi)始,掃描32行道64至
  200.       //這里還要說(shuō)一個(gè)事:關(guān)于12864畫(huà)圖,你看那大海,水很多,但是它是由一滴滴水組成的,所以要想在12864屏幕上顯示一幅圖像,你就要
  201.       //從一個(gè)點(diǎn)開(kāi)始,第一步我讓第一行的第一列顯示一個(gè)點(diǎn),怎么實(shí)現(xiàn)呢?我開(kāi)始很是不明白,看了一天的手冊(cè),一下午的實(shí)驗(yàn),終于總結(jié)出
  202.       //1:向7920的寫(xiě)入3F和3E指令,使液晶工作在擴(kuò)展指令狀態(tài),8位數(shù)據(jù),繪圖開(kāi)關(guān)開(kāi)2:設(shè)定繪圖RAM地址,先寫(xiě)入列(Y軸)再寫(xiě)入行(X軸)
  203.       //然后再一口氣寫(xiě)入16位的數(shù)據(jù),也可以寫(xiě)8位,但要寫(xiě)2次,我是采取后者,然后這十六是什么呢?---即這樣的排列D15-D0,讓第一個(gè)點(diǎn)就寫(xiě)入8000H
  204.       //那么,現(xiàn)在就是在第一行第一列顯示一個(gè)點(diǎn)!呵呵,會(huì)寫(xiě)一個(gè)點(diǎn),你就一定會(huì)寫(xiě)一幅圖像了,為什么呢,你只要讓單片機(jī)這樣重復(fù)的寫(xiě)512個(gè)字就是有一幅
  205.       //12864的圖像了,這其實(shí)說(shuō)白了就是點(diǎn)陣啊----------



  206.       //呵呵,2010年11月17日  與天津開(kāi)發(fā)區(qū)第四項(xiàng)目部宿舍,操今天給分包隊(duì)干了一天的活,很郁悶,但是有單片機(jī)真的讓我開(kāi)心起來(lái)
  207.       //
  208.       //
  209.       //
  210.       //
  211.       //
  212.       //
  213.       //
  214.       ///
  215.       //***************************************************8

  216. }
復(fù)制代碼



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

使用道具 舉報(bào)

沙發(fā)
ID:104295 發(fā)表于 2016-1-24 16:03 | 只看該作者
怎么轉(zhuǎn)成那種黑白圖的,圖片格式用什么轉(zhuǎn)的?我用的ps還是不行
回復(fù)

使用道具 舉報(bào)

板凳
ID:234782 發(fā)表于 2018-4-21 04:06 | 只看該作者
學(xué)習(xí)了
謝謝樓主的分享
回復(fù)

使用道具 舉報(bào)

地板
ID:222006 發(fā)表于 2018-5-22 15:30 | 只看該作者
額,可能是仿真的問(wèn)題吧,proteus做出來(lái)一直報(bào)錯(cuò)
回復(fù)

使用道具 舉報(bào)

5#
無(wú)效樓層,該帖已經(jīng)被刪除
6#
ID:505433 發(fā)表于 2019-7-12 16:25 | 只看該作者
xian327 發(fā)表于 2016-1-24 16:03
**** 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽 ****

用圖片取模軟件
回復(fù)

使用道具 舉報(bào)

7#
ID:505433 發(fā)表于 2019-7-12 16:26 | 只看該作者
真實(shí),好貼,感謝樓主分享
回復(fù)

使用道具 舉報(bào)

8#
ID:958114 發(fā)表于 2021-8-1 15:55 | 只看該作者
我用這個(gè)程序燒到單片機(jī),12864為啥是空的,啥也沒(méi)顯示

回復(fù)

使用道具 舉報(bào)

9#
ID:328014 發(fā)表于 2021-8-1 15:57 | 只看該作者
xdda 發(fā)表于 2021-8-1 15:55
我用這個(gè)程序燒到單片機(jī),12864為啥是空的,啥也沒(méi)顯示

因?yàn)槟愕碾娐泛妥髡叩碾娐凡煌?屏的具體型號(hào)也應(yīng)該不同,肯定不能顯示啊
回復(fù)

使用道具 舉報(bào)

10#
ID:398219 發(fā)表于 2022-9-29 09:54 | 只看該作者
通過(guò)修改可以顯示圖片了,但是想在液晶串口要顯示,要怎么修改程序呀,求指導(dǎo)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表