SC95F8616開發板是一個核心板式的最小系統,因此它的資源是全部向外敞開的。基于此這里就將它與OLED屏、軟按鍵、MP3播放模塊等組合在一起,來構建一個具有中文歌曲選擇播放功能的播放器,其構成如圖1所示。 圖1 硬件構成
在程序設計方面,采用易碼魔盒來開發,所涉及內容有OLED驅動函數的構建、按鍵的菜單選擇及MP3的功能選擇、串行通訊及MP3的指令發送等。 1.創建新工程 1)進入易碼魔盒后,創建一個新工程。 2)將芯片型號設為“SC95F8616”,然后單擊“開始項目”。 3)在芯片配置視圖,按圖2進行引腳配置,并按圖3來設置UART0選項,按圖4來設置獨立按鍵選項。 圖2 引腳配置
圖3 UART0設置 圖4 獨立按鍵設置
這樣就形成了,以P20為串行通訊的接收端,P21為串行通訊的發送端;以P07為按鍵的公共GND;以P12為OLED屏的數據端,P13為OLED屏的時鐘端的引腳分配布局。 4)點擊“生成工程源代碼”, 則在“工程代碼”欄可見到生成的內容,其程序結構和程序如圖5所示。
圖5 程序結構和初始化程序
2.實現串行通訊 1)完成變量的添加 2)在用戶程序圖形化編輯視圖,完成圖6所示流程,并對條件控制語句加以配置。 圖6程序流程
圖7 配置條件控制語句
3)點擊“生成工程源代碼”, 則可得到圖8所示的主程序和串行通訊中斷處理服務程序。
圖8生成代碼
4)點擊“編譯”工具圖標,完成代碼編譯后如圖9所示。 圖9 完成編譯
5)點擊“燒錄”工具圖標,完成程序下載后如圖10所示。 圖10 執行下載
6)在串行通訊驗證前,先將P21和P20分別與串口通信模塊的RXD和TXD引腳連接。 打開串口調試工具并進行相應的設置后,發送數據,則可見到相應的接收數據,說明通訊正常,見如圖11所示。 圖11 串口通信驗證
7)發送字節數據的功能實現,首先定義變量n,以便存放發送的字節內容。 8)添加2個功能函數,其內容如下: 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所示,添加自定義函數。
圖12 添加自定義函數
10)完成如下主程序的修改,并加以編譯。下載后,運行的結構如圖15所示。 圖13修改主程序
圖14 生成的主程序
圖15 運行結果
|