STC8H8K64U搭配RA8889如何控制TFT彩屏(附SPI4源码)
本帖最后由 bwsu 于 2024-7-16 16:29 编辑文章导引:
(1)STC8H8K64U搭配RA8889如何控制TFT彩屏(附SPI4源码)
(2)51单片机(STC8H8K64U)加上RA8889可以点高分辨率TFT彩屏(附I2C源码下载)
(3)51单片机(STC8H8K64U/STC8051U34K64)_RA8889_8080参考代码(v1.3)
(4)51单片机(STC8H8K64U/STC8051U34K64)_RA8889驱动大屏_硬件SPI4_参考代码(v1.3)
单片机实际不限,这里采用的STC最新、主推的型号,比如STC8H8K64U、STC8051U34K64进行实验测试,您可以换用不同型号。目前测试这两个系列,显示速度均相当不错,软件设计也是极为简单。各篇文章下方均提供源码供参考下载。
本例提供软件模拟SPI-4通信代码,下方简单做一下介绍。
【硬件部份】
一、STC8H8K64U+RA8889开发板+7寸TFT LCD(兼容AT070TN92接口即可,分辨率800x480、1024x600均有兼容接口)
RA8889是瑞佑科技推出的一款高集成的液晶控制芯片,其内建强大的图形驱动引擎,支持JPEG硬件解码、AVI解码等功能,与单片机可通过8080/6800/SPI/I2C接口进行通信,输出信号为TTL电平RGB:888,最大可以支持1366x2048的分辨率。先介绍基本硬件框架,如下图:
直接看看实物连接:
这里采用RA8889开发板来测试,使用SPI-4进行举例,开发板零件虽然比较多,但基本上只用到左半部份。
该例中单片机与开发板的实际连接只用到SPI 4条线和1条RA8889的复位线,另外红、黑线为单片机的供电电压3.3V和地线。
二、SPI-4连接电路图:
单片机(注意要使用3.3V供电)和RA8889的接口支持SPI-3线和4线,在这里采用SPI-4线来测试,连接电路图如下:
【软件部份】
三、RA8889核心文件存放在RA8889_01_Kernel文件夹下:
RA8889_51.c 为底层接口文件
RA8889_API_51.c 为用户层接口文件
RA8889_MCU_IF.c 为单片机接口文件(通信接口定义及通信函数)
UserDef.h 为用户自定义参数文件
delay.c 延迟函数,请根据单片机的主频修正
上面这些添加进工程,同时在main.c中包含对应的.h头文件:
四、通信引脚配置:
/* SPI-4 IO口配置*/
sbit SPI_SS = P2 ^ 7; // Slave Select(RA8889片选)
sbit SPI_MISO = P2 ^ 6; // Master In Slave Out(接RA8889的SDO)
sbit SPI_MOSI = P2 ^ 5; // Master Out Slave In(接RA8889的SDI)
sbit SPI_SCK= P2 ^ 4; // Serial Clock
sbit RA8889_RST= P2 ^ 3; // Reset RA8889(通过IO口接到RA8889进行硬件复位)***该配置在RA8889_MCU_IF.h文件内。
五、GPIO引脚配置:
STC8H8K64U单片机的GPIO引脚要做一下配置,这点与标准的51单片机有所不同,单片机的P2.6作为MISO,接到RA8889的SDO输出,故该引脚要这样配置:
P2M0 = 0xBF; //设置P2.6为双向口模式,其它为挽输出模式
P2M1 = 0x00;***该配置放在main.c文件内执行一次即可。
六、其他代码不需要变化,按51单片机的代码正常写:
/* SPI初始化 */
SPI4_Init();
/* RA8889硬件复位 */
RA8889_RST = 1;
delay_ms(10);
RA8889_RST = 0;
delay_ms(10);
RA8889_RST = 1;
/* RA8889初始化 */
RA8889_Initial();
/* 循环功能演示 */
while(1)
{
Introduction(); //文字介绍
Geometry_Demo(); //几何绘图演示
Show_BMP(); //调用FLASH的BMP图片显示
Show_JPG(); //调用FLASH的JPG图片显示
Fade_in_Fade_out(); //图片淡入淡出演示
Show_AVI(); //调用FLASH的AVI影片播放
Show_PNG(); //调用FLASH的PNG图片显示
}
七、实物效果展示:
https://www.bilibili.com/video/BV18Wh4ecEyQ/?share_source=copy_web&vd_source=c0cd4c87f6dcc19bcebab2f4cf3c40db
八、源码下载:
(1)pic文件夹:存放图资,已打包为flash.bin,先烧录到RA8889扩展的FLASH芯片上;
(2)STC89_RA8889_SPI4: Keil源码,推荐使用Keil5。
我是初学者,记录下自己的理解。大佬不要笑话。
0xBF 是 1011_1111其中Pin6(也就是第7位) 配置为0 ,即stc8的2端口6引脚配置成了输出。 durongze 发表于 2024-9-11 08:17
我是初学者,记录下自己的理解。大佬不要笑话。
0xBF 是 1011_1111其中Pin6(也就是第7位) 配置为0 ,即st ...
没有关系!SPI接法确实容易引起混淆,不熟悉的话对MISO和MOSI都可能迷糊了。
MISO: 主机作为输入端,从机作为输出端;
MOSI:反之。
这里使用的是模拟SPI时序,将P2.6设置为双向口模式,接到RA8889的SPI_MISO,该处单片机为主机,RA8889为从机,此时该脚信号是发送给单片机的。 本帖最后由 durongze 于 2024-9-11 17:13 编辑
我贴下RA8889的8080图,
。
和6800图
页:
[1]