電器網(wǎng)站建設(shè)策劃書百度信息流推廣技巧
基于STM32的微型電子琴設(shè)計(jì)
- ==報(bào)告中的圖片和文字太多了,全部一個(gè)一個(gè)把搬過來太麻煩了,需要完整文本和代碼自行q我963160156 ==
- 第一章 總體設(shè)計(jì)
- 1.1 系統(tǒng)功能
- 1.2 主要技術(shù)性能指標(biāo)
- 第二章硬件設(shè)計(jì)
- 2.1 整體硬件圖
- 2.2 按鍵模塊
- 2.3 揚(yáng)聲器模塊
- 2.4 顯示模塊
- 2.5 主控模塊
- 第三章 軟件設(shè)計(jì)
- 3.1 主要工作原理
- 3.2 PWM發(fā)生器
- 3.3 music播放器模塊
- 3.4 exti外部中斷
- 3.5 按鍵相關(guān)驅(qū)動
- 第四章 整體實(shí)現(xiàn)功能
- 參考文獻(xiàn)
==報(bào)告中的圖片和文字太多了,全部一個(gè)一個(gè)把搬過來太麻煩了,需要完整文本和代碼自行q我963160156 ==
第一章 總體設(shè)計(jì)
1.1 系統(tǒng)功能
按照設(shè)計(jì)要求,本系統(tǒng)具有以下功能:
共有三個(gè)基本模式:電子琴模式、錄音模式、播放器模式
電子琴模式:7個(gè)基本按鍵控制產(chǎn)生7種音調(diào),功能鍵實(shí)現(xiàn)調(diào)節(jié)音階和音量
錄音模式:可分為錄音和放音兩個(gè)模塊,錄音狀態(tài)下會記錄彈奏的音調(diào)以及時(shí)間;放音模式調(diào)用音樂播放器某些模塊,實(shí)現(xiàn)相同的功能。
音樂播放器模式:可以實(shí)現(xiàn)音樂的播放、暫停、切歌、調(diào)速、順序播放、單曲循環(huán)、隨機(jī)播放、以及進(jìn)度條顯示。
有兩個(gè)全局按鍵中斷,可控制模式切換和全局靜音/暫停。
1.2 主要技術(shù)性能指標(biāo)
基本按鍵:7個(gè);
功能按鍵:6個(gè);
全局中斷按鍵:2個(gè);
揚(yáng)聲器:1個(gè);
揚(yáng)聲器功率:1w;
LCD1602:1塊;
主要模式:3個(gè);
曲庫:8首;
音域范圍:262Hz~2217Hz;
音量階數(shù):3階;
速度階數(shù):4階;
循環(huán)模式:3種;
?
第二章硬件設(shè)計(jì)
總體系統(tǒng)設(shè)計(jì)上在硬件上共分為3個(gè)區(qū)域:基本按鍵區(qū)、功能按鍵區(qū)、LCD顯示區(qū)。在軟件的設(shè)計(jì)上共分為3個(gè)主要模式:電子琴模式、錄音模式、播放器模式。主控模塊選擇使用STM32f103rbt6芯片,進(jìn)行編程、控制、實(shí)現(xiàn)電子琴以及播放器功能。
2.1 整體硬件圖
2.2 按鍵模塊
? 按鍵模塊分為兩部分:基本按鍵和功能按鍵
倆個(gè)部分按鍵分別接在單片機(jī)的PC0-PC6以及PC8-PC13接口上。
2.3 揚(yáng)聲器模塊
揚(yáng)聲器模塊接在單片機(jī)的PC07接口上。
2.4 顯示模塊
? 將LCD1602的D0~D7分別連接到單片機(jī)的 PA0~7,使能端 E、 RW、 RS分別連接到單片機(jī)的 PA8、 PA11、 PA12。
2.5 主控模塊
第三章 軟件設(shè)計(jì)
3.1 主要工作原理
? 設(shè)計(jì)的主要工作原理是利用STM32所內(nèi)置的定時(shí)器TIM3產(chǎn)生一個(gè)PWM信號驅(qū)動揚(yáng)聲器產(chǎn)生特定頻率的聲音。通過改變定時(shí)器TIM3的分頻預(yù)置數(shù)改變PWM信號的頻率從而產(chǎn)生不同音調(diào)的聲音。通過改變占空比,從而產(chǎn)生不同音量的聲音。
? 相關(guān)流程圖如下:
3.2 PWM發(fā)生器
3.3 music播放器模塊
? music模塊包含了產(chǎn)生聲音,靜音,音樂播放,音樂切換,進(jìn)度條展示等相關(guān)函數(shù),全都由本人編寫
靜音模塊:通過調(diào)用TIM_SetTIM3Compare2()函數(shù)讓占空比為0,進(jìn)而達(dá)到靜音效果。
void buzzerQuiet(void)//停止發(fā)聲
{
TIM_SetTIM3Compare2(0);
}
發(fā)聲函數(shù):通過調(diào)用TIM_SetTIM3Autoreload設(shè)置TIM3的自動裝載值實(shí)現(xiàn)產(chǎn)生特定頻率PWM信號,傳入的參數(shù)為聲音頻率和音量參數(shù)。
進(jìn)度條顯示函數(shù):可以顯示播放進(jìn)度以及全局狀態(tài),如當(dāng)前曲目、暫停狀態(tài)、音量、播放速度等。
下一首函數(shù):根據(jù)傳入nextmode參數(shù)不同進(jìn)行順序,單曲,隨機(jī)下一首。
音樂播放函數(shù):傳入樂譜(由結(jié)構(gòu)體數(shù)組實(shí)現(xiàn)),調(diào)用彈奏音符函數(shù),實(shí)現(xiàn)音樂自動播放。
3.4 exti外部中斷
? 本設(shè)計(jì)使用了PC8,PC9口的按鍵作為兩個(gè)外部中斷,控制全局切換模式,以及全局暫停/靜音。
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的鎖存,實(shí)現(xiàn)更豐富需求。
第四章 整體實(shí)現(xiàn)功能
單片機(jī)下載完成后,顯示Mode Selection Please Press 1-3表示初始化完成等待選擇模式。
按下key1,進(jìn)入Piano模式,可以開始彈奏。
按下key13可進(jìn)行音量調(diào)節(jié),key12可以調(diào)節(jié)音調(diào)
按下key8切換模式,進(jìn)入錄音模式
錄音模式下,按key0進(jìn)行開始錄音
錄音會記錄音調(diào)以及持續(xù)時(shí)間,按下key13停止錄音
錄音完成后按下key13放音,可以聽到記錄的曲子
按下key13切換模式進(jìn)入播放器模式
按下key0-key7選擇曲目,也可以直接按key13開始播放
播放時(shí),按下key13下一首,key12調(diào)音量,key11調(diào)速度,key10調(diào)節(jié)下一首。 按下key9可暫停。
播放時(shí)有進(jìn)度條顯示。
參考文獻(xiàn)
[1]馮建華,趙亮.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與產(chǎn)品開發(fā)[M].北京:人民郵電出版社 2004
[2]譚浩強(qiáng).C語言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社 1999
[3]吳國經(jīng)等 單片機(jī)應(yīng)用技術(shù) 中國電力出版社, 2004.1
[4]李全利,遲榮強(qiáng)編著 單片機(jī)原理及接口技術(shù) 高等教育出版社,2004.1
[5]張毅剛等, MCS-51單片機(jī)應(yīng)用設(shè)計(jì),哈工大出版社,2004年第2版
[6]霍孟友等,單片機(jī)原理與應(yīng)用,機(jī)械工業(yè)出版社,2004.1
[7]霍孟友等,單片機(jī)原理與應(yīng)用學(xué)習(xí)概要及題解,機(jī)械工業(yè)出版社,2005.3
[8]許泳龍等,單片機(jī)原理及應(yīng)用,機(jī)械工業(yè)出版社,2005.1