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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 63202|回復: 88
打印 上一主題 下一主題
收起左側

OLED屏驅動程序源碼(各平臺都有) 原理圖 教程等資料下載 學習oled有這個就夠了

  [復制鏈接]
跳轉到指定樓層
樓主
學習oled這個就夠了,oled單片機驅動源碼版本V6.0-S13-SPI

原理圖


下面這些平臺的源碼都有:


下面是例程都是有完整的源碼(包含各種單片機及嵌入式系統的驅動源碼):
(01)OLED_stm32 顯示例程
(02)OLED_XS128 用PA0123
(03)OLED_K60演示
(04)OLED_STC&52
(05)OLED_LQ-XS128用PE2345
(06)OLED_XS128-SPI采用標準SPI總線
(07)OLED_demo52259正式版
(08)OLED_arduino_SPI_例程
(09)OLED_C51系列_SPI_例程
(10)OLED_MSP430系列_SPI_例程
(11)OLED_PIC系列_SPI_例程

資料還包含
OLED裸屏用戶資料\
原理圖\
取模軟件\
程序例程\
OLED 模塊 使用說明.pdf
字模軟件的使用.pdf

下面是教程的部分內容截圖:

資料包里面還有(各種屏的詳細資料):
OLED開發設計說明-研發必讀-100309(1).pdf
SAS1-9046-B UG-2864HSWEG01-Univision.pdf
SSD1306-Revision 1.1 (Charge Pump).pdf
UG-2864HSWEG01 Drawing - 090120B.pdf
UG-2864HSWEG01 user guide.pdf

下面分享個stm32單片機的源碼:

1、該代碼已經經過實測驗證OK
2、單片機采有stm32f103zevt
3、晶振為8M,總線時鐘為24M(/* PLLCLK = 8MHz / 2 * 6 = 24 MHz */),若你的環境與該代碼不一樣,請自行修改spi通信部分延時
4、管腳定義:
//-----------------OLED端口定義----------------                                             

#define LCD_SCL_CLR()        GPIO_ResetBits(GPIOB,GPIO_Pin_1)
#define LCD_SCL_SET()        GPIO_SetBits(GPIOB,GPIO_Pin_1)

#define LCD_SDA_CLR()        GPIO_ResetBits(GPIOB,GPIO_Pin_2)
#define LCD_SDA_SET()        GPIO_SetBits(GPIOB,GPIO_Pin_2)

#define LCD_RST_CLR()        GPIO_ResetBits(GPIOB,GPIO_Pin_3)
#define LCD_RST_SET()        GPIO_SetBits(GPIOB,GPIO_Pin_3)

#define LCD_DC_CLR()        GPIO_ResetBits(GPIOB,GPIO_Pin_4)
#define LCD_DC_SET()        GPIO_SetBits(GPIOB,GPIO_Pin_4)

5、電路連接:
VCC接3.3V,IO口直接單片機,不需要上拉電阻或串聯電阻

