|
SC95F8616開發(fā)板是一個核心板式的最小系統(tǒng),因此它的資源是全部向外敞開的。基于此這里就將它與OLED屏、軟按鍵、MP3播放模塊等組合在一起,來構(gòu)建一個具有中文歌曲選擇播放功能的播放器,其構(gòu)成如圖1所示。
1.jpg (18.58 KB, 下載次數(shù): 36)
下載附件
2020-8-6 21:40 上傳
圖1 硬件構(gòu)成
在程序設計方面,采用易碼魔盒來開發(fā),所涉及內(nèi)容有OLED驅(qū)動函數(shù)的構(gòu)建、按鍵的菜單選擇及MP3的功能選擇、串行通訊及MP3的指令發(fā)送等。 1.創(chuàng)建新工程 1)進入易碼魔盒后,創(chuàng)建一個新工程。 2)將芯片型號設為“SC95F8616”,然后單擊“開始項目”。 3)在芯片配置視圖,按圖2進行引腳配置,并按圖3來設置UART0選項,按圖4來設置獨立按鍵選項。
2.jpg (14.12 KB, 下載次數(shù): 36)
下載附件
2020-8-6 21:40 上傳
圖2 引腳配置
3.jpg (14.4 KB, 下載次數(shù): 44)
下載附件
2020-8-6 21:40 上傳
圖3 UART0設置
4.jpg (20.57 KB, 下載次數(shù): 40)
下載附件
2020-8-6 21:40 上傳
圖4 獨立按鍵設置
這樣就形成了,以P20為串行通訊的接收端,P21為串行通訊的發(fā)送端;以P07為按鍵的公共GND;以P12為OLED屏的數(shù)據(jù)端,P13為OLED屏的時鐘端的引腳分配布局。 4)點擊“生成工程源代碼”, 則在“工程代碼”欄可見到生成的內(nèi)容,其程序結(jié)構(gòu)和程序如圖5所示。
5.jpg (16.55 KB, 下載次數(shù): 35)
下載附件
2020-8-6 21:40 上傳
6.jpg (27.36 KB, 下載次數(shù): 49)
下載附件
2020-8-6 21:40 上傳
7.jpg (5.2 KB, 下載次數(shù): 54)
下載附件
2020-8-6 21:40 上傳
8.jpg (23.13 KB, 下載次數(shù): 49)
下載附件
2020-8-6 21:40 上傳
圖5 程序結(jié)構(gòu)和初始化程序
2.實現(xiàn)串行通訊 1)完成變量的添加
9.jpg (4.31 KB, 下載次數(shù): 31)
下載附件
2020-8-6 21:40 上傳
2)在用戶程序圖形化編輯視圖,完成圖6所示流程,并對條件控制語句加以配置。
10.jpg (5.61 KB, 下載次數(shù): 38)
下載附件
2020-8-6 21:40 上傳
圖6程序流程
11.jpg (12.17 KB, 下載次數(shù): 52)
下載附件
2020-8-6 21:40 上傳
12.jpg (14.2 KB, 下載次數(shù): 33)
下載附件
2020-8-6 21:40 上傳
圖7 配置條件控制語句
3)點擊“生成工程源代碼”, 則可得到圖8所示的主程序和串行通訊中斷處理服務程序。
13.jpg (6.41 KB, 下載次數(shù): 58)
下載附件
2020-8-6 21:40 上傳
14.jpg (26.38 KB, 下載次數(shù): 42)
下載附件
2020-8-6 21:40 上傳
圖8生成代碼
4)點擊“編譯”工具圖標,完成代碼編譯后如圖9所示。
15.jpg (15.25 KB, 下載次數(shù): 41)
下載附件
2020-8-6 21:40 上傳
圖9 完成編譯
5)點擊“燒錄”工具圖標,完成程序下載后如圖10所示。
16.jpg (85.84 KB, 下載次數(shù): 42)
下載附件
2020-8-6 21:40 上傳
圖10 執(zhí)行下載
6)在串行通訊驗證前,先將P21和P20分別與串口通信模塊的RXD和TXD引腳連接。 打開串口調(diào)試工具并進行相應的設置后,發(fā)送數(shù)據(jù),則可見到相應的接收數(shù)據(jù),說明通訊正常,見如圖11所示。
17.jpg (34.31 KB, 下載次數(shù): 44)
下載附件
2020-8-6 21:40 上傳
圖11 串口通信驗證
7)發(fā)送字節(jié)數(shù)據(jù)的功能實現(xiàn),首先定義變量n,以便存放發(fā)送的字節(jié)內(nèi)容。
18.jpg (5.06 KB, 下載次數(shù): 47)
下載附件
2020-8-6 21:40 上傳
8)添加2個功能函數(shù),其內(nèi)容如下: void delay(unsignedint z) { unsignedint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }
void SendByte(uint8_tData) { SBUF = Data; delay(60); } 9)按圖12所示,添加自定義函數(shù)。
19.jpg (3.3 KB, 下載次數(shù): 43)
下載附件
2020-8-6 21:40 上傳
20.jpg (20.85 KB, 下載次數(shù): 31)
下載附件
2020-8-6 21:40 上傳
21.jpg (3.37 KB, 下載次數(shù): 46)
下載附件
2020-8-6 21:40 上傳
圖12 添加自定義函數(shù)
10)完成如下主程序的修改,并加以編譯。下載后,運行的結(jié)構(gòu)如圖15所示。
22.jpg (10.22 KB, 下載次數(shù): 45)
下載附件
2020-8-6 21:40 上傳
圖13修改主程序
23.jpg (12.08 KB, 下載次數(shù): 44)
下載附件
2020-8-6 21:40 上傳
圖14 生成的主程序
24.jpg (38.49 KB, 下載次數(shù): 46)
下載附件
2020-8-6 21:40 上傳
圖15 運行結(jié)果
|