第一章 總體設(shè)計
1.1 系統(tǒng)功能
按照設(shè)計要求,本系統(tǒng)具有以下功能:
共有三個基本模式:電子琴模式、錄音模式、播放器模式
電子琴模式:7個基本按鍵控制產(chǎn)生7種音調(diào),功能鍵實現(xiàn)調(diào)節(jié)音階和音量
錄音模式:可分為錄音和放音兩個模塊,錄音狀態(tài)下會記錄彈奏的音調(diào)以及時間;放音模式調(diào)用音樂播放器某些模塊,實現(xiàn)相同的功能。
音樂播放器模式:可以實現(xiàn)音樂的播放、暫停、切歌、調(diào)速、順序播放、單曲循環(huán)、隨機播放、以及進度條顯示。
有兩個全局按鍵中斷,可控制模式切換和全局靜音/暫停。
1.2 主要技術(shù)性能指標
基本按鍵:7個;
功能按鍵:6個;
全局中斷按鍵:2個;
揚聲器:1個;
揚聲器功率:1w;
LCD1602:1塊;
主要模式:3個;
曲庫:8首;
音域范圍:262Hz~2217Hz;
音量階數(shù):3階;
速度階數(shù):4階;
循環(huán)模式:3種;
第二章硬件設(shè)計
總體系統(tǒng)設(shè)計上在硬件上共分為3個區(qū)域:基本按鍵區(qū)、功能按鍵區(qū)、LCD顯示區(qū)。在軟件的設(shè)計上共分為3個主要模式:電子琴模式、錄音模式、播放器模式。主控模塊選擇使用STM32f103rbt6芯片,進行編程、控制、實現(xiàn)電子琴以及播放器功能。
2.1 整體硬件圖
2.2 按鍵模塊
按鍵模塊分為兩部分:基本按鍵和功能按鍵
倆個部分按鍵分別接在單片機的PC0-PC6以及PC8-PC13接口上。
2.3 揚聲器模塊
揚聲器模塊接在單片機的PC07接口上。
2.4 顯示模塊
將LCD1602的D0 ~ D7分別連接到單片機的 PA0~7,使能端 E、 RW、 RS分別連接到單片機的 PA8、 PA11、 PA12。
2.5 主控模塊
第三章 軟件設(shè)計
3.1 主要工作原理
設(shè)計的主要工作原理是利用STM32所內(nèi)置的定時器TIM3產(chǎn)生一個PWM信號驅(qū)動揚聲器產(chǎn)生特定頻率的聲音。通過改變定時器TIM3的分頻預(yù)置數(shù)改變PWM信號的頻率從而產(chǎn)生不同音調(diào)的聲音。通過改變占空比,從而產(chǎn)生不同音量的聲音。
相關(guān)流程圖如下:
3.2 PWM發(fā)生器
3.3 music播放器模塊
music模塊包含了產(chǎn)生聲音,靜音,音樂播放,音樂切換,進度條展示等相關(guān)函數(shù),全都由本人編寫
靜音模塊:通過調(diào)用TIM_SetTIM3Compare2()函數(shù)讓占空比為0,進而達到靜音效果。
void buzzerQuiet(void)//停止發(fā)聲
{
TIM_SetTIM3Compare2(0);
}
發(fā)聲函數(shù):通過調(diào)用TIM_SetTIM3Autoreload設(shè)置TIM3的自動裝載值實現(xiàn)產(chǎn)生特定頻率PWM信號,傳入的參數(shù)為聲音頻率和音量參數(shù)。
進度條顯示函數(shù):可以顯示播放進度以及全局狀態(tài),如當前曲目、暫停狀態(tài)、音量、播放速度等。
下一首函數(shù):根據(jù)傳入nextmode參數(shù)不同進行順序,單曲,隨機下一首。
音樂播放函數(shù):傳入樂譜(由結(jié)構(gòu)體數(shù)組實現(xiàn)),調(diào)用彈奏音符函數(shù),實現(xiàn)音樂自動播放。
3.4 exti外部中斷
本設(shè)計使用了PC8,PC9口的按鍵作為兩個外部中斷,控制全局切換模式,以及全局暫停/靜音。
3.5 按鍵相關(guān)驅(qū)動
通過函數(shù)判斷按鍵值,mode參數(shù)可調(diào)節(jié)是否支持連按。
3.6 LCD1602驅(qū)動
LCD初始化相關(guān)代碼采用例程,只列出關(guān)鍵代碼:
void LCD_SHOW(u8* tab0,u8* tab1)
{
if(tab0)
LCD1602_Show_Str(0, 0, tab0);
if(tab1)
LCD1602_Show_Str(0, 1, tab1);
}
定義函數(shù)LCD_SHOW,傳入字符串顯示,在避免直接調(diào)用LCD的顯示函數(shù),通過tab0和tab1的鎖存,實現(xiàn)更豐富需求。
第四章 整體實現(xiàn)功能
單片機下載完成后,顯示Mode Selection Please Press 1-3表示初始化完成等待選擇模式。
按下key1,進入Piano模式,可以開始彈奏。
按下key13可進行音量調(diào)節(jié),key12可以調(diào)節(jié)音調(diào)
按下key8切換模式,進入錄音模式
錄音模式下,按key0進行開始錄音
錄音會記錄音調(diào)以及持續(xù)時間,按下key13停止錄音
錄音完成后按下key13放音,可以聽到記錄的曲子
按下key13切換模式進入播放器模式
按下key0-key7選擇曲目,也可以直接按key13開始播放
播放時,按下key13下一首,key12調(diào)音量,key11調(diào)速度,key10調(diào)節(jié)下一首。 按下key9可暫停。
播放時有進度條顯示。
-
單片機
+關(guān)注
關(guān)注
6026文章
44457瀏覽量
631065 -
lcd
+關(guān)注
關(guān)注
34文章
4387瀏覽量
166726 -
播放器
+關(guān)注
關(guān)注
5文章
392瀏覽量
37326 -
STM32
+關(guān)注
關(guān)注
2263文章
10848瀏覽量
353821 -
電子琴
+關(guān)注
關(guān)注
4文章
152瀏覽量
30415
發(fā)布評論請先 登錄
相關(guān)推薦
評論