0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于STM32單片機的簡易電子琴設(shè)計(1)

CHANBAEK ? 來源:高級嵌入式軟件 ? 作者:高級嵌入式軟件 ? 2023-07-24 10:46 ? 次閱讀

第一章 總體設(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可暫停。

播放時有進度條顯示。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6026

    文章

    44457

    瀏覽量

    631065
  • lcd
    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
收藏 人收藏

    評論

    相關(guān)推薦

    單片機制作簡易電子琴

    單片機制作簡易電子琴
    發(fā)表于 09-08 10:28

    基于51單片機簡易電子琴設(shè)計

    基于51單片機設(shè)計的簡易電子琴
    發(fā)表于 07-21 06:37

    基于單片機+藍牙HC-05模塊的簡易電子琴設(shè)計資料分享

    單片機實踐項目》之基于單片機+藍牙HC-05模塊的簡易電子琴設(shè)計與制作(七十五)鏈接:添加鏈接描述
    發(fā)表于 01-17 06:26

    基于單片機簡易電子琴設(shè)計

    使用簡單的51單片機就可以實現(xiàn)電子琴的設(shè)計制作,操作簡單易于初學(xué)者使用。
    發(fā)表于 11-18 17:13 ?75次下載

    單片機簡易電子琴

    簡易電子琴,基于單片機89c51,匯編語言和原理圖
    發(fā)表于 12-14 15:22 ?33次下載

    51 單片機簡易電子琴

    用51單片機設(shè)計16鍵簡易電子琴
    發(fā)表于 02-01 13:19 ?43次下載

    基于單片機簡易電子琴

    基于單片機簡易電子琴,四首歌曲循環(huán)播放
    發(fā)表于 06-19 15:42 ?81次下載

    使用51單片機進行簡易電子琴設(shè)計的電路和程序資料合集免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用51單片機進行簡易電子琴設(shè)計的電路和程序資料合集免費下載。
    發(fā)表于 06-14 17:45 ?14次下載
    使用51<b class='flag-5'>單片機</b>進行<b class='flag-5'>簡易</b><b class='flag-5'>電子琴</b>設(shè)計的電路和程序資料合集免費下載

    使用C51單片機和Proteus仿真設(shè)計簡易電子琴的應(yīng)用實例資料說明

    本文檔的主要內(nèi)容詳細介紹的是使用C51單片機和Proteus仿真設(shè)計簡易電子琴的應(yīng)用實例資料說明。
    發(fā)表于 05-20 08:00 ?19次下載
    使用C51<b class='flag-5'>單片機</b>和Proteus仿真設(shè)計<b class='flag-5'>簡易</b><b class='flag-5'>電子琴</b>的應(yīng)用實例資料說明

    基于單片機電子琴設(shè)計

    基于單片機電子琴設(shè)計方法介紹。
    發(fā)表于 05-28 10:59 ?315次下載

    基于STM32單片機電子琴設(shè)計與實現(xiàn)

    基于STM32單片機電子琴設(shè)計與實現(xiàn)
    發(fā)表于 06-27 09:25 ?117次下載

    單片機簡易電子琴設(shè)計報告..

    單片機簡易電子琴設(shè)計報告..(單片機解密)-該文檔為單片機簡易
    發(fā)表于 07-22 16:11 ?123次下載
    <b class='flag-5'>單片機</b>的<b class='flag-5'>簡易</b><b class='flag-5'>電子琴</b>設(shè)計報告..

    電子DIY》之《單片機實踐項目》之基于單片機+藍牙HC-05模塊的簡易電子琴設(shè)計與制作(七十五)(Proteus仿真與實物制作)

    單片機實踐項目》之基于單片機+藍牙HC-05模塊的簡易電子琴設(shè)計與制作(七十五)鏈接:添加鏈接描述
    發(fā)表于 01-17 10:27 ?7次下載
    《<b class='flag-5'>電子</b>DIY》之《<b class='flag-5'>單片機</b>實踐項目》之基于<b class='flag-5'>單片機</b>+藍牙HC-05模塊的<b class='flag-5'>簡易</b><b class='flag-5'>電子琴</b>設(shè)計與制作(七十五)(Proteus仿真與實物制作)

    基于單片機電子琴設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于單片機電子琴設(shè)計.rar》資料免費下載
    發(fā)表于 01-03 11:06 ?0次下載

    基于單片機電子琴設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于單片機電子琴設(shè)計.rar》資料免費下載
    發(fā)表于 01-12 09:45 ?13次下載