📄 oled.c
字号:
/* Scan from COM[N-1] to COM0*/
/* Enable COM Split Odd Even*/
Write_Register(0xAD); /*/ Disable Embedded DC/DC Converter (0x00/0x01)*/
Write_Register(0x02);
Write_Register(0x81); /*/ Set Scale Factor of Segment Output Current Control(0x00~0x7F)*/
Write_Register(0x7f);
Write_Register(0x86); /*/ Set Full Current Range(0x84~0x86)*/
Write_Register(0xB8); /*/ Set Gray Scale Table*/
Write_Register(0x01); /*/ Gray Scale Level 1*/
Write_Register(0x11); /*/ Gray Scale Level 3 & 2*/
Write_Register(0x22); /*/ Gray Scale Level 5 & 4*/
Write_Register(0x32); /*/ Gray Scale Level 7 & 6*/
Write_Register(0x43); /*/ Gray Scale Level 9 & 8*/
Write_Register(0x54); /*/ Gray Scale Level 11 & 10*/
Write_Register(0x65); /*/ Gray Scale Level 13 & 12*/
Write_Register(0x76); /*/ Gray Scale Level 15 & 14*/
Write_Register(0xB2); /*/ Set Frame Frequency*/
Write_Register(0x46);
Write_Register(0xB1); /*/ Set Phase 1 as 2 Clocks & Phase 2 as 2 Clocks*/
Write_Register(0x22);
Write_Register(0xBC); /*/ Set Pre-Charge Voltage Level*/
Write_Register(0x10);
Write_Register(0xB4); /*/ Set Pre-Charge Compensation*/
Write_Register(0x07);
Write_Register(0xB0);
Write_Register(0x28);
Write_Register(0xBE); /*/ Set High Voltage Level of COM Pin*/
Write_Register(0x02);
Write_Register(0xBF); /*/ Set Low Voltage Level of SEG Pin*/
Write_Register(0x0E);
Write_Register(0xA4); /*/ Normal Display Mode*/
/*OLED_VCC =1;*/
Delay(100000);
Write_Register(0xAF); /* Display On */
}
/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// Fade In (Full Screen)
/-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
void Fade_In(void)
{
unsigned int i;
Write_Register(0xAF);
for(i=0;i<(64+1);i++)
{
Write_Register(0x81);
Write_Register(i);
Delay(3000);
}
}
/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// Fade Out (Full Screen)
/-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
void Fade_Out(void)
{
unsigned int i;
for(i=(64+1);i>0;i--)
{
Write_Register(0x81);
Write_Register(i-1);
Delay(300000);
}
Write_Register(0xAE);
}
void show(void)
{
unsigned char x,y;
unsigned int dat=0;
logMsg("showt\n",0,0,0,0,0,0);
Write_Register(0x15);/*set column start and end address*/
Write_Register(0x00);/*start address */
Write_Register(0x3f);/*end address */
Write_Register(0x75);/*set row address */
Write_Register(0x0b);/*row start address */
Write_Register(0x35);/*row end address */
for(y=0;y<64;y++)
{
for(x=0;x<43;x++)
{
Write_Parameter(Logo[dat++]);
}
}
}
void blank(void)
{
unsigned char x,y;
unsigned int dat=0x00;
Write_Register(0x15);/*set column start and end address*/
Write_Register(0x00);/*start address */
Write_Register(0x3f);/*end address */
Write_Register(0x75);/*set row address */
Write_Register(0x00);/*row start address */
Write_Register(0x3f);/*row end address */
for(x=0; x<64; x++)
{
for(y=0; y<64; y++)
{
Write_Parameter(dat);
}
}
}
void Fill(void)
{
unsigned char x,y;
unsigned char dat=0;
Write_Register(0x15);/*set column start and end address */
Write_Register(0x00);/*start address */
Write_Register(0x3f);/*end address */
Write_Register(0x75);/*set row address */
Write_Register(0x00);/*row start address */
Write_Register(0x3f);/*roe end address */
for(y=0;y<64;y++)
{
dat=0;
for(x=0;x<64;x++)
{
Write_Parameter(dat);
if ((x%8==0)&&(x>0))
dat+=0x22;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -