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,將延時先調得長一點進行測試,待通信正常再適當調快。
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
單片機
+關注
關注
6076文章
45494瀏覽量
670261 -
STC89C52
+關注
關注
41文章
330瀏覽量
84501 -
驅動控制
+關注
關注
0文章
143瀏覽量
16362
發布評論請先 登錄
相關推薦
熱點推薦
學習單片機快速方法
使用開發軟件,比如KEIL。建議大家用C言語編程,匯編語言有時間可以學習一下。
畢竟C語言一目了然,移植性較好。雖然匯編效率高,但是難懂。況且現在單片機集成度越來越高,不必要那么高效
發表于 01-14 07:42
為什么單片機還在用C語言編程?
的存儲空間非常有限,我們使用者需要靠精打細算來設計程序,根本經不起高級語言臃腫的代碼體積。高級語言也無法實現精確的時序控制。
三、C語言是一個折中選擇
其實用C語言開發
發表于 11-28 07:37
單片機怎么驅動電機?
在各類自動化設備和智能裝置中,電機是重要的執行部件,而單片機作為控制核心,需要通過特定的方式驅動電機運轉。單片機驅動電機并非直接連接即可,而
STC8H 單片機 + RA8889/RA6809:重新定義嵌入式觸控交互_高流暢、低延遲、零基礎的人機界面(一)
STC8H 單片機 + RA8889/RA6809:重新定義嵌入式觸控交互_高流暢、低延遲、零基礎的人機界面
瑞薩RA8系列教程 | 基于 Keil 開發 RA8單片機
本文結合瑞薩Cortext-M85單片機RA8D1、Keil MDK,以及瑞薩自家的代碼初始化工具(Smart Configurator)給大家描述一下,快速在Keil MDK上點亮Cortext-M85
中小尺寸彩屏TFT-LCD顯示控制器RA8889ML3N電路原理圖
中小尺寸彩屏TFT-LCD顯示控制器RA8889ML3N電路原理圖,最高驅動1366*2048分辨率,支持并口/串口(SPI)主控接口,支持圖形繪圖引擎,支持JPEG視頻硬解碼. 原理
發表于 04-03 14:33
第二講:單片機STC89C52+RA8889驅動控制彩屏 代碼移植介紹
評論