51单片机驱动控制彩屏系列讲座
第二讲:单片机STC89C52+RA8889驱动控制彩屏 代码移植介绍
一、RA8889核心文件有四个,分别是:
| 文件 | 说明 |
|---|---|
| RA8889.c | 底层API程序 |
| RA8889_API.c | 用户层API程序(可选) |
| RA8889_MCU_IF.c | MCU通信函数 |
| UserDef.h | 参数配置:屏参、频率等 |
重点要移植的代码是RA8889.c,这份程序可以根据功能需求进行裁切移植,而RA8889_API.c这份是API接口程序,代码多,根据实际功能需求进行裁切。RA8889_MCU_IF.c则可以根据实际通信方式进行选择裁切。
UserDef.h 配置相关参数、宏定义,另外还有一份delay.c,这里的延时函数需要用户根据自己的主频进行调整。根据51单片机,移植好了核心代码放在 RA8889_01_Kernel 文件架里面:
上一讲已针对51基础功能进行了基础移植,并根据51单片机进行优化,该代码使用的是AT070TN92兼容屏,若您手上的液晶屏是其它型号,要变更屏的参数配置Set_LCD_Panel(),不清楚可以在本bbs论坛留言。
使用Keil来编辑时,程序添加到项目中:
路径包含:
二、单片机仅需要做三步:
/* SPI初始化 */
SPI4_Init();
/* RA8889硬件复位 */
SPI_RST = 1;
delay_ms(1);
SPI_RST = 0;
delay_ms(1);
SPI_RST = 1;
/* RA8889初始化 */
RA8889_Initial();
这样初始化也就做完了,接下来单片机就可以开始绘图了。
三、绘图和显示文字:
- 下方代码演示颜色填充,根据函数名称不难理解,这些函数存放在RA8889_51.c里面:
/* 画矩形填充 */
Foreground_color_16M(0x0);
Square_Start_XY(0,0);
Square_End_XY(799,479);
Start_Square_Fill();
RA8889内建图形驱动引擎,可以绘制各种几何图形:方形,三角形,圆形,椭圆形等等,您可以根据需求再从RA8889标准参考程序里面找到RA8889.c,根据功能进行裁剪。
- 文字显示,下方是简单调用,此外文字显示还有多种功能:放大、加底色等,这些都可以从RA8889标准参考程序找到RA8889_API.c进行裁剪移植。
/* 内建文字显示测试 */
Foreground_color_16M(0xFFFFFF);
Goto_Text_XY(124,30);
Show_String("Solution: 89C52 + RA8889.");
Goto_Text_XY(124,60);
Show_String("RA8889 is an efficient TFT LCD CONTROLLER.");
Goto_Text_XY(124,90);
Show_String("It has an embedded decoder for JPG and AVI.");
四:移植的调试
在移植时,有可能不成功,这里介绍一点经验:
- 检查SPI接线,SDO和SDI不要接反了,还要确认CS和地线;
- 可以无限循环RA8889_Initial()代码,再用示波器观察SDO、SDI、SCK及CS的波形,是否有周期的脉冲,这个方法定位会比较容易;
- 在MCU_Dev_Board.c代码中有一个通信测试Comm_Test(),通过该函数对RA8889进行读写,若正常则闪烁LED来指示;
- 另外可以调整delay.c,将延时先调得长一点进行测试,待通信正常再适当调快。
审核编辑 黄宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
单片机
+关注
关注
6078文章
45636浏览量
675892 -
STC89C52
+关注
关注
41文章
330浏览量
84831 -
驱动控制
+关注
关注
0文章
145浏览量
16442
发布评论请先 登录
相关推荐
热点推荐
AT89LV52单片机特性与应用全解析
AT89LV52单片机特性与应用全解析 在嵌入式控制应用领域,单片机扮演着至关重要的角色。AT89LV52作为一款经典的低电压、高性能CMO
AT89LS52:低成本高性能8位单片机的设计秘诀
AT89LS52:低成本高性能8位单片机的设计秘诀 作为一名电子工程师,在嵌入式系统设计中,单片机是我们常用的核心组件之一。今天,我要给大家详细介绍一款功能强大、应用广泛的8位
AT89C52:一款经典的8位微控制器
AT89C52:一款经典的8位微控制器 在嵌入式控制应用领域,AT89C52这款8位微控制器凭借其出色的性能和丰富的功能,一直是众多工程师的
学习单片机快速方法
使用开发软件,比如KEIL。建议大家用C言语编程,汇编语言有时间可以学习一下。
毕竟C语言一目了然,移植性较好。虽然汇编效率高,但是难懂。况且现在单片机集成度越来越高,不必要那么高效
发表于 01-14 07:42
为什么单片机还在用C语言编程?
的存储空间非常有限,我们使用者需要靠精打细算来设计程序,根本经不起高级语言臃肿的代码体积。高级语言也无法实现精确的时序控制。
三、C语言是一个折中选择
其实用C语言开发
发表于 11-28 07:37
工业级-专业液晶图形显示加速器RA8889ML3N简介+显示方案选型参考表
即实现精美图形显示交互界面。瑞佑科技推出的专业液晶显示控制器RA8889ML3N内部集成了 128Mb SDRAM显存,最高支持1366*2048分辨率。还集成了画中画(PIP)、图像旋转、透明度
发表于 11-14 16:03
单片机最小系统工作原理及搭建
单片机最小系统是指使单片机正常运行所需的最简电路配置,它是所有单片机应用的开发基础。以下是其核心组成、工作原理及搭建指南: 一、最小系统核心组成 单片机芯片 常见型号 :
单片机怎么驱动电机?
在各类自动化设备和智能装置中,电机是重要的执行部件,而单片机作为控制核心,需要通过特定的方式驱动电机运转。单片机驱动电机并非直接连接即可,而
第二讲:单片机STC89C52+RA8889驱动控制彩屏 代码移植介绍
评论