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相关推荐
- C语言sopc蜂鸣器按键弹奏中音,基于sopc 蜂鸣器
基于sopc的 蜂鸣器 实验 实验五 蜂鸣器音乐播放实验 一.实验目的 (1).掌握蜂鸣器音乐播放的实验原理. (2).学习PWM对交流蜂鸣器的控制. 二.实验设备 硬件:PC机,SmartSOPC教 ...
- c语言编写程序判断图的连通,图论期末大作业编程题(如何判断一个4连通4正则图为无爪、无K4图)...
博士期间估计这可能是唯一一个要编程的作业,搞了半天弄出这个东西,放这里为以后用到的时候查找方便. 说来也是可笑,读博士期间发现大家对上课也都没什么兴趣,老师也是那么回事,都说博士期间学的课程是要有助于 ...
- 合肥学院C语言大作业,C语言实践课程综合大作业..doc
C语言实践课程综合大作业. 昆明理工大学 <程序设计基础>课程 综合设计实践教学课题报告 课程名称: C语言程序设计综合大作业 课题名称:数学计算工具程序设计 组长:学号 20131040 ...
- noj大作业c语言扫雷,noj大作业.doc
作业名称:算法演示程序学 院:航海学院班 级:学 号:2013300951姓 名:苏和团队组成: 西北工业大学 2015年11月11日 1.问题与背景(描述程序所要解决的问题或应用背景) C语言经过几 ...
- 天津大学仁爱学院c语言期末考试题,天津大学《C语言程序设计》2016年7月考试期末大作业...
请在以下三组题目中任选一组作答,满分100分. 第一组: 一.编程题(每题20分,共40分) 1.编写程序.每当输入10个评委的分数后,求该选手的最后得分并输出(设10个评委按照以下打分原则为选手打分 ...
- 外卖派单模拟系统C语言代码,GitHub - Sndav/SuperDeliver: 外卖派单模拟系统大作业
概要设计书 [TOC] 1.0 编码规范 变量名 变量名使用下划线命名方法 变量定义后,写上该变量的作用及其含义 变量不得使用i,j,k,a,b,c,包括循环变量 循环变了使用iter_i,iter_ ...
- C语言课设电子英汉词典系统(大作业)
一.设计功能(文章仅供参考) a. 词条录入:即添加单词记录. b. 信息显示:将所有的单词按字母顺序显示. c. 词条修改:对已经输入的单词信息进行修改. d. 词条删除:删除某个单词记录. e. ...
- 基于游戏开发的C语言大作业视频集锦
基于游戏开发的C语言大作业视频集锦 从2014年至今,尝试了基于游戏开发的C语言程序设计教学,每次课程均会布置大作业,以下视频为一些学生做的大作业视频集锦. 基于游戏开发的C语言大作业视频集锦 后续, ...
- FPGA 之 SOPC 系列(二)SOPC开发流程及开发平台简介
今天给大侠带来今天带来FPGA 之 SOPC 系列第二篇,SOPC开发流程及开发平台简介相关内容,希望对各位大侠的学习有参考价值,话不多说,上货. 本篇首先详细介绍了SOPC开发的基本流程,然后通过实 ...
最新文章
- Luogu P4859「已经没有什么好害怕的了」
- Hibernate第一次课(2)---Hibernate原理简介
- 崩坏西游html5多游游戏,崩坏西游无限元宝版
- RocketMQ基础概念剖析源码解析
- 淘宝的开源分布式文件系统TFS
- iis7.5+.net4.5 报404错误
- android lbs查询距离,不仅能搜索还能查信息 带你了解LBS应用
- yacc和lex细节解答以及实现反向自动微分
- html音频波纹播放器插件,Wavesurfer.js音频播放器插件的使用教程
- linux livecd 挂载硬盘,网上的Ubuntu LiveCD硬盘安装方法
- 哈希(hash):从原理到应用
- BING搜索引擎技巧
- 最近 火火火 的开源项目
- 【windows7桌面图标蓝底】4步帮你去掉
- 《人性的弱点》25句经典语录
- Cocos2d-js cc.director介绍
- dig @ip 域名 +subnet=ip返回结果各个参数解释与说明
- Fluent API
- Linux 网络基础 C语言常用API 快速翻阅笔记 (字节序篇)
- 炼气化神——信源编码之定乾坤
热门文章
- win7单机计算机就可打开,月影传说单机版电脑版
- Jackson 解析j@JsonIgnorePropertiesson数据之忽略解析字段注解
- uni-app安心打包ios失败
- 深信服上网行为管理开启snmp_深信服上网行为管理部署方式及功能实现配置说明....
- 【Python】【小明爬楼梯】
- 显示服务器事件,服务器事件查看
- 激活win10正式企业版
- Python学习 Day38 jQuery常用方法03
- The authenticity of host ‘gree129 (192.168.**.129)‘ can‘t be established.
- 使用豆瓣安装python包(以numpy为例)