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