请选择 进入手机版 | 继续访问电脑版
查看: 2658|回复: 0

基于S08P-Lite开发板的OLED屏显示驱动

[复制链接]
  • TA的每日心情
    奋斗
    2023-2-15 00:12
  • 签到天数: 969 天

    [LV.10]以坛为家III

    175

    主题

    2843

    帖子

    34

    金牌会员

    Rank: 6Rank: 6

    积分
    7090
    最后登录
    2023-4-20
    发表于 2021-3-6 13:30:01 | 显示全部楼层 |阅读模式
    本帖最后由 jinglixixi 于 2021-3-6 18:35 编辑

    前面在实现OLED屏显示的时候遇到的小问题,现在终于解决了,该显示屏是I2C接口的0.91寸的单色OLED屏。
    OLEDMCU的连接关系为:
    SCL ---PTE3
    SDA ---PTE1
    定义相关引脚输出高低电平语句为:
    #define SCL_high    PORT_PTED_PTED3   = 1
    #define SCL_low     PORT_PTED_PTED3   = 0  //PTE3
    #define SDA_high    PORT_PTED_PTED1   = 1
    #define SDA_low     PORT_PTED_PTED1   = 0  //PTE1
    模拟I2C发送字节的函数为:
    1. void Write_IIC_Byte(unsigned char IIC_Byte)
    2. {
    3. unsigned char i;
    4. unsigned char m,da;
    5. da=IIC_Byte;
    6. SCL_low;
    7. DelayUS(1);
    8. for(i=0;i<8;i++)
    9. {
    10. m=da;
    11. m=m&0x80;
    12. if(m==0x80)
    13. {
    14. SDA_high;
    15. }
    16. else  SDA_low;
    17. DelayUS(1);
    18. da=(da<<1);
    19. SCL_high;
    20. DelayUS(1);
    21. SCL_low;
    22. DelayUS(1);
    23. }
    24. }
    复制代码

    显示字符串的函数为:
    1. void OLED_ShowString(uint8_t x,uint8_t y,uint8_t *chr,uint8_t Char_Size)
    2. {
    3. unsigned char j=0;
    4. while (chr[j]!='\0')
    5. {      
    6. OLED_ShowChar(x,y,chr[j],Char_Size);
    7. x+=8;
    8. if(x>120)
    9. {
    10. x=0;
    11. y+=2;
    12. }
    13. j++;
    14. }
    15. }
    复制代码

    实现显示效果的主程序为:
    1. void main(void)
    2. {
    3. Sys_Init();
    4. EnableInterrupts;
    5. MTIM1_Init();
    6. PORT_PTEOE_PTEOE1 = 1;     //PTE1
    7. PORT_PTEOE_PTEOE3 = 1;     //PTE3
    8. DelayMS(1);
    9. OLED_Init();
    10. OLED_Clear();
    11. OLED_ShowString(0,0,"+C9)08(*60",16);
    12. OLED_ShowString(0,2,"0.91' <;?>",16);
    13. //OLED_ShowString(0,2,"2021.3.6",16);
    14. //OLED_ShowString(0,2,"10:27:02",16);
    15. while(1);
    16. }
    复制代码

    经程序的编译下载,其显示效果如图1和图2所示。
    360截图165702078310690.png
    1 显示数字字符

    360截图16430914417375.png
    2 显示字符信息

    若将SDASCL连接到PTA3PTA2则可免去连线,其显示效果如图3所示。
    360截图1653071683108112.png
    3 直接使用Arduino接口

    只所以如此测试是因为,当字符库较大时会导致程序下载的失败,在只显示数字时证明程序的正确性,当字符库延伸到字符C时,程序仍然依然可下载,而伸到字符E时,就影响程序下载了,为了达到图示的效果,采用了部分字模的替代处理。后面打算将字符库移到W25Q32中,以便达到全字符集及汉字的显示。
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-19 09:26 , Processed in 0.100202 second(s), 19 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表