6、程序如果沒有調通,液晶是無顯示的,也就是黑屏,請耐心調試,有疑問可以跟我們聯系,謝謝
  1. /*OLED底層驅動
  2. *@采用列行式,分辨率為128*64
  3. *存放格式如下.
  4. *[0]0 1 2 3 ... 127        
  5. *[1]0 1 2 3 ... 127        
  6. *[2]0 1 2 3 ... 127        
  7. *[3]0 1 2 3 ... 127        
  8. *[4]0 1 2 3 ... 127        
  9. *[5]0 1 2 3 ... 127        
  10. *[6]0 1 2 3 ... 127        
  11. *[7]0 1 2 3 ... 127
  12. */
  13. #include "stm32f10x_lib.h"
  14. #include "stdlib.h"
  15. #include "userinc/OLED.h"



  16. #define XLevelL                0x00
  17. #define XLevelH                0x10
  18. #define XLevel                ((XLevelH&0x0F)*16+XLevelL)
  19. #define Max_Column        128
  20. #define Max_Row                  64
  21. #define        Brightness        0xCF


  22. #define X_WIDTH 128
  23. #define Y_WIDTH 64
  24. //======================================
  25. const u8 F6x8[] =
  26. {
  27.     0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ,   // sp
  28.     …………限于本文篇幅 字庫請從51黑電子論壇下載附件…………
  29.     0x14, 0x14, 0x14, 0x14, 0x14, 0x14     // horiz lines
  30. };

  31. const u8 F16x16_Idx[] =
  32. {
  33.         "測距離周長面積度高坡畝儀搜索衛星大小查記錄刪除系統值設單價公頃元詢每電池壓經緯°㎡型號版本剩余空間返回退出"
  34. };

  35. const u8 F16x16[] =
  36. {
  37.         0x10,0x60,0x02,0x8C,0x00,0xFE,0x02,0xF2,0x02,0xFE,0x00,0xF8,0x00,0xFF,0x00,0x00,
  38.         0x04,0x04,0x7E,0x01,0x80,0x47,0x30,0x0F,0x10,0x27,0x00,0x47,0x80,0x7F,0x00,0x00,//測0,
  39.         …………限于本文篇幅 字庫請從51黑電子論壇下載附件…………

  40. };
  41. //======================================================
  42. // 128X64I液晶底層驅動[8X16]字體庫
  43. // 設計者: powerint
  44. // 描  述: [8X16]西文字符的字模數據 (縱向取模,字節倒序)
  45. // !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
  46. //======================================================
  47. const u8 F8X16[]=
  48. {
  49.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 0
  50.         0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,//!1
  51.         …………限于本文篇幅 字庫請從51黑電子論壇下載附件…………

  52. };
  53. /* 生成實心菱形圖標的16*16點陣*/
  54. const u8 nonside[] =
  55. {
  56.         0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0x00,0x00,
  57.         0x00,0x00,0x00,0x01,0x03,0x07,0x0F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00,//◆0,
  58. };

  59. void LCD_WrDat(u8 data)
  60. {
  61.         u8 i=8;
  62.         //LCD_CS=0;;
  63.         LCD_DC_SET();
  64.   LCD_SCL_CLR();
  65.   //asm("nop");   
  66.   while(i--)
  67.   {
  68.     if(data&0x80){LCD_SDA_SET();}
  69.     else{LCD_SDA_CLR();}
  70.     LCD_SCL_SET();
  71.     //asm("nop");;
  72.                 //asm("nop");            
  73.     LCD_SCL_CLR();   
  74.     data<<=1;   
  75.   }
  76.         //LCD_CS=1;
  77. }
  78. void LCD_WrCmd(u8 cmd)
  79. {
  80.         u8 i=8;
  81.         
  82.         //LCD_CS=0;;
  83.         LCD_DC_CLR();
  84.   LCD_SCL_CLR();
  85.   //asm("nop");   
  86.   while(i--)
  87.   {
  88.     if(cmd&0x80){LCD_SDA_SET();}
  89.     else{LCD_SDA_CLR();}
  90.     LCD_SCL_SET();
  91.     //asm("nop");;
  92.                 //asm("nop");            
  93.     LCD_SCL_CLR();   
  94.     cmd<<=1;;   
  95.   }         
  96.         //LCD_CS=1;
  97. }

  98. /*設置起始地址
  99. *Y軸是按8格遞進的,y軸0~63,只能按8格的倍數顯示,
  100. *因為列行式只能按8個字節進行
  101. */
  102. void LCD_Set_Pos(u8 x, u8 y)
  103. {
  104.   LCD_WrCmd(0xb0+(y>>3));
  105.   LCD_WrCmd(((x&0xf0)>>4)|0x10);
  106.   LCD_WrCmd((x&0x0f)|0x01);
  107. }
  108. void LCD_Fill(u8 bmp_data)
  109. {
  110.         u8 y,x;
  111.         
  112.         for(y=0;y<8;y++)
  113.         {
  114.                 LCD_WrCmd(0xb0+y);
  115.                 LCD_WrCmd(0x01);
  116.                 LCD_WrCmd(0x10);
  117.                 for(x=0;x<X_WIDTH;x++)
  118.                         LCD_WrDat(bmp_data);
  119.         }
  120. }
  121. void LCD_CLS(void)
  122. {
  123.         u8 y,x;        
  124.         for(y=0;y<8;y++)
  125.         {
  126.                 LCD_WrCmd(0xb0+y);
  127.                 LCD_WrCmd(0x01);
  128.                 LCD_WrCmd(0x10);
  129.                 for(x=0;x<X_WIDTH;x++)
  130.                         LCD_WrDat(0);
  131.         }
  132. }
  133. //清除一行0-63
  134. void LCD_CLS_y(char y)
  135. {
  136.         u8 x;        
  137.         
  138.         LCD_WrCmd(0xb0+(y>>3));
  139.         LCD_WrCmd(0x01);
  140.         LCD_WrCmd(0x10);
  141.         for(x=0;x<X_WIDTH;x++)
  142.         {
  143.                 LCD_WrDat(0);
  144.         }
  145.         
  146. }

  147. //清除一行上的一塊區域y=0-63
  148. void LCD_CLS_line_area(u8 start_x,u8 start_y,u8 width)
  149. {
  150.         u8 x;        
  151.         
  152.         LCD_WrCmd(0xb0+(start_y>>3));
  153.         LCD_WrCmd(0x01);
  154.         LCD_WrCmd(0x10);
  155.         for(x=start_x;x<width;x++)
  156.         {
  157.                 LCD_WrDat(0);
  158.         }
  159.         
  160. }


  161. void LCD_DLY_ms(u16 ms)
  162. {                        
  163.   u16 a;
  164.   while(ms)
  165.   {
  166.     a=1335;
  167.     while(a--);
  168.     ms--;
  169.   }
  170.   return;
  171. }

  172. void LCD_Init(void)        
  173. {
  174.   //DDRA=0XFF;
  175.   
  176.         LCD_SCL_SET();
  177.         //LCD_CS=1;        //預制SLK和SS為高電平           
  178.         
  179.         LCD_RST_CLR();
  180.         LCD_DLY_ms(50);
  181.         LCD_RST_SET();

  182.   LCD_WrCmd(0xae);//--turn off oled panel
  183.   LCD_WrCmd(0x00);//---set low column address
  184.   LCD_WrCmd(0x10);//---set high column address
  185.   LCD_WrCmd(0x40);//--set start line address  Set Mapping RAM Display Start Line (0x00~0x3F)
  186.   LCD_WrCmd(0x81);//--set contrast control register
  187.   LCD_WrCmd(0xcf); // Set SEG Output Current Brightness
  188.   LCD_WrCmd(0xa1);//--Set SEG/Column Mapping     0xa0左右反置 0xa1正常
  189.   LCD_WrCmd(0xc8);//Set COM/Row Scan Direction   0xc0上下反置 0xc8正常
  190.   LCD_WrCmd(0xa6);//--set normal display
  191.   LCD_WrCmd(0xa8);//--set multiplex ratio(1 to 64)
  192.   LCD_WrCmd(0x3f);//--1/64 duty
  193.   LCD_WrCmd(0xd3);//-set display offset        Shift Mapping RAM Counter (0x00~0x3F)
  194.   LCD_WrCmd(0x00);//-not offset
  195.   LCD_WrCmd(0xd5);//--set display clock divide ratio/oscillator frequency
  196.   LCD_WrCmd(0x80);//--set divide ratio, Set Clock as 100 Frames/Sec
  197.   LCD_WrCmd(0xd9);//--set pre-charge period
  198.   LCD_WrCmd(0xf1);//Set Pre-Charge as 15 Clocks & Discharge as 1 Clock
  199.   LCD_WrCmd(0xda);//--set com pins hardware configuration
  200.   LCD_WrCmd(0x12);
  201.   LCD_WrCmd(0xdb);//--set vcomh
  202.   LCD_WrCmd(0x40);//Set VCOM Deselect Level
  203.   LCD_WrCmd(0x20);//-Set Page Addressing Mode (0x00/0x01/0x02)
  204.   LCD_WrCmd(0x02);//
  205.   LCD_WrCmd(0x8d);//--set Charge Pump enable/disable
  206.   LCD_WrCmd(0x14);//--set(0x10) disable
  207.   LCD_WrCmd(0xa4);// Disable Entire Display On (0xa4/0xa5)
  208.   LCD_WrCmd(0xa6);// Disable Inverse Display On (0xa6/a7)
  209.   LCD_WrCmd(0xaf);//--turn on oled panel
  210.   LCD_Fill(0x00);  //初始清屏
  211.   LCD_Set_Pos(0,0);  
  212.         
  213. }
  214. //==============================================================
  215. //函數名: void LCD_PutPixel(u8 x,u8 y)
  216. //功能描述:繪制一個點(x,y)
  217. //參數:真實坐標值(x,y),x的范圍0~127,y的范圍0~64
  218. //返回:無
  219. //==============================================================
  220. void LCD_PutPixel(u8 x,u8 y)
  221. {
  222.         u8 data1;  //data1當前點的數據
  223.          
  224.     //LCD_Set_Pos(x,y);
  225.         data1 = 0x01<<(y%8);         
  226.         LCD_WrCmd(0xb0+(y>>3));
  227.         LCD_WrCmd(((x&0xf0)>>4)|0x10);
  228.         LCD_WrCmd((x&0x0f)|0x00);
  229.         LCD_WrDat(data1);                  
  230. }
  231. //==============================================================
  232. //函數名: void LCD_Put_Column(u8 x,u8 y,u8 data)
  233. //功能描述:操作一列顯示,一列全顯示0XFF,清除一列0X00;
  234. //參數:真實坐標值(x,y),x的范圍0~127,y的范圍0~64
  235. //返回:無
  236. //==============================================================
  237. void LCD_Put_Column(u8 x,u8 y,u8 data)
  238. {        
  239.         LCD_WrCmd(0xb0+(y>>3));
  240.         LCD_WrCmd(((x&0xf0)>>4)|0x10);
  241.         LCD_WrCmd((x&0x0f)|0x00);
  242.         LCD_WrDat(data);                  
  243. }


  244. //==============================================================
  245. //函數名: void LCD_Rectangle(u8 x1,u8 y1,
  246. //                   u8 x2,u8 y2,u8 color,u8 gif)
  247. //功能描述:繪制一個實心矩形


  248.                   

  249. …………限于本文篇幅 完整源碼請從51黑論壇下載附件…………

