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

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

QQ登錄

只需一步,快速開始

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

I2C SSD1306 OLED的說明資料及51單片機(jī)example代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:239657 發(fā)表于 2017-10-21 15:38 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
關(guān)于SSD1306基礎(chǔ)example 以及調(diào)色設(shè)置。
望采納~



所有資料51hei提供下載:
0.96-IIC參考.rar (2.33 MB, 下載次數(shù): 99)

單片機(jī)源程序如下:
  1. //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  2. #include <at89x51.h>
  3. //#include <reg52.h>
  4. #include <intrins.h>



  5. #define Uchar unsigned char
  6. #define Uint  unsigned int
  7. #define Ulong unsigned long
  8. #define uchar unsigned char
  9. #define uint  unsigned int


  10. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  11. //  Pin Definition
  12. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


  13. //0.66bule
  14. #define RES3        P3_0                                // Reset   
  15. #define SCL3        P3_1                                // Serial Clock Input
  16. #define SDA3        P3_2                                // Serial Data Input


  17. code color13[]={
  18. /*------------------------------------------------------------------------------
  19. ;  源文件 / 文字 : C:\Documents and Settings\Administrator\桌面\新建文件夾 (2)\logo.bmp字模
  20. ;  寬×高(像素): 128×64
  21. ------------------------------------------------------------------------------*/
  22. //0x80,0x40,0x10,//寬的像素?cái)?shù),高的像素?cái)?shù),寬的字節(jié)數(shù),參數(shù)設(shè)置可選
  23. 0xFF,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,

  24. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………

  25. 0x00,0x3F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,0x00,0x0F,0x10,0x20,0x20,0x20,0x11,
  26. 0x08,0x00,0x00,0x20,0x38,0x27,0x02,0x02,0x02,0x27,0x38,0x20,0x00,0x00,0x20,0x3F,
  27. 0x20,0x20,0x20,0x20,0x10,0x0F,0x00,0x00,0x07,0x18,0x20,0x20,0x20,0x20,0x10,0x0C,
  28. };

  29. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  30. void         delay_ms(Uint t)
  31. {
  32.         Uchar i,j;
  33.         while(--t)
  34.         {
  35.         i=50;        
  36.         j=100;

  37.                 while(--j)
  38.                         while(--i);
  39.         }
  40. }
  41. void uDelay(Uchar l)
  42. {
  43.         while(l--);
  44. }


  45. void Delay(Uchar n)
  46. {
  47. Uchar i,j,k;

  48.         for(k=0;k<n;k++)
  49.         {
  50.                 for(i=0;i<131;i++)
  51.                 {
  52.                         for(j=0;j<15;j++)
  53.                         {
  54.                                 uDelay(203);        
  55.                         }
  56.                 }
  57.         }
  58. }


  59. //****************************************************************************
  60. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  61. //  Read/Write Sequence
  62. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  63. void I2C_3(Uchar mcmd)
  64. {
  65. Uchar length = 8;                        // Send Command

  66.         while(length--)
  67.         {
  68.                 if(mcmd & 0x80)
  69.                 {
  70.                         SDA3=1;
  71.                 }
  72.                 else
  73.                 {
  74.                         SDA3=0;
  75.                 }
  76. //                uDelay(3);
  77.                 SCL3=1;
  78. //                uDelay(3);
  79.                 SCL3=0;
  80. //                uDelay(3);
  81.                 mcmd = mcmd << 1;
  82.         }
  83. }


  84. void I2C_Ack3()
  85. {
  86.         SDA3=1;
  87. //        uDelay(3);
  88.         SCL3=1;
  89. //        uDelay(3);
  90.         SCL3=0;
  91. //        uDelay(3);
  92. }


  93. void I2C_NAck3()
  94. {
  95.         SDA3=0;
  96. //        uDelay(3);
  97.         SCL3=1;
  98. //        uDelay(3);
  99.         SCL3=0;
  100. //        uDelay(3);
  101. }


  102. void I2C_Start3()
  103. {
  104.         SDA3=0;
  105. //        uDelay(3);
  106.         SCL3=1;
  107. //        uDelay(3);
  108.         SCL3=0;
  109. //        uDelay(3);
  110.         I2C_3(0x78);
  111.         I2C_Ack3();
  112. }


  113. void I2C_Stop3()
  114. {
  115.         SCL3=1;
  116. //        uDelay(5);
  117.         SDA3=0;
  118. //        uDelay(5);
  119.         SDA3=1;
  120. //        uDelay(5);
  121. }


  122. void Write_Command3(Uchar Data)
  123. {
  124.         I2C_Start3();
  125.         I2C_3(0x00);
  126.         I2C_Ack3();
  127.         I2C_3(Data);
  128.         I2C_Ack3();
  129.         I2C_Stop3();
  130. }


  131. void Write_Data3(Uchar Data)
  132. {
  133.         I2C_Start3();
  134.         I2C_3(0x40);
  135.         I2C_Ack3();
  136.         I2C_3(Data);
  137.         I2C_Ack3();
  138.         I2C_Stop3();
  139. }
  140. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  141. void        LCD_Init3(void)
  142. {
  143. RES3=0;
  144. //uDelay(2);
  145. RES3=1;
  146. //internal setting


  147. Write_Command3(0xae);        //--turn off oled panel

  148. Write_Command3(0x00);        //--set low column address
  149. Write_Command3(0x10);        //--set high column address

  150. Write_Command3(0x40);        //--set start line address

  151. Write_Command3(0xb0);        //--set page address

  152. Write_Command3(0x81);        //--set contrast control register
  153. Write_Command3(0xff);

  154. Write_Command3(0xa1);        //--set segment re-map 127 to 0   a0:0 to seg127
  155. Write_Command3(0xa6);        //--set normal display

  156. Write_Command3(0xc9);        //--set com(N-1)to com0  c0:com0 to com(N-1)

  157. Write_Command3(0xa8);        //--set multiples ratio(1to64)
  158. Write_Command3(0x3f);        //--1/64 duty

  159. Write_Command3(0xd3);        //--set display offset
  160. Write_Command3(0x00);        //--not offset

  161. Write_Command3(0xd5);        //--set display clock divide ratio/oscillator frequency
  162. Write_Command3(0x80);        //--set divide ratio

  163. Write_Command3(0xd9);        //--set pre-charge period
  164. Write_Command3(0xf1);

  165. Write_Command3(0xda);        //--set com pins hardware configuration
  166. Write_Command3(0x12);

  167. Write_Command3(0xdb);        //--set vcomh
  168. Write_Command3(0x40);

  169. Write_Command3(0x8d);        //--set chare pump enable/disable
  170. Write_Command3(0x14);        //--set(0x10) disable
  171. //Write_Command3(0x10);        //--set(0x10) disable
  172. Write_Command3(0xaf);        //--turn on oled panel
  173. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=void         LCD_Init(void)
  174. }


  175. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  176. void pic13(void)
  177. {
  178.         Uchar i,j;
  179.         Uint k;
  180.         k=0;
  181.         for(j=0;j<8;j++)
  182.         {
  183.                 Write_Command3(0x22);//--set page1
  184.                 Write_Command3(j);//--set start page
  185.                 Write_Command3(0x07);//--set end page

  186.                  for(i=0;i<128;i++)                                                  //顯示單色數(shù)據(jù)到LCD
  187.                 {
  188.                         Write_Data3(color13[k]);
  189.                         k=k+1;
  190.                
  191.                 }
  192.         }
  193. }


  194. void pic14(void)
  195. {
  196.         Uchar i,j;
  197.         Uint k;
  198.         k=0;
  199.         for(j=0;j<8;j++)
  200.         {
  201.                 Write_Command3(0x22);//--set page1
  202.                 Write_Command3(j);//--set start page
  203.                 Write_Command3(0x07);//--set end page

  204.                  for(i=0;i<128;i++)                                                  //顯示單色數(shù)據(jù)到LCD
  205.                 {
  206.                         Write_Data3(color14[k]);
  207.                         k=k+1;
  208.                
  209.                 }
  210.         }
  211. }
  212.                         
  213. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  214. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  215. void main()
  216. {

  217.         LCD_Init3();

  218.         while(1)

  219.         {   
  220.                 pic13();
  221.                 delay_ms(10);
  222.                 pic14();
  223.                 delay_ms(10);

  224.         }
  225. }
