6925|1

1305

帖子

0

TA的资源

纯净的硅(高级)

楼主
 

【CH554评测】第4篇 外设,I2C接口OLED液晶驱动 [复制链接]

本帖最后由 yang_alex 于 2017-11-6 13:21 编辑

       前面3篇说完CH554的开发环境,下面我们来说说CH554的应用。

       说到软件评估,一般都会来个“Hello World!”C、JAVA等等高级语言在电脑屏幕上显示,简单的MCU用点灯(LED)代替,带串口的用串口输出。这次,手头上正好有个OLED的小液晶屏,所以这次CH554MCU的“Hello World!”就尝试用这个OLED的小液晶屏输出。

       手上的这个OLED的小液晶屏接口是I2C总线的,CH554本身没有I2C总线接口。不过也没关系,我们用GPIO来模拟I2C接口。I2C总线的好处在于占用端口少,加上VCC、GND、一根数据线SDA、一根时钟线SCL,总共4根线就可以了,而且只占用两个端口,还有一个更大的好处在于:可以在两个端口上挂更多外设(当然,GPIO模拟的就算了,真要模拟完整总线协议,太麻烦了)。所以建议沁恒在新的MCU中增加I2C总线的硬件接口,可以类似TI或其他厂家一样,和其他串行接口(比如UART或SPI)复用。

       言归正传,OLED小液晶屏厂家提供了测试程序,只要在这个基础上移植到CH554上就可以了。
  1. //////////////////////////////////////////////////////////////////////////////////         
  2. //  文 件 名   : main.c
  3. //  功能描述   : OLED I2C接口演示例程(51系列)
  4. //              说明:
  5. //              ----------------------------------------------------------------
  6. //              GND    电源地
  7. //              VCC    接5V或3.3v电源
  8. //              D0      P1^0(SCL)
  9. //              D1      P1^1(SDA)            
  10. //              ----------------------------------------------------------------

  11. //******************************************************************************/
  12. #include "..\Public\CH554.H"                                                   
  13. #include "..\Public\Debug.H"
  14. #include "stdio.h"
  15. #include <string.h>
  16. #include ".\SRC\oled.h"
  17. #include ".\SRC\bmp.h"

  18. int main(void)
  19. {        UINT8 t;
  20.                 OLED_Init();                        //初始化OLED  
  21.                 OLED_Clear()          ;
  22.         
  23.                 t=' ';
  24.                 OLED_ShowString(0,0,"Hello EEworld!",16);
  25.         while(1)
  26.         {               
  27.                 OLED_Clear();

  28.                 OLED_ShowCHinese(0,6,0);//电
  29.                 OLED_ShowCHinese(18,6,1);//子
  30.                 OLED_ShowCHinese(36,6,2);//工
  31.                 OLED_ShowCHinese(54,6,3);//程
  32.                 OLED_ShowCHinese(72,6,4);//世
  33.                 OLED_ShowCHinese(90,6,5);//界                  

  34.                 OLED_ShowString(0,0,"Hello EEworld!",16);
  35.                
  36.                 OLED_ShowString(6,3,"0.96' OLED TEST",16);

  37.                 t++;
  38.                 if(t>'~')t=' ';


  39.                 delay_ms(8000);
  40.                 delay_ms(8000);
  41.                 delay_ms(8000);
  42.                 delay_ms(8000);
  43.         }         
  44.         
  45. }
复制代码


oled.c oled.h  OLED液晶屏驱动文件,包含了OLED液晶屏初始化、画点、写字、写字符串、画图、清屏、开关显示等函数。在我们自己程序中调用这些函数就好。
oledfont.h  字库文件,存有字符的阵数据数组,你可以用图形取模软件自己生成自己的字库,然后在自己程序中通过调用OLED液晶屏驱动文件中的函数使用这些阵数据数组在液晶屏幕上显示数字、文字或图标。
bmp.h  放BMP图片数据,你可以用图形取模软件把你选定的BMP图片转成点阵数据数组,然后在自己程序中通过调用OLED液晶屏驱动文件中的函数使用这些阵数据数组在液晶屏幕上显示图片了。

         

此内容由EEWORLD论坛网友yang_alex原创,如需转载或用于商业用途需征得作者同意并注明出处

此帖出自单片机论坛

最新回复

  详情 回复 发表于 2017-11-14 15:25
点赞 关注
 

回复
举报

305

帖子

0

TA的资源

一粒金砂(高级)

沙发
 
此帖出自单片机论坛
 
个人签名单价1元含税的USB和Touchkey单片机CH551G已大批量出货,试样QQ:1258305301
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表