復制代碼

全部資料下載:
V6.0-S13-SPI.rar (13.28 MB, 下載次數: 867)

評分

參與人數 8黑幣 +60 收起 理由
sad520ljh + 18 絕世好帖!
ghostjiang_78 + 5 絕世好帖!
lzp17771832625 + 5 共享資料的黑幣獎勵!
tieq1952 + 8 共享資料的黑幣獎勵!
飛飛豬 + 9 共享資料的黑幣獎勵!
LYC666 + 5 很給力!
tina242forever + 5 很給力!
darkly5251 + 5 絕世好帖!

查看全部評分

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

使用道具 舉報

來自 2#
ID:160506 發表于 2017-8-8 11:13 | 只看該作者
垃圾,PIC的程序打開后居然看到
#include "reg52.h"
#include<intrins.h>
#define high 1
#define low 0
/*************Pin Define***************/
sbit RES=P1^2;
sbit DC=P1^3;
sbit SCL=P1^0;
sbit SDA=P1^1;
/****************************************************/
void Initial_LY096BG30();
void Delay_50ms(unsigned int Del_
回復

使用道具 舉報

來自 3#
ID:439460 發表于 2019-1-22 14:50 | 只看該作者
51  SPI程序編譯的時候為什么會提示
Program Size: data=20.0 xdata=0 code=5840
LINK/LOCATE RUN COMPLETE.  2 WARNING(S),  0 ERROR(S)
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
    SEGMENT: ?PR?OLED_DISPLAY_ON?OLED
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
    SEGMENT: ?PR?OLED_DISPLAY_OFF?OLED
*** FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED
    MODULE:  D:\KEIL\C51\LIB\C51S.LIB (-----)
    LIMIT:   0800H BYTES
Target not created
回復

使用道具 舉報

來自 4#
ID:475993 發表于 2019-7-22 23:20 | 只看該作者
???還我黑幣?怎么跟描述的不一樣啊,程序是軟件iic?而且是復制LCD的,連函數名字都不改一下嗎
回復

使用道具 舉報

5#
ID:64765 發表于 2017-4-24 21:01 | 只看該作者
好資料,下載學習。謝了。
回復

使用道具 舉報

6#
ID:64765 發表于 2017-4-24 21:02 | 只看該作者
下載學習,謝了。
回復

使用道具 舉報

7#
ID:206664 發表于 2017-6-1 21:43 來自觸屏版 | 只看該作者
為什么我刷一次屏要20ms?
回復

使用道具 舉報

8#
ID:206954 發表于 2017-6-2 08:47 | 只看該作者
超詳細!
回復

使用道具 舉報

9#
ID:68719 發表于 2017-6-13 09:41 | 只看該作者
樓主威武。謝謝
回復

使用道具 舉報

10#
ID:3212 發表于 2017-6-14 10:36 | 只看該作者
好資料,收藏收藏!
回復

使用道具 舉報

11#
ID:211851 發表于 2017-6-16 14:28 | 只看該作者
謝謝分享,正在學習OLED
回復

使用道具 舉報

12#
ID:216952 發表于 2017-7-4 01:50 | 只看該作者
謝謝分享 ,正好在研究OLED  受用了
回復

使用道具 舉報

13#
ID:91165 發表于 2017-7-4 10:26 | 只看該作者
黑幣扣了電腦出問題了,沒有下載下來IE閃退了

評分

參與人數 1黑幣 +30 收起 理由
admin + 30 補償

查看全部評分

回復

使用道具 舉報

14#
ID:217481 發表于 2017-7-5 21:23 | 只看該作者
不錯,就看看究竟
回復

使用道具 舉報

15#
ID:206167 發表于 2017-7-29 11:58 | 只看該作者
謝樓主
回復

使用道具 舉報

16#
ID:153917 發表于 2017-7-30 21:22 | 只看該作者
太感謝了!謝謝分享!
回復

使用道具 舉報

17#
ID:220174 發表于 2017-8-30 18:14 | 只看該作者
謝了,學習學習
回復

使用道具 舉報

18#
ID:91378 發表于 2017-10-14 22:30 | 只看該作者
收藏OLED驅動
回復

使用道具 舉報

19#
ID:147587 發表于 2017-10-21 23:00 | 只看該作者
不錯了
回復

使用道具 舉報

20#
ID:150856 發表于 2017-11-1 01:56 | 只看該作者
好人啊,最近弄了塊屏正在研究怎么點亮呢。謝謝了。
回復

使用道具 舉報

21#
ID:246166 發表于 2017-11-8 18:35 | 只看該作者
樓主太強了,學習學習
回復

使用道具 舉報

22#
ID:196311 發表于 2017-11-12 17:47 | 只看該作者
這個值得收藏,謝謝啦
回復

使用道具 舉報

23#
ID:183763 發表于 2017-11-13 21:02 | 只看該作者
好文章,收下學習
回復

使用道具 舉報

24#
ID:250950 發表于 2017-11-19 02:12 | 只看該作者
好人啊,解決難題,每個函數都可以用
回復

使用道具 舉報

25#
ID:91165 發表于 2017-11-20 08:52 | 只看該作者
謝謝斑竹,給的補償
回復

使用道具 舉報

26#
ID:252894 發表于 2017-11-23 23:13 | 只看該作者
好資料,學習下……
回復

使用道具 舉報

27#
ID:88406 發表于 2017-11-25 14:14 | 只看該作者
學習一下,謝謝
回復

使用道具 舉報

28#
ID:253710 發表于 2017-11-26 12:23 | 只看該作者
謝謝分享,區域清除是不是有問題啊?起始地址是不是要加上start_x
回復

使用道具 舉報

29#
ID:253898 發表于 2017-12-1 15:02 | 只看該作者
好資料,下載學習。謝了。
回復

使用道具 舉報

30#
ID:47634 發表于 2017-12-6 08:27 | 只看該作者
很好的資料,感謝樓主
回復

使用道具 舉報

31#
ID:258801 發表于 2017-12-7 20:21 | 只看該作者
很不錯。
回復

使用道具 舉報

32#
ID:260185 發表于 2017-12-11 14:57 | 只看該作者
謝謝,非常給力
回復

使用道具 舉報

33#
ID:228697 發表于 2017-12-11 21:20 | 只看該作者
謝謝啦   
回復

使用道具 舉報

34#
ID:74618 發表于 2017-12-13 16:48 | 只看該作者

好資料,下載學習。謝了。
回復

使用道具 舉報

35#
ID:74618 發表于 2017-12-13 16:49 | 只看該作者
感謝樓主分享 !。!
回復

使用道具 舉報

36#
ID:86020 發表于 2017-12-14 15:59 | 只看該作者
謝謝分享,正在學習
回復

使用道具 舉報

37#
ID:266551 發表于 2017-12-25 15:42 | 只看該作者
下載不了,坑了我10黑幣了

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 等一下,剛可能是下的人多 服務停止了

查看全部評分

回復

使用道具 舉報

38#
ID:250287 發表于 2017-12-25 18:12 | 只看該作者
學習了 謝謝
回復

使用道具 舉報

39#
ID:265293 發表于 2017-12-26 11:49 | 只看該作者
正在學習,收下了
回復

使用道具 舉報

40#
ID:253767 發表于 2017-12-26 14:48 | 只看該作者
謝謝分享,正在學習
回復

使用道具 舉報

41#
ID:243748 發表于 2017-12-27 22:15 來自觸屏版 | 只看該作者
收下再學習了
回復

使用道具 舉報

42#
ID:273635 發表于 2018-1-9 10:46 | 只看該作者
樓主威武
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 可以看av的网站 | 青青草免费在线观看视频 | 欧美日韩在线一区 | 中文字幕高清在线 | 日韩在线成人 | 午夜激情网 | 中文字幕在线视频播放 | 日本久久久久久 | 狠狠操天天操 | 五月天婷婷激情 | 欧美 日韩 国产 成人 在线 | 五月天视频 | 国产h在线| 久久久成人精品 | 亚洲天堂影院 | 日韩欧美一级 | 欧美高清一区二区 | 日韩精品三级 | 8x8ⅹ国产精品一区二区 | 免费在线观看黄色片 | 亚洲第一免费视频 | 69er小视频| 黄色大片免费在线观看 | 色婷婷香蕉在线一区二区 | 欧美在线视频一区二区 | 欧美精品在线免费观看 | 亚洲激情偷拍 | 免费黄色av | 一级免费av | 精品国产欧美一区二区三区成人 | 色多多视频在线观看 | 久久久久国产视频 | 国产一区在线视频 | 天天天天天干 | 国产精品成人一区二区三区 | 日韩精品第一页 | 日韩成人一区二区 | 丁香五香天堂网 | 天天干天天色 | 性大毛片视频 | 国产午夜av|