復(fù)制代碼



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

使用道具 舉報(bào)

沙發(fā)
ID:343810 發(fā)表于 2018-6-3 05:15 | 只看該作者
感謝,正需要
回復(fù)

使用道具 舉報(bào)

板凳
ID:476495 發(fā)表于 2019-2-14 14:59 | 只看該作者
正需要
回復(fù)

使用道具 舉報(bào)

地板
ID:518223 發(fā)表于 2020-3-1 17:44 | 只看該作者
頭文件,附件里面沒有,能發(fā)一下完整的代碼嗎?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日本精a在线观看 | 久久久久久久电影 | 日韩精品一区二区三区在线观看 | 国产精品一区二区在线播放 | 免费观看羞羞视频网站 | 欧美色图综合网 | 日韩精品一区二区三区中文在线 | 免费黄色片视频 | 欧美成人精品一区二区三区 | 国产视频第一页 | 蜜桃特黄a∨片免费观看 | 亚洲一区中文字幕在线观看 | 亚洲精品一区二区三区在线 | 午夜久久久久久久久久一区二区 | 国产黄色大片 | 国产高清视频一区二区 | 天堂一区二区三区 | 成人一区精品 | 男人电影天堂 | 久久久久国产一区二区三区四区 | 国产欧美日韩综合精品一 | 国产精品3区 | 特级一级黄色片 | 亚洲国产精品自拍 | 日韩一区二区三区av | a在线v| 欧美 日韩 国产 成人 | 91就要激情 | 欧美韩一区二区三区 | 日本在线中文 | 国产精品永久久久久久久www | 精品一区二区久久久久久久网站 | 五月激情婷婷六月 | 成人免费看电影 | 欧美中文字幕一区二区三区亚洲 | 综合久久色 | 天天看天天爽 | 精品国产亚洲一区二区三区大结局 | 国产色在线| 日本成人在线免费视频 | 欧美中文 |