微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > IIC OLED驱动

IIC OLED驱动

时间:11-11 来源:互联网 点击:
  1. LED_WrCmd(ucData);// Default =>);// Default => 0x02
  2. // 0x00 => Horizontal Addressing Mode
  3. // 0x01 => Vertical Addressing Mode
  4. // 0x02 => Page Addressing Mode
  5. }
  6. VOIDSetColumnAddress(UCHAR8 a,UCHAR8 b)
  7. {
  8. LED_WrCmd(0x21);// Set Column Address
  9. LED_WrCmd(a);// Default => 0x00 (Column Start Address)
  10. LED_WrCmd(b);// Default => 0x7F (Column End Address)
  11. }
  12. VOIDSetPageAddress(UCHAR8 a,UCHAR8 b)
  13. {
  14. LED_WrCmd(0x22);// Set Page Address
  15. LED_WrCmd(a);// Default => 0x00 (Page Start Address)
  16. LED_WrCmd(b);// Default => 0x07 (Page End Address)
  17. }
  18. VOIDSetStartLine(UCHAR8 ucData)
  19. {
  20. LED_WrCmd(0x40|ucData);// Set Display Start Line
  21. // Default => 0x40 (0x00)
  22. }
  23. VOIDSetContrastControl(UCHAR8 ucData)
  24. {
  25. LED_WrCmd(0x81);// Set Contrast Control
  26. LED_WrCmd(ucData);// Default => 0x7F
  27. }
  28. VOIDSetChargePump(UCHAR8 ucData)
  29. {
  30. LED_WrCmd(0x8D);// Set Charge Pump
  31. LED_WrCmd(0x10|ucData);// Default => 0x10
  32. // 0x10 (0x00) => Disable Charge Pump
  33. // 0x14 (0x04) => Enable Charge Pump
  34. }
  35. VOIDSetSegmentRemap(UCHAR8 ucData)
  36. {
  37. LED_WrCmd(0xA0|ucData);// Set Segment Re-Map
  38. // Default => 0xA0
  39. // 0xA0 (0x00) => Column Address 0 Mapped to SEG0
  40. // 0xA1 (0x01) => Column Address 0 Mapped to SEG127
  41. }
  42. VOIDSetEntireDisplay(UCHAR8 ucData)
  43. {
  44. LED_WrCmd(0xA4|ucData);// Set Entire Display On / Off
  45. // Default => 0xA4
  46. // 0xA4 (0x00) => Normal Display
  47. // 0xA5 (0x01) => Entire Display On
  48. }
  49. VOIDSetInverseDisplay(UCHAR8 ucData)
  50. {
  51. LED_WrCmd(0xA6|ucData);// Set Inverse Display On/Off
  52. // Default => 0xA6
  53. // 0xA6 (0x00) => Normal Display
  54. // 0xA7 (0x01) => Inverse Display On
  55. }
  56. VOIDSetMultiplexRatio(UCHAR8 ucData)
  57. {
  58. LED_WrCmd(0xA8);// Set Multiplex Ratio
  59. LED_WrCmd(ucData);// Default => 0x3F (1/64 Duty)
  60. }
  61. VOIDSetDisplayOnOff(UCHAR8 ucData)
  62. {
  63. LED_WrCmd(0xAE|ucData);// Set Display On/Off
  64. // Default => 0xAE
  65. // 0xAE (0x00) => Display Off
  66. // 0xAF (0x01) => Display On
  67. }
  68. VOIDSetStartPage(UCHAR8 ucData)
  69. {
  70. LED_WrCmd(0xB0|ucData);// Set Page Start Address for Page Addressing Mode
  71. // Default => 0xB0 (0x00)
  72. }
  73. VOIDSetCommonRemap(UCHAR8 ucData)
  74. {
  75. LED_WrCmd(0xC0|ucData);// Set COM Output Scan Direction
  76. // Default => 0xC0
  77. // 0xC0 (0x00) => Scan from COM0 to 63
  78. // 0xC8 (0x08) => Scan from COM63 to 0
  79. }
  80. VOIDSetDisplayOffset(UCHAR8 ucData)
  81. {
  82. LED_WrCmd(0xD3);// Set Display Offset
  83. LED_WrCmd(ucData);// Default => 0x00
  84. }
  85. VOIDSetDisplayClock(UCHAR8 ucData)
  86. {
  87. LED_WrCmd(0xD5);// Set Display Clock Divide Ratio / Oscillator Frequency
  88. LED_WrCmd(ucData);// Default => 0x80
  89. // D[3:0] => Display Clock Divider
  90. // D[7:4] => Oscillator Frequency
  91. }
  92. VOIDSetPrechargePeriod(UCHAR8 ucData)
  93. {
  94. LED_WrCmd(0xD9);// Set Pre-Charge Period
  95. LED_WrCmd(ucData);// Default => 0x22 (2 Display Clocks [Phase 2] / 2 Display Clocks [Phase 1])
  96. // D[3:0] => Phase 1 Period in 1~15 Display Clocks
  97. // D[7:4] => Phase 2 Period in 1~15 Display Clocks
  98. }
  99. VOIDSetCommonConfig(UCHAR8 ucData)
  100. {
  101. LED_WrCmd(0xDA);// Set COM Pins Hardware Configuration
  102. LED_WrCmd(0x02|ucData);// Default => 0x12 (0x10)
  103. // Alternative COM Pin Configuration
  104. // Disable COM Left/Right Re-Map
  105. }
  106. VOIDSetVCOMH(UCHAR8 ucData)
  107. {
  108. LED_WrCmd(0xDB);// Set VCOMH Deselect Level
  109. LED_WrCmd(ucData);// Default => 0x20 (0.77*VCC)
  110. }
  111. VOIDSetNop(VOID)
  112. {
  113. LED_WrCmd(0xE3);// Command for No Operation
  114. }
  115. /*****************************************************************************
  116. 函 数 名 : LED_Init
  117. 功能描述 : OLED初始化
  118. 输入参数 : VOID
  119. 输出参数 : NONE
  120. 返 回 值 : NONE
  121. *****************************************************************************/
  122. VOIDLED_Init(VOID)
  123. {
  124. UCHAR8 i;
  125. LED_SCL=1;
  126. LED_RST=0;
  127. for(i=0;i<100;i++)
  128. {
  129. _nop_();//从上电到下面开始初始化要有足够的时间,即等待RC复位完毕
  130. }
  131. LED_RST=1;
  132. SetDisplayOnOff(0x00);// Display Off (0x00/0x01)
  133. SetDisplayClock(0x80);// Set Clock as 100 Frames/Sec
  134. SetMultiplexRatio(0x3F);// 1/64 Duty (0x0F~0x3F)
  135. SetDisplayOffset(0x00);// Shift Mapping RAM Counter (0x00~0x3F)
  136. SetSt

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top