源码和报告请加QQ:2309636835

一、课程设计要求概述

1.课程设计基本功能

本课程设计实现基于basys3的键盘电子琴,基本功能要求如下。

(1)使用PS2接口键盘作为输入识别三音阶21键;

(2)配合PMOD AMP2模块输出不同音频;

(3)可以实现音乐演奏。

2.课程设计扩展功能

在实现基本功能的基础上,本课程设计对键盘电子琴的功能进行了扩展,扩展功能如下。

(1)增加跑马灯的效果让跑马灯随按键的变化而改变;

(2)增加数码管显示效果让数码管显示对应音符及音阶高低;

(3)增加录音效果;

(4)增加自动播放音乐效果。

五、关键模块设计与实现

1.接收外界信号模块

(1)通过片选信号控制有限状态机的3种状态,自动播放模式,键盘输入模式和回放模式;

(2)使用移位寄存器捕捉时钟线下降沿,下降沿触发键盘信号接收与处理。每帧Data有11位数据,使用计数器保存当前接受了几位数据,第一位为开始位,2至9位接受数据,第10位为奇偶校验位,本次不作处理。当遇到第11位断码时,一组数据接收完毕,计数器清零。接收到第0位开始码时,标识当前有键被按下;

(3)歌曲的储存以储存对应的键盘码的方式实现,位于自动播放模式时,通过片选信号控制播放的歌曲,将储存的键盘码读出,0001为第一首歌曲,0011为第二首歌曲;

(4)片选信号高2位为01时开启录音功能,为11时回放录音。

 图5.1 有限状态机示意图

图5.2 用移位寄存器捕捉时钟下降沿

图5.3 处理键盘输入数据

......

......

......

图* 数码管显示仿真

图* 测试结果

数电实验课设:基于basys3的键盘电子琴相关推荐

  1. FPGA编程,verilog实现简易电梯控制系统,某大学数电实验课设

    开发环境:Vivado 2020.1 使用编程语言:Verilog 开发板芯片:xc7a35tftg256-1(具体开发板型号未知,不同版本的开发板可能某些元件的引脚电平会不同,可能需要根据自己手上的 ...

  2. 数电实验报告实验一_大二下学期的两三事之数电实验amp;课设

    数电实验&课设 叮 写在前面 这学期的数电实验老师是陈W老师.上学期的模电,选过一次他的课,线下教学,老师讲课游刃自如,点到为止,但又醍醐灌顶:这学期线上教学,可能是软件运用不熟练,他多少有些 ...

  3. 北邮数电实验三接球小游戏

    文章目录 前言 一.实验要求 二.设计思路 三.设计系统框图 四.源代码 五.遇到的问题和解决办法 六.总结 前言 北邮数电实验三"接球小游戏" 数电实验验收已经结束了,实验报告也 ...

  4. 【数电实验7】Verilog—外星萤火虫

    [2022.05西南交大数电实验] [本代码及波形已通过老师验收.仅供参考.] [参考博客:[数电实验]外星萤火虫设计_难凉oh的博客-CSDN博客] [建议:有些口语化的注释看完删掉比较好哈,怕老师 ...

  5. c语言离散卷积编程,数电实验一 离散卷积的C语言编程.ppt

    数电实验一 离散卷积的C语言编程.ppt 实验一 离散卷积的C语言编程实验,DSP实验室,实验性质,综合设计性实验,实验目的,1 了解和认识常用的各种信号: 2 掌握卷积的定义和计算方法: 3 掌握在 ...

  6. 数电实验三 数据选择器及其应用 任务一:用74151芯片采用降维的方法实现F=ABC+ABD+ACD+BCD; 任务二:用74151芯片采用降维方式实现F=BCD反+BC反+A反D;

    数电实验三 数据选择器及其应用 任务一:用74151芯片采用降维的方法实现F=ABC+ABD+ACD+BCD; 任务二:用74151芯片采用降维方式实现F=BCD反+BC反+A反D: 实验数据单

  7. 西电 操作系统课设 在Ubuntu18.04安装pintos

    西电 操作系统课设 在Ubuntu18.04安装pintos 前言 1. 主要步骤 2. VMware的安装 3. Ubuntu18.04的安装和配置 4. Bochs的安装 4. Pintos安装 ...

  8. 数电实验(一)利用与非门设计四舍五入判别电路

    数电实验(一)利用与非门设计四舍五入判别电路 要求: 1.输入为8421BCD码,接四个逻辑电平开关,同时接数码管. 2.输出和LED相连. 一.写出逻辑函数: F(A,B,C,D)=∑m(5,6,7 ...

  9. 数电实验(三)利用3线-8线译码器74LS138和与非门设计一个表决电路

    数电实验(三)利用3线-8线译码器74LS138和与非门设计一个表决电路 要求: 设计一个表决电路, 当控制端M=0时,输入端A.B.C一致同意时,输出F为1,否则输出为0:当控制端M=1时,输入端A ...

最新文章

  1. spring mvc 与Struts的认识
  2. 64位oracle客户端_开发小记-golang连接Oracle数据库配置
  3. 表示层 业务逻辑层 数据层(UI BLL DAL)
  4. 【活动回顾】Edge X Kubernetes,探索云原生新边界
  5. Android事件分发机制之ACTION_DOWN
  6. request的其他细节
  7. 1.4 为什么深度学习会兴起?(Why is Deep Learning taking off?)
  8. 【Android工具】Yandex!懂你的超级好用手机浏览器,可以安装PCchrome插件的手机浏览器!...
  9. iframe 嵌入html页面,iframe 完美嵌入网页
  10. 《转贴》机器学习 机器视觉 图像处理 牛人牛站
  11. visio-软件设计的各种图
  12. 腾讯区块链的三年与它的打法
  13. 一只纯白小菜鸡是如何走上嵌入式学习这条道路的
  14. WIN10 64位系统下如何 进行OPC和DCOM配置
  15. QT 发布release版本
  16. HighNewTech:2019年5月4日《巴菲特股东大会》—6小时20多个亮点50多个问答(划重点)
  17. 逆向工程核心原理——消息钩取
  18. 搭建属于自己的数字IC EDA环境(五):搭建FPGA自动化环境(Linux下vivado Tcl脚本自动化开发),业余IC设计流程与通路
  19. 解决linux磁盘空间不足的方法
  20. Go 爬虫之 colly 从入门到不放弃指南

热门文章

  1. 微信小程序数据接口,微信小程序获取数据
  2. django 1.8 官方文档翻译:13-1-2 使用Django认证系统
  3. vim中快速产生列项递增数列,vim生成序号
  4. 我们是如何记录图片的?
  5. VIP品会密码加密解密与登录
  6. Unity:素材下载
  7. 『 Spark 』1. spark 简介
  8. Unity_引擎简介_001
  9. 小米官方在线预定——对代码实现的分析
  10. 2012总结--第6篇--装备篇