有了前面使用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所示。 图4
|