VOID SetStartColumn(UCHAR8 ucData); VOID SetAddressingMode(UCHAR8
extern VOID OLED_P8x16char(UCHAR8
ucIdxX, UCHAR8 ucIdxY, ucData); ucData);
VOID SetColumnAddress(UCHAR8 a, UCHAR8 b);
VOID SetPageAddress(UCHAR8 a, UCHAR8 b);
VOID SetStartLine(UCHAR8 d); VOID SetContrastControl(UCHAR8 d); VOID SetChargePump(UCHAR8 d); VOID SetSegmentRemap(UCHAR8 d); VOID SetEntireDisplay(UCHAR8 d); VOID SetInverseDisplay(UCHAR8 d); VOID SetMultiplexRatio(UCHAR8 d); VOID SetDisplayOnOff(UCHAR8 d); VOID SetStartPage(UCHAR8 d); VOID SetCommonRemap(UCHAR8 d); VOID SetDisplayOffset(UCHAR8 d); VOID SetDisplayClock(UCHAR8 d); VOID SetPrechargePeriod(UCHAR8 d); VOID SetCommonConfig(UCHAR8 d); VOID SetVCOMH(UCHAR8 d); VOID SetNop(VOID);
extern VOID OLED_Init(VOID); extern
VOID
OLED_SetPos(UCHAR8 ucIdxX, UCHAR8 ucIdxY);
extern VOID OLED_P6x8Char(UCHAR8 ucIdxX,UCHAR8 ucIdxY,UCHAR8
ucData);
//增加函数显示一个8x16字符
extern VOID OLED_P6x8Str(UCHAR8 ucIdxX,UCHAR8 ucIdxY,UCHAR8
ucDataStr[]);
extern VOID OLED_P8x16Str(UCHAR8 ucIdxX,UCHAR8 ucIdxY,UCHAR8 ucDataStr[]);
extern VOID OLED_P14x16Str(UCHAR8 ucIdxX,UCHAR8 ucIdxY,UCHAR8 ucDataStr[]);
extern VOID OLED_PXx16MixStr(UCHAR8 ucIdxX, UCHAR8 ucIdxY, UCHAR8 ucDataStr[]); extern VOID
OLED_Fill(UCHAR8
ucData);
extern VOID OLED_PrintChar(UCHAR8 ucIdxX, UCHAR8 ucIdxY, CHAR8 cData); extern VOID OLED_PrintShort(UCHAR8 ucIdxX, UCHAR8 ucIdxY, SHORT16 sData);
extern VOID OLED_PrintImage(UCHAR8 *pucTable,
USHORT16
usRowNum,
USHORT16 usColumnNum);
extern VOID OLED_P16x32Image(UCHAR8 ucIdxX, UCHAR8 ucIdxY, UCHAR8 ucData);//自己编制的显示0~9大数字,
将数字变成16x32图形
VOID OLED_WrDat(UCHAR8 ucData) {
UCHAR8 i = 8; OLED_DC = 1; OLED_SCL = 0;
while (i--) {
if (ucData & 0x80) {
OLED_SDA = 1; } else {
OLED_SDA = 0; }
OLED_SCL = 1; _nop_();
OLED_SCL = 0; ucData <<= 1; }
return; }
VOID OLED_WrCmd(UCHAR8 ucCmd) {
UCHAR8 i = 8;
OLED_DC = 0; OLED_SCL = 0; while (i--) {
if (ucCmd & 0x80) {
OLED_SDA = 1; } else {
OLED_SDA = 0; }
OLED_SCL = 1; _nop_(); OLED_SCL = 0; ucCmd <<= 1; }
return; }
VOID OLED_SetPos(UCHAR8 ucIdxX, UCHAR8 ucIdxY) {
OLED_WrCmd(0xb0 + ucIdxY); OLED_WrCmd(((ucIdxX & 0xf0) >> 4) | 0x10);
OLED_WrCmd((ucIdxX & 0x0f) | 0x00); }
VOID OLED_Fill(UCHAR8 ucData) {
UCHAR8 ucPage,ucColumn;
for(ucPage = 0; ucPage < 8; ucPage++) {
OLED_WrCmd(0xb0 + ucPage); //0xb0+0~7表示页0~7
OLED_WrCmd(0x00); //0x00+0~16表示将128列分成16组其地址在某组中的第几列
OLED_WrCmd(0x10); //0x10+0~16表示将128列分成16组其地址所在第几组
for(ucColumn = 0; ucColumn < 128; ucColumn++) {
OLED_WrDat(ucData); } } }
VOID SetStartColumn(UCHAR8 ucData) {
OLED_WrCmd(0x00+ucData % 16); // Set Lower Column Start Address for Page Addressing Mode
// Default => 0x00
OLED_WrCmd(0x10+ucData / 16); // Set Higher Column Start Address for Page Addressing Mode
// Default => 0x10 } VOID SetAddressingMode(UCHAR8
ucData) {
OLED_WrCmd(0x20); // Set Memory Addressing Mode
OLED_WrCmd(ucData); // Default => 0x02
// 0x00 => Horizontal Addressing Mode // 0x01 => Vertical Addressing Mode // 0x02 => Page Addressing Mode }
VOID SetColumnAddress(UCHAR8 a, UCHAR8 b)
{ OLED_WrCmd(0x21); // Set Column Address
OLED_WrCmd(a); //
Default => 0x00 (Column Start Address)
OLED_WrCmd(b); // Default => 0x7F (Column End Address) }
VOID SetPageAddress(UCHAR8 a, UCHAR8 b) {
OLED_WrCmd(0x22); // Set Page Address
OLED_WrCmd(a); // Default => 0x00 (Page Start Address) OLED_WrCmd(b); // Default => 0x07 (Page End Address) }
VOID SetStartLine(UCHAR8 ucData) {
OLED_WrCmd(0x40|ucData); // Set Display Start Line
// Default => 0x40 (0x00) } VOID SetContrastControl(UCHAR8 ucData) {
OLED_WrCmd(0x81); // Set
Contrast Control
OLED_WrCmd(ucData); // Default => 0x7F }
VOID SetChargePump(UCHAR8 ucData) {
OLED_WrCmd(0x8D); // Set Charge Pump
OLED_WrCmd(0x10|ucData); //
Default => 0x10
// 0x10 (0x00) => Disable Charge Pump // 0x14 (0x04) => Enable Charge Pump }
VOID SetSegmentRemap(UCHAR8 ucData) {
OLED_WrCmd(0xA0|ucData); // Set Segment Re-Map
// Default => 0xA0
// 0xA0 (0x00) => Column Address 0 Mapped to
SEG0
// 0xA1 (0x01) => Column Address 0 Mapped to SEG127
} VOID SetEntireDisplay(UCHAR8
ucData) {
OLED_WrCmd(0xA4|ucData); // Set Entire Display On / Off // Default => 0xA4
// 0xA4 (0x00) => Normal Display
// 0xA5 (0x01) => Entire Display On } VOID SetInverseDisplay(UCHAR8
ucData) {
OLED_WrCmd(0xA6|ucData); // Set Inverse Display On/Off
// Default => 0xA6
// 0xA6 (0x00) => Normal Display
// 0xA7 (0x01) => Inverse Display On } VOID
SetMultiplexRatio(UCHAR8
ucData) {
OLED_WrCmd(0xA8); // Set Multiplex Ratio
OLED_WrCmd(ucData); // Default => 0x3F (1/64 Duty) }
VOID SetDisplayOnOff(UCHAR8 ucData) {
OLED_WrCmd(0xAE|ucData); // Set Display On/Off
// Default => 0xAE
// 0xAE
(0x00) => Display Off
// 0xAF (0x01) => Display On }
VOID SetStartPage(UCHAR8 ucData) {
OLED_WrCmd(0xB0|ucData); // Set Page Start Address for Page Addressing Mode
// Default => 0xB0 (0x00) }
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库OLED显示时钟(8)在线全文阅读。
相关推荐: