EDA课程设计硬件电子琴.docVIP

  • 35
  • 0
  • 约3.05千字
  • 约 4页
  • 2018-03-15 发布于河南
  • 举报
EDA课程设计硬件电子琴

硬件电子琴 实验目的 (1)学习利用蜂鸣器和按键设计硬件电子琴。 (2)学习并掌握QUARTUSⅡ软件开发系统的基本操作。 (3)掌握硬件电子琴从软件设计到编程下载的各个步骤。 (4)利用数控分频器设计硬件电子琴的实验并掌握设计思想。 2 设计要求 (1)按下KEY1~KEY7 分别表示中音的DO RE ME FA,SOL,LA,SI. (2)按住KEY8同时按KEY1~KEY7 分别表示高音的DO RE ME FA,SOL,LA,SI (3)按下相应的键有对应LED灯指示 其他要求: 1.晶振为12 MHz 2. 采用CPLD 器件为ALTERA 的EPM7064SL-44 3 实验内容和原理 采用复杂可编程逻辑器件(CPLD)制作,利用EDA软件中的VHDL硬件描述语言编程进行控制,然后烧制实现.采用CPLD来设计的原理图如图1.1所示.它由控制输入电路、CPLD、显示电路和扬声器电路组成。 图1.1 采用FPGA设计的电子琴原理方框图 控制输入电路主要是为用户设计的,起到一个输入控制的作用.CPLD是复杂可编程逻辑器件,也是本设计方案的核心内容,它是实现电子琴运作的主要控制模块.由设计者把编好的VHDL程序烧制到复杂可编程逻辑器件CPLD中,然后通过控制输入电路把乐谱输入到CPLD,产生不同的频率驱动扬声器,发出不同的乐谱.同时也把发出的乐谱符号通过显示器输出. 乐曲演奏的原理:由于组成乐曲的每个音符的频率值(音调)及其持续时间(音长)是乐曲演奏的2个基本数据,因此需要控制输出到扬声器的激励信号的频率高低和该频率信号持续的时间。频率的高低决定了音调的高低,而乐曲的简谱与各音名的频率对应关系如图2所示。所有不同频率的信号都是从同一基准频率分频而得来的,由于音阶频率多为非整数,而分频系数又不能为小数,故必须将计算得到的分频数进行四舍五入取整,基准频率和分频系数应综合考虑加以选择,从而保证音乐不会走调。如在48MHz时钟下,中音1(对应的频率值为523.3HZ)的分频系数应该为(2*523.3)=0xb327.这样只需对系统时钟进行45863次分频即可得所要的中音1.至于其他的音符,同样可由一式求出对应的分频分数,这样利用程序可以很轻松得到相应的乐声。 图2 简谱中的音名与频率的关系 音名 频率/hz 音名 频率/hz 音名 频率/hz 低音1 261.6 中音1 523.3 高音1 1045.5 低音2 293.7 中音2 587.3 高音2 1174.7 低音3 329.6 中音3 659.3 高音3 1318.5 低音4 349.2 中音4 698.5 高音4 1396.9 低音5 329 中音5 784 高音5 1568 低音6 440 中音6 880 高音6 1760 低音7 493.9 中音7 987.8 高音7 1975.5 系统软件总体设计如下: 4 实验步骤 (1)在QuartusII中建立一个工程项目文件beep1.qpf,并在该项目下新建verilog HDL源程序文件beep1.v输入程序代码并保存。完整的verilog HDL程序参考程序清单。 (2)选择目标器件并对相应的引脚进行锁定,在这里所选择的器件为altera公司cyclone系列的EP1C6Q240C8芯片,引脚锁定方法如图所示。将未使用的管脚设置为三态输入。 引脚锁定方法 信号 引脚 信号 引脚 1C6 1C12 EDA 1C6 1C12 EDA Led[0] 50 50 50 Key[0] 121 121 121 Led[1] 53 53 53 Key[1] 122 122 122 Led[2] 54 54 54 Key[2] 123 123 123 Led[3] 55 55 55 Key[3] 124 124 124 Led[4] 176 176 176 Key[4] 143 143 143 Led[5] 47 47 47 Key[5] 141 141 141 Led[6] 48 48 48 Key[6] 158 158 158 Led[7] 49 49 49 Key[7] 156 156 156 beep 175 175 175 clk 28 28 28 (3)对该工程进行全程编译处理,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。 (4)最后拿出跳线短接帽接到JP7和JP6的LED0-LED7,KEY1-KEY8和BEEP.拿出alter byteblasterii下载电缆,并将此电缆的两端分别接到PC机打印机并口和quicksopc核心板上的JTAG下载口上,打开电源,执行

文档评论(0)

1亿VIP精品文档

相关文档