ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:2.54MB ,
资源ID:168209      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/168209.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(芯创电子手把手教你学习FPGA—蜂鸣器篇.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

芯创电子手把手教你学习FPGA—蜂鸣器篇.docx

1、2013芯创电子 FPGA 开发板配套教程手把手教你学习 FPGA蜂鸣器篇或许您可能听说过 FPGA,但不是很了解;或许您已经知道 FPGA 的存在,但没有掌握这门技术;或许您打算在不久的将来对 FPGA 进行初步尝试;不管怎样,只要您对 FPGA 感兴趣,那么就让我们一起踏出通往 FPGA 世界的第一步,芯创电子手把手教你学习 FPGA。芯创电子工作室51FPGA2013/3/32013芯创电子 FPGA 开发板配套教程目录1. 实验简介32. 背景知识32.1. 蜂鸣器的基础知识32.2. 蜂鸣器发声基本原理32.3. DIY 开发板蜂鸣器电路图43. 实验环境44. 实验一(蜂鸣器发出救

2、护车鸣笛声)54.1. 实验目的54.2. 试验任务54.3. 原理分析54.4. 代码实现64.5. 实验步骤64.6. 实验现象74.7. 日积月累74.8. 课后作业75. 实验二(简易硬件电子琴)85.1. 实验目的85.2. 试验任务85.3. 原理分析85.4. 代码实现95.5. 实验步骤105.6. 实验现象105.7. 日积月累115.8. 课后作业11淘 宝 店 铺 : h t t p : / 5 1 f p g a . t a ob a o. c om /91. 实验简介本教程以实验为主,力求以详细的步骤和讲解让大家以最快的方式了解FPGA 的开发的基本流程以及 Quar

3、tus II 软件的使用方法。蜂鸣器篇的实验相对简单,为基础实验,希望通过对蜂鸣器篇的学习,大家能够掌握以下知识要点: 熟悉和掌握 FPGA 开发的基本流程和 Quartus II 软件的基本使用方法。 掌握蜂鸣器发声的基本原理。2. 背景知识2.1. 蜂鸣器的基础知识蜂鸣器的作用 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电, 广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话 机、定时器等电子产品中作发声器件。2.2. 蜂鸣器发声基本原理 硬件电路发声的基本原理硬件电路的发声原理,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制 FPGA 芯片某个引脚输出一

4、定频率的矩形波,接上无源蜂鸣器就能发出相应频率的声音。乐曲中的每一音符对应着一个确定的频率,要想 FPGA 发出不同音符的音调,实际上只要控制它输出相应音符的频率即可。乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频,就可以在无源蜂鸣器上连续地发出各个音符的音调。而要准确地演奏出一首乐曲,仅仅让无源蜂鸣器能够发声是不够的,还必须准确地控制乐曲的节奏,即乐曲中每个音符的发生频率及其持续时间是乐曲能够连续演奏的两个关键因素。 音符频率的获得多个不同频率的信号可通过对某个基准频率进行分频器获得。由于各个音符的频率多为非整数,而分频系数又不能为小数,故必须将计算机得到的分频系数

5、四舍五入取整。若基准频率过低,则分频系数过小,四舍五入取整后的误差较大。若基准频率过高,虽然可以减少频率的相对误差,但分频结构将变大。实际上应该综合考虑这两个方面的因素,在尽量减少误差的前提下,选取合适的基准频率。2.3. DIY 开发板蜂鸣器电路图如上图所示,蜂鸣器用PNP三极管进行驱动控制,并使用无源蜂鸣器,当在BEEP输入一定频率的脉冲时,蜂鸣器蜂鸣,改变输入频率可以改变蜂鸣器的响声。因此可以利用一个PWM来控制BEEP,通过改变PWM的频率来得到不同的声响,也可以用来播放音乐。3. 实验环境 硬件实验环境为 EEPW FPGA 开发板 DIY 活动套件 软件实验环境为 Quartus

6、II9.0 开发软件4. 实验一(蜂鸣器发出救护车鸣笛声)4.1. 实验目的 掌握蜂鸣器发声基本原理。 掌握采用 Verilog HDL 语言编程实现蜂鸣器发出救护车鸣笛声的设计方法。4.2. 试验任务实现 DIY 开发板上的蜂鸣器发出救护车鸣笛声4.3. 原理分析DIY 开发板板载 50MHZ 的晶振,通过 Verilog HDL 语言编程将此频率分频后驱动一个 I/O 口。这个 I/O 口连接到 DIY 开发板上的无源蜂鸣器。通过改变这个 I/O 口的输出频率,就可以使蜂鸣器发出各种声音和音乐。本次实验实现蜂鸣器发出救护车鸣笛声,我们可以通过让蜂鸣器交替发出两个音调来实现。首先我们使用一个

7、 25 位的计数器“div_cnt”来产生一个低频的方波。其最高有效位(div_cnt 24)以大约 1.5Hz 的频率翻转。我们使用这一位(div_cnt 24)来控制主计数器产生在两个频率之间切换的输出波形,这样一来就可以交替发出两个音调,发出类似救护车的鸣笛声。4.4. 代码实现4.5. 实验步骤(1) 建立新工程项目:打开 Quartus II 软件,进入集成开发环境,点击 FileNew projectwizard 建立一个工程项目。(2) 建立文本编辑文件:点击 FileNew.在该项目下新建 Verilog HDL 源程序文件,输入试验程序中的源程序代码保存后选择工具栏中的按钮启

8、动编译,若在编译中发现错误,则找出并更正错误,直到编译成功为止。(3) 选择器件型号及引脚的其他设置:选择所用的 FPGA 器件EP2C5Q208C8,以及进行一些配置。选择配置器件 EPCS4,设置不需要使用的 IO 功能为 As inputs,tri-stated。点击两次 ok,回到主界面。(4) 配置 FPGA 引脚:在 Quartus II 软件主页面下,选择 AssignmentsPins 或选择工具栏上按钮,配置相关引脚。(5) 编译工程项目:在 Quartus II 主页面下,选择 ProcessingStart Compilation 或点击工具栏上的按钮启动编译,直到出现“

9、Full Compilation Report”对话框,点击 OK 即可。(6) 下载设计程序.sof 文件到目标 FPGA,下载采用 JTAG 方式(由于配置芯片擦写次数有限,实验均采用 JTAG 下载方式)。4.6. 实验现象DIY 开发板上的蜂鸣器发出救护车鸣笛声4.7. 日积月累有源蜂鸣器和无源蜂鸣器区别,这里的“源”不是指电源。而是指震荡源。 也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。 而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用 2K5K 的方波去驱动它。有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路。无源蜂鸣器的优点是:便宜,声音频率可控,可以做

10、出“多来米发索拉西”的效果。有源蜂鸣器的优点是:程序控制方便 。4.8. 课后作业蜂鸣器发出警车鸣笛声或者报警声。5. 实验二(简易硬件电子琴)5.1. 实验目的 掌握蜂鸣器发声的基本原理和实现方法。 掌握利用蜂鸣器和按键设计简易硬件电子琴的方法。5.2. 试验任务在 DIY 开发板上实现一个简易电子琴,按下 KEY1KEY7 分别表示中音的 DO、RE、MI、FA、SOL、LA、SI;按住 KEY8 再按 KEY1KEY7 分别表示高音的 DO、RE、MI、FA、SOL、LA、SI。5.3. 原理分析DIY 开发板板载 50M HZ 晶振,故在 50M HZ 时钟下,中音 1(对应的频率值为

11、 523.3Hz)的分频系数为 50000000/(2*523.3)=47774,这样只需对系统时钟进行 47774 次分频即可得到所要的中音 1。可利用同样方法求出其他音符对应的分频系数,这样利用程序可以很轻松得到相应的音调,结合按键可实现简易的电子琴。音名频率(Hz音名频率(Hz)音名频率(Hz)低音 1261.6中音 1523.3高音 11045.5低音 2293.7中音 2587.3高音 21174.7低音 3329.6中音 3659.3高音 31318.5低音 4349.2中音 4698.5高音 41396.9低音 5392中音 5784高音 51568低音 6440中音 6880高

12、音 61760低音 7493.9中音 7987.8高音 71975.55.4. 代码实现5.5. 实验步骤(1) 建立新工程项目:打开 Quartus II 软件,进入集成开发环境,点击 FileNew projectwizard 建立一个工程项目。(2) 建立文本编辑文件:点击 FileNew.在该项目下新建 Verilog HDL 源程序文件,输入试验程序中的源程序代码保存后选择工具栏中的 按钮启动编译,若在编译中发现错误,则找出并更正错误,直到编译成功为止。(3) 选择器件型号及引脚的其他设置:选择所用的 FPGA 器件EP2C5Q208C8,以及进行一些配置。选择配置器件 EPCS4,

13、设置不需要使用的 IO 功能为 As inputs,tri-stated。点击两次 ok,回到主界面。(4) 配置 FPGA 引脚:在 Quartus II 软件主页面下,选择 AssignmentsPins 或选择工具栏上按钮,配置相关引脚。(5) 编译工程项目:在 Quartus II 主页面下,选择 ProcessingStart Compilation 或点击工具栏上的按钮启动编译,直到出现“Full Compilation Report”对话框,点击 OK 即可。(6) 下载设计程序.sof 文件到目标 FPGA,下载采用 JTAG 方式(由于配置芯片擦写次数有限,实验均采用 JTA

14、G 下载方式)。5.6. 实验现象依次按下 KEY1KEY7,蜂鸣器依次发出中音的 DO、RE、MI、FA、SOL、LA、SI;按住 KEY8 再依次按下 KEY1KEY7,蜂鸣器依次发出高音的 DO、RE、MI、FA、SOL、LA、SI。大家可以找个曲谱,试试硬件电子琴的效果如何。淘 宝 店 铺 : h t t p : / 5 1 f p g a . t a ob a o. c om /115.7. 日积月累Verilog HDL 语言提供的 case 语句可直接处理多分支选择。case 括弧内的表达式为控制表达式,case 分支项的表达式为分支表达式。控制表达式通常表示为控制信号的某些位,分支表达式则用这些控制信号的具体状态值来表示,因此分支表达式又可称为常量表达式。当控制表达式的值与分支表达式的值相等时,就执行分支表达式后面的语句。如果所有分支表达式的值都没有与控制表达式的值相匹配的,就执行 default 后面的语句,为避免产生锁存器,case 表达式应完整。5.8. 课后作业实现乐曲自动演奏,演奏歌曲自选。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1