C语言sopc蜂鸣器按键弹奏中音,SOPC乐曲演奏大作业.doc
PAGE 1
綜合實驗 基于NiosII的樂曲演奏設計
單 位:
班 級:
組 員:
指導老師:
首 都 師 范 大 學
2012年5月
目錄
TOC \o "1-3" \h \u 一.設計概述 3
二.設計要求 3
三.設計方案(總體設計原理、軟件設計、硬件設計) 3
3.1總體設計原理 3
3.2 軟件設計流程圖 4
3.3硬件設計 8
四.實驗環境 9
五.軟件實驗步驟 9
六. 頭文件 11
6.1 music.h 11
6.2 LCD.h 19
七.實驗結果及分析 23
八.總結及遇到問題 24
九.思考題: 24
一.設計概述
本設計基于SOPC builder和 Nios II 8.0的樂曲演奏,使用蜂鳴器進行播放歌曲,本設計編寫多首歌曲可以循環播放,并在液晶屏上顯示歌曲名稱和切換名稱。
實驗前準備:
1、該實驗需要使用七個模塊組中的第七個功能單元,所以三個撥碼開關處于“處于“110”時,即MODEL_SEL2和MODEL_SEL3撥下處于“OFF”狀態,MODEL_SEL1撥下處于“ON”
2、撥碼開關MODEL_SEL5-8全置于“ON ”狀態,即MODEL_SEL5-8撥下處于“ON ”狀態時通過USB BLASTER接口下載。當全部撥下處于“OFF”時可使用開發平臺上LAB_JTAG_PS_AS 接口下載或者核心開發板上JTAG接口下載。
這里用戶可根據自己所用的下載線來選擇適當的下載方式和相應的MODEL_SEL5-8的狀態。
二.設計要求
通過使用PWM對交流蜂鳴器進行控制,實現多首樂曲(6首)的播放。
實現如下功能:
歌曲播放
暫停功能
多首歌曲的切換(6首)
其他擴展要求:在液晶屏上顯示歌曲的名稱,以及上下切換字符(before,after)
三.設計方案(總體設計原理、軟件設計、硬件設計)
3.1總體設計原理
實驗箱的蜂鳴器是交流蜂鳴器,在BZSP輸入一定頻率的脈沖時,蜂鳴器蜂鳴,改變輸入頻率可以改變蜂鳴器的響聲。因此可以利用一個PWM來控制BZSP,通過改變PWM的頻率來得到不同的聲響,以此來播放音樂。
PWM設計說明
PWM輸出一個占空比可調的方波。當一個周期11個時鐘,高電平輸出7個時鐘時的PWM輸出波形如下圖所示。
圖1 PWM輸出波形圖
表一 內部寄存器:
寄存器名
地址偏移量
訪問屬性
描 述
clock_divide
00
讀/寫
用來設定PWM輸出周期的時鐘數
duty_cycle
01
讀/寫
用來設定一個周期內PWM輸出低電平的時鐘個數
enable
10
讀/寫
使能和關閉PWM輸出,為1時使能PWM輸出
保留
11
-
播放歌曲Stop=1暫停Play=1
播放歌曲
Stop=1
暫停
Play=1
否
是
是
否
圖2 程序流程框圖
首先,判斷暫停鍵是否按下,如果沒有,則播放歌曲,如果按下來了暫停鍵,就執行暫停功能。暫停后判斷播放鍵有沒有按下,如果按下了播放鍵,則在斷點的地方接著播放歌曲,
如果沒有,則一直暫停到播放按鍵按下。
主程序代碼:
6首歌曲播放,暫停,及切換上一首、切換下一首同時顯示歌名和play、stop、next、before:
延時程序,延時1ms
延時程序,延時1ms
如果暫停鍵沒有按下,則播放六首歌
如果暫停鍵沒有按下,則播放六首歌
如果暫停鍵按下了,顯示“
如果暫停鍵按下了,顯示“stop”。如果播放按鍵沒按下,把0寫進蜂鳴器,即暫停,如果播放按鍵按下了,在斷點處繼續播放歌曲
上下首歌切換:
第三個按鍵切換上一首第二個按鍵執行暫停功能第一個按鍵執行播放功能判斷按鍵函數
第三個按鍵切換上一首
第二個按鍵執行暫停功能
第一個按鍵執行播放功能
判斷按鍵函數
第四個切換下一首
第四個切換下一首
如果選擇第一首歌,則LCD清屏,顯示第一首歌歌名,同時顯示“
如果選擇第一首歌,則LCD清屏,顯示第一首歌歌名,同時顯示“play”。余下5首同理
圖3 程序
3.3硬件設計
樂曲演奏需添加的IP核
樂曲演奏需添加的IP核
圖4 硬件圖
四.實驗環境
硬件: PC機
GX-SOC/SOPC-DEV-LAB PLATFORM創新開發實驗平臺
GX-SOPC-EP2C35-M672核心板
軟件: Quartus II 8.0
Nios II 8.0
五.軟件實驗步驟
1、.把 altera_avalon_pwm (IP核)拷貝到自己的工程文件夾目錄下,
2. 在主菜單打開Tools->SOPC Buile
總結
以上是生活随笔為你收集整理的C语言sopc蜂鸣器按键弹奏中音,SOPC乐曲演奏大作业.doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【入门】QSS基础入门笔记
- 下一篇: 《七堂极简物理课》