有了前面使用GPIO口控制LED等的基础,下面再利用GPIO口模拟I2C接口来实现一下I2C接口的OLED屏。由于LPC51U68开发板上配备了Arduino接口,这样就可以利用插排来连接OLED屏了,省去了导线的连接既牢靠,又看上去整齐不少。
为了对位的需要,OLED屏的I2C引脚的连接情况为:
SCL --- P0.19
SDA --- P0.18
引脚输出高低电平的定义为:
#define OLED_SCLK_Set() GPIO_PortSet(GPIO, 0,1U <<19U)
#define OLED_SCLK_Clr() GPIO_PortClear(GPIO, 0, 1U<< 19U)
#define OLED_SDIN_Set() GPIO_PortSet(GPIO, 0,1U <<18U)
#define OLED_SDIN_Clr() GPIO_PortClear(GPIO, 0, 1U<< 18U)
通过程序的移植,即可在OLED屏上显示出信息,详见图1所示。
图1
为了在OLED屏上显示中文信息,还可通过构建中文小字库的方法来实现。
构建中文小字库可使用工具软件PCtoLCD2002,其提取字模的格式可按图2来设置。
完成设置后,输入需要的中文即可达到相应的字模,参见图3所示。
图2
图3
相应的汉字显示函数为:
void OLED_ShowCHinese(uint8_t x,uint8_t y,uint8_t no)
{
uint8_t t,adder=0;
OLED_Set_Pos(x,y);
for(t=0;t<16;t++)
{
OLED_WR_Byte(Hzk[2*no][t],OLED_DATA);
adder+=1;
}
OLED_Set_Pos(x,y+1);
for(t=0;t<16;t++)
{
OLED_WR_Byte(Hzk[2*no+1][t],OLED_DATA);
adder+=1;
}
}
图4