@@ -125,7 +125,7 @@ void OLED_WrDat(unsigned char IIC_Data)
|
|||||||
|
|
||||||
void OLED_Set_Pos(unsigned char x, unsigned char y)
|
void OLED_Set_Pos(unsigned char x, unsigned char y)
|
||||||
{
|
{
|
||||||
OLED_WrCmd( 0xb0 + y );
|
OLED_WrCmd( 0xb0 + 7-y );
|
||||||
OLED_WrCmd(((x&0xf0)>>4)|0x10);
|
OLED_WrCmd(((x&0xf0)>>4)|0x10);
|
||||||
OLED_WrCmd( (x&0x0f) |0x00);
|
OLED_WrCmd( (x&0x0f) |0x00);
|
||||||
}
|
}
|
||||||
@@ -170,11 +170,11 @@ void OLED_Init(void)
|
|||||||
OLED_WrCmd(0x20); //设置内存地址模式
|
OLED_WrCmd(0x20); //设置内存地址模式
|
||||||
OLED_WrCmd(0x02); //[1:0],00,列地址模式;01,行地址模式;10,页地址模式;默认10;
|
OLED_WrCmd(0x02); //[1:0],00,列地址模式;01,行地址模式;10,页地址模式;默认10;
|
||||||
OLED_WrCmd(0xA1); //段重定义设置,bit0:0,0->0;1,0->127;
|
OLED_WrCmd(0xA1); //段重定义设置,bit0:0,0->0;1,0->127;
|
||||||
//OLED_WrCmd(0xC0); //设置COM扫描方向;bit3:0,普通模式;1,重定义模式 COM[N-1]->COM0;N:驱动路数
|
OLED_WrCmd(0xC0); //设置COM扫描方向;bit3:0,普通模式;1,重定义模式 COM[N-1]->COM0;N:驱动路数
|
||||||
//OLED_WrCmd(0xDA); //设置COM硬件引脚配置
|
//OLED_WrCmd(0xDA); //设置COM硬件引脚配置
|
||||||
//OLED_WrCmd(0x12); //[5:4]配置
|
//OLED_WrCmd(0x12); //[5:4]配置
|
||||||
//显示方向设置
|
//显示方向设置
|
||||||
OLED_WrCmd(0xc8);//OLED_WrCmd(0xa0);
|
//OLED_WrCmd(0xc8);//OLED_WrCmd(0xa0);
|
||||||
//行扫描顺序:从上到下
|
//行扫描顺序:从上到下
|
||||||
//列扫描顺序:从左到右
|
//列扫描顺序:从左到右
|
||||||
OLED_WrCmd(0xD9); //设置预充电周期
|
OLED_WrCmd(0xD9); //设置预充电周期
|
||||||
@@ -195,15 +195,38 @@ void OLED_ShowChar(unsigned char x,unsigned char y,unsigned char chr)
|
|||||||
OLED_Set_Pos(x,y);
|
OLED_Set_Pos(x,y);
|
||||||
for(char a=0;a<8;a++)
|
for(char a=0;a<8;a++)
|
||||||
{
|
{
|
||||||
OLED_WrDat(asc2_1608[chr-' '][(a*2)+1]);
|
OLED_WrDat(asc2_1608[chr-' '][(a*2)]);
|
||||||
}
|
}
|
||||||
OLED_Set_Pos(x,y+1);
|
OLED_Set_Pos(x,y+1);
|
||||||
for(char a=0;a<8;a++)
|
for(char a=0;a<8;a++)
|
||||||
{
|
{
|
||||||
OLED_WrDat(asc2_1608[chr-' '][(a*2)]);
|
OLED_WrDat(asc2_1608[chr-' '][(a*2)+1]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OLED_ShowStr(unsigned char x,unsigned char y,char *str)
|
||||||
|
{
|
||||||
|
while(*str!='\0')
|
||||||
|
{
|
||||||
|
if(x>=X_WIDTH)
|
||||||
|
{
|
||||||
|
y++;
|
||||||
|
if(y>=Y_WIDTH_)
|
||||||
|
{
|
||||||
|
y=0;
|
||||||
|
}
|
||||||
|
x=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
OLED_ShowChar(x,y,*str);
|
||||||
|
|
||||||
|
str++;
|
||||||
|
x+=8;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,6 @@
|
|||||||
void OLED_Init(void);
|
void OLED_Init(void);
|
||||||
void OLED_Init_Display_Buffer(char a);
|
void OLED_Init_Display_Buffer(char a);
|
||||||
void OLED_ShowChar(unsigned char x,unsigned char y,unsigned char chr);
|
void OLED_ShowChar(unsigned char x,unsigned char y,unsigned char chr);
|
||||||
|
void OLED_ShowStr(unsigned char x,unsigned char y,char *str);
|
||||||
|
|
||||||
#endif /* OLED_H_ */
|
#endif /* OLED_H_ */
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ void mymain()
|
|||||||
OLED_Init();
|
OLED_Init();
|
||||||
OLED_Init_Display_Buffer(0);
|
OLED_Init_Display_Buffer(0);
|
||||||
|
|
||||||
OLED_ShowChar(0,0,48);
|
OLED_ShowStr(0,0,"123");
|
||||||
|
|
||||||
while(1)
|
while(1)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user