找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 11727|回复: 14
收起左侧

SSD1306 OLED驱动程序和资料下载 带pcb做成了12864的转接接口

  [复制链接]
ID:140725 发表于 2016-10-20 21:23 | 显示全部楼层 |阅读模式
SSD1306 OLED做成了12864的液晶接口,下面是所有资料下载:
OLED12864 pcb文件.rar (452.6 KB, 下载次数: 170)
OLED裸屏用户资料.rar (2.76 MB, 下载次数: 86)
SSD1306 OLED程序.zip (3.99 KB, 下载次数: 124)

用了这个12864转接板以后,可以直接插入单片机开发板的12864接口来驱动这个SSD1306 OLED
下面是pcb图:
0.png 0.png 0.png

SSD1306 OLED源程序预览:
  1. #include "oled.h"
  2. #include "AsciiLib.h"
  3. #include "HzLib.h"


  4. #define     XLevelL                    0x00
  5. #define     XLevelH                    0x10
  6. #define     XLevel                    ((XLevelH&0x0F)*16+XLevelL)
  7. #define     Max_Column            128
  8. #define     Max_Row                    64
  9. #define            Brightness            0xCF



  10. #define     X_WIDTH         128
  11. #define     Y_WIDTH         64
  12. #define                Page                        8
  13. void OLED_WB(uint8_t data)
  14. {
  15.     /* Loop while DR register in not emplty */
  16.     while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
  17.     /* Send byte through the SPI2 peripheral */
  18.     SPI_I2S_SendData(SPI1, data);
  19. }
  20. /*******************一个字节数据写入***********************/
  21. void LCD_WrDat(unsigned char dat)
  22. {
  23.     OLED_DC_H;
  24.         OLED_WB(dat);
  25. }

  26. /********************一条指令写入**********************/
  27. void LCD_WrCmd(unsigned char cmd)
  28. {
  29.     OLED_DC_L;
  30.     OLED_WB(cmd);
  31. }

  32. /**********************设置显示位置**********************/
  33. void LCD_Set_Pos(unsigned char x, unsigned char y)
  34. {
  35.         /* Page addressing mode */
  36.     LCD_WrCmd(0xb0+(y&0x07));/* set page start address */
  37.     LCD_WrCmd(x&0x0f);/* set lower nibble of the column address */
  38.     LCD_WrCmd(((x&0xf0)>>4)|0x10); /* set higher nibble of the column address */
  39. }

  40. /**********************写满屏数据**********************/
  41. void LCD_Fill(unsigned char bmp_dat)
  42. {
  43.         unsigned char y,x;

  44.     LCD_WrCmd(0x20);//-Set Page Addressing Mode (0x00/0x01/0x02)
  45.     LCD_WrCmd(0x00);//

  46.         LCD_WrCmd(0x21);//-Set Column Address
  47.         LCD_WrCmd(0x00);
  48.         LCD_WrCmd(0x7f);

  49.         LCD_WrCmd(0x22);//-Set Page Address
  50.         LCD_WrCmd(0x00);
  51.         LCD_WrCmd(0x07);

  52.         LCD_DLY_ms(1);/* 等待内部稳定   */

  53.     for(y=0;y<Page;y++)
  54.     {
  55.             for(x=0;x<X_WIDTH;x++)
  56.             {
  57.                     LCD_WrDat(bmp_dat);
  58.             }
  59.     }
  60. //    LCD_WrCmd(0xaf);//--turn off oled panel
  61. }

  62. /*********************清屏函数***********************/
  63. void LCD_CLS(void)
  64. {
  65.         unsigned char y,x;
  66.         for(y=0;y<8;y++)
  67.         {
  68.                 LCD_WrCmd(0xb0+y);
  69.                 LCD_WrCmd(0x01);
  70.                 LCD_WrCmd(0x10);
  71.                 for(x=0;x<X_WIDTH;x++)
  72.                 LCD_WrDat(0);
  73.                 LCD_DLY_ms(200);
  74.         }
  75. }

  76. /*********************延时函数***********************/
  77. void LCD_DLY_ms(unsigned int ms)
  78. {
  79.     unsigned int a;
  80.     while(ms)
  81.     {
  82.         a=1335;
  83.         while(a--);
  84.         ms--;
  85.     }
  86.     return;
  87. }


  88. /*********************12864初始化***********************/
  89. void LCD_Init(void)
  90. {
  91.         OLED_RST_L;
  92.         LCD_DLY_ms(50);
  93.         OLED_RST_H;
  94.         //从上电到下面开始初始化要有足够的时间,即等待RC复位完毕

  95.     LCD_WrCmd(0xae);//--turn off oled panel

  96.     LCD_WrCmd(0xa8);//--set multiplex ratio(1 to 64)
  97.     LCD_WrCmd(0x3f);//--1/64 duty
  98.     LCD_WrCmd(0xd3);//-set display offset        Shift Mapping RAM Counter (0x00~0x3F)
  99.     LCD_WrCmd(0x00);//-not offset
  100.     LCD_WrCmd(0x40);//--set start line address  Set Mapping RAM Display Start Line (0x00~0x3F)
  101.     LCD_WrCmd(0xa0);//--Set SEG/Column Mapping     0xa0左右反置 0xa1正常
  102.     LCD_WrCmd(0xc0);//Set COM/Row Scan Direction   0xc0上下反置 0xc8正常
  103.     LCD_WrCmd(0xda);//--set com pins hardware configuration
  104.     LCD_WrCmd(0x12);
  105.     LCD_WrCmd(0x81);//--set contrast control register
  106.     LCD_WrCmd(0xcf); // Set SEG Output Current Brightness
  107.     LCD_WrCmd(0xa4);// Disable Entire Display On (0xa4/0xa5)
  108.     LCD_WrCmd(0xa6);// Disable Inverse Display On (0xa6/a7)
  109.     LCD_WrCmd(0xd5);//--set display clock divide ratio/oscillator frequency
  110.     LCD_WrCmd(0x80);//--set divide ratio, Set Clock as 100 Frames/Sec
  111.     LCD_WrCmd(0x8d);//--set Charge Pump enable/disable
  112.     LCD_WrCmd(0x14);//--set(0x10) disable
  113.     LCD_WrCmd(0xaf);//--turn on oled panel

  114.     LCD_WrCmd(0xd9);//--set pre-charge period
  115.     LCD_WrCmd(0xf8);//Set Pre-Charge as 15 Clocks & Discharge as 1 Clock

  116.     LCD_WrCmd(0xdb);//--set vcomh
  117.     LCD_WrCmd(0x40);//Set VCOM Deselect Level

  118.     LCD_Fill(0x00);  //初始清屏
  119. }
复制代码
回复

使用道具 举报

ID:18305 发表于 2017-2-25 16:38 | 显示全部楼层
好东东,顶你下先!!
回复

使用道具 举报

ID:157531 发表于 2017-4-15 14:16 | 显示全部楼层
为什么 第一个 里面什么都没有
回复

使用道具 举报

ID:64765 发表于 2017-4-19 15:59 | 显示全部楼层
好资料,学习了。
回复

使用道具 举报

ID:64765 发表于 2017-4-19 16:48 | 显示全部楼层
下载学习一下,谢谢。
回复

使用道具 举报

ID:169703 发表于 2017-5-28 16:57 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:255508 发表于 2017-11-30 08:51 | 显示全部楼层
oled屏幕的资料 正在学习研究
回复

使用道具 举报

ID:272237 发表于 2018-1-6 10:34 | 显示全部楼层

oled屏幕的资料 正在学习
回复

使用道具 举报

ID:272237 发表于 2018-1-6 10:48 | 显示全部楼层
下载看看~,正在学习研究
回复

使用道具 举报

ID:272237 发表于 2018-1-6 11:46 | 显示全部楼层
能下不------------------------------
回复

使用道具 举报

ID:97047 发表于 2018-1-7 07:16 | 显示全部楼层
非常好,正在学习,感谢分享
回复

使用道具 举报

ID:60706 发表于 2018-2-4 13:33 | 显示全部楼层

非常好,正在学习,感谢分享
回复

使用道具 举报

ID:303099 发表于 2018-4-12 01:51 | 显示全部楼层
下载学习,感谢楼主无私分享
回复

使用道具 举报

ID:480606 发表于 2019-2-25 20:15 | 显示全部楼层
好东西,谢谢分享,都找了好久了
回复

使用道具 举报

ID:409005 发表于 2019-4-24 18:13 | 显示全部楼层
想要,有一个类似的屏幕
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表