标题: 51单片机STC8H8K64U通过RA8889/RA8876如何控制彩屏(I2C源码下载) [打印本页]

作者: harchy    时间: 2024-6-28 16:02
标题: 51单片机STC8H8K64U通过RA8889/RA8876如何控制彩屏(I2C源码下载)
本帖最后由 harchy 于 2024-7-19 10:39 编辑

文章导引:

(1)51单片机(STC8051U34K64)RA8889_SPI4参考代码(v1.3)
(2)51单片机STC8H8K64U通过RA8889/RA8876如何控制彩屏(I2C源码下载)
(3)51单片机(STC8H8K64U/STC8051U34K64)_RA8889_8080参考代码(v1.3)

单片机实际不限,这里采用的STC最新、主推的型号,比如STC8H8K64U、STC8051U34K64进行实验测试,您可以换用不同型号。目前测试这两个系列,显示速度均相当不错,软件设计也是极为简单。各篇文章下方均提供源码供参考下载。

RA8889是一款瑞佑科技推出的高性能液晶控制芯片,单片机下指令即可,可以驱动最高1366x768等液晶屏,其内建JEPG解码引擎,图形驱动引擎,因此显示速度相当不错,是单片机扩展彩屏UI的好搭档。也有低阶的型号比如RA8871M,RA8873M等,可根据实际需求选择。


本例提供软件模拟I2C通信代码,下方简单做一下介绍。

【硬件部份】

一、硬件连接实物:
本例仍采用STC8H8K64U这颗来做主控MCU,使用I2C通信方式,只需要2条线即可,接线极其简单!请看实际接线:



二、I2C连接电路图:
RA8889和单片机的接口采用I2C,传输的前7位,是指I2C 的Spec 中定义的从属 (Slave) 端地址。前6 位代表RA8889 的I2C Device ID。接下來一位是A0,代表周期類型。
当A0 = 1,代表接下來的周期为读写数据周期;
当A0 = 0,代表接下來的周期为命令/状态周期。
Device ID共6位,可自由设定,设定XI2CA[5:0]/XDB[5:0]这几个引脚的高低电平即可,参考下图。读写周期类型分为四种,分别为:指令写入、状态读取、数据写入和数据读取,由低2位A0和WR位决定。



三、RA8889开发板一样的也要做变更:
(1)PS2~0: 跳接为11x


(2)开发板上之单片机103程序中,将DB67(即PE910)连接的GPIO设定为FLOATING状态,以便外接I2C使用。

【软件部份】
四、接口定义:
  1. /* I2C IO口配置*/
  2. sbit I2C_SDA  = P2 ^ 4;         //I2C数据线(接入RA8889/RA8876之DB6)
  3. sbit I2C_SCK  = P2 ^ 5;         //I2C时钟(接入RA8889/RA8876之DB7)
  4. sbit RA8889_RST  = P2 ^ 3;         //RA8889/RA8876复位脚
复制代码

五、GPIO引脚配置:
STC8H8K64U单片机的GPIO引脚要做一下配置,这点与标准的51单片机有所不同,单片机的P2.7作为I2C_SDA,接到RA8889/RA8876的SDA输出,故该接口作如此配置:
  1.         P2M0 = 0xff; P2M1 = 0x30;                //设置P2.4~2.5为开漏【注意:这两脚需要上拉电阻 1~10K】,其它为推挽模式
复制代码

六、源码下载:
STC8H_RA8889_I2C_v1.3.7z (14.4 MB, 下载次数: 14)






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1