本帖最后由 jinglixixi 于 2020-9-28 00:02 編輯
PIC16F15324配有2個(gè)UART,即:EUSART1和EUSART2。 要實(shí)現(xiàn)串行通訊功能也十分簡(jiǎn)單,當(dāng)然首先要做的就是配置好引腳,具體的方法是: 1)打開MCC,然后在圖1所示的設(shè)備資源窗口選取EUSART1或EUSART2。 若選取EUSART1,則會(huì)看到它被分配到引腳RC4和RC5上,其中RC4為TX1,而RC5為RX1;若選取EUSART2則會(huì)被分配到引腳RC0和RC1上,其中RC1為RX2,而RC0為TX2。 圖1設(shè)備資源窗口
我們這里選EUSART1,則引腳配置如圖2所示。 圖2 EUSART1引腳配置
2)點(diǎn)擊
按鍵,以生成代碼框架。 3)切換至項(xiàng)目窗口,并打開main.c主程序,并進(jìn)行語句添加。 添加其內(nèi)容如下: voidmain(void) { volatile uint8_t rxData; // initialize the device SYSTEM_Initialize(); while (1) { // Add your application code if(EUSART1_is_rx_ready()) { //rxData = UART1_Read(); rxData = EUSART1_Read(); if(EUSART1_is_tx_ready()) { EUSART1_Write(rxData); } } } }
經(jīng)程序的編譯和下載,在連接USB轉(zhuǎn)串口模塊的情況下,其運(yùn)行效果如圖3所示,即發(fā)送的內(nèi)容會(huì)原樣返回。
圖3 運(yùn)行效果
實(shí)現(xiàn)了串行收發(fā)功能后,我們可以用它來做些什么呢? 對(duì)于PIC16F15324這樣小規(guī)模的芯片,要想實(shí)現(xiàn)音樂播放功能基本是不可能的。但這不妨礙我們讓它與相應(yīng)的功能模塊進(jìn)行組合。 為此我們選定的目標(biāo)是MP3音樂播放模塊,其引腳配置如圖4所示。
圖4模塊引腳排列
該模塊在串行指令的控制下,可實(shí)現(xiàn)相應(yīng)播放控制功能,如:播放上一首、下一首、播放、暫停、指定播放及音量調(diào)節(jié)等。 在充分利用板上資源的情況下,我們用板上的按鍵S2來選擇播放的歌曲,以EUSART1的TX1來發(fā)送控制指令。 按鍵S2的參見圖5所示,添加按鍵后的引腳配置見圖6所示。
圖5按鍵原理圖
圖6 引腳配置
配合按鍵S2的播放語句播放下一首,為使用的的方面,特將它存放到數(shù)組中,其內(nèi)容如下: uint8_t cmd1[]= {0X7E, 0xFF, 0x06, 0X01, 00, 00, 00, 0xFE, 0xFA, 0XEF}; //next
實(shí)現(xiàn)播放控制的構(gòu)建程序?yàn)椋?/div> //KEY控制MP3播放 while (1) { if(key_GetValue()==0) { while(key_GetValue()==0); for(i=0;i<10;i++) { EUSART1_Write(cmd1); } } }
經(jīng)程序的編譯及下載,其測(cè)試的效果如圖7所示。 圖7 KEY控制指令發(fā)送
在連接MP3播放模塊后,其運(yùn)行效果如圖8所示,播放效果良好。 若連接OLED屏,這可以顯示出播放的歌曲名稱,是不是小芯片依然也可以有作為!
圖8 KEY控制MP3播放 |