南京邮电大学 通达学院 51 protues 课程设计 简易电子琴 实验报告
基于51单片机的16键电子琴课程设计报告.docx

基于51单片机的16键电子琴课程设计报告.docx
本课程设计旨在设计一款基于51单片机的16键电子琴,利用该电子琴进行乐器演奏
练习。
课程设计的目标是通过51单片机的控制,使乐器的按键实现发声功能,即在按下按
键后,将发出相应的音调,且声音质量较为清晰、拒绝杂音;同时,设计外设及程序使乐
器美观并能在一定程度上体现主人的个性操作习惯,体现出一定程度上的可定制性和稳定性。
课程设计使用MCS-51单片机作为核心芯片,搭建计算机与电子琴模块之间的桥梁,
通过控制要求,配备8位延时定时器、8位计数器/比较器和定时/计数器模块的硬件模块,通过定时/计数器去控制音色的发声数量,再加以PCB板设计,完成各模块的焊接、网络
接线,通过连接各功能模块,实现51单片机控制芯片,实现程序控制电子琴的具体功能。
最后,课程设计尝试完成女声、爵士电子琴等曲目,通过实验,充分验证设计的可行性,并发现一些在设计过程中的不足,如欠缺外设模块,无法实现一些特殊功能等,给出
相应的改善思路,以供设计实现。
在设计过程中,综合运用硬件电路设计、程序设计思维,构建整个系统的总体构架,
实现相应的电子琴演奏功能,使得本次课程设计取得了一定的成果。
51单片机设计电子琴报告含代码

电子琴设计报告一、实验目的1.更深刻的了解、学习8051单片机的发声原理,利用定时器可以发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调。
2.其次,定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平,由于定时参数不同,所以发出不同频率的脉冲。
3.进一步熟悉定时器的编程方法和定时初值的计算,进一步熟悉键盘扫描电路的工作原理和编程方法,了解单片机芯片的接口技术。
二、实验要求1.能够通过键盘演奏音符。
2.能够保存演奏的音乐,并实现回放。
3.有音调调整功能(如:C调,G调)。
4.自由发挥其他功能。
5.要求有单片机硬件系统框图,电路原理图,软件流程图。
三、实验基本原理简易电子琴有主控、蜂鸣器、键盘输入、电源四部分组成。
主控部分以AT89S52 为核心,用C 语言编程,充分运用AT89S52 的8k字节闪烁可编程可擦除只读存储器及其丰富的I/O 口,实现了对键盘数据的采集,和对蜂鸣器声音的控制;键盘输入部分采用4×4的键盘键盘输入,可以实现多个音调;供电部分可对整个电路进行供电。
经测试,整机基本实现预计功能,可以实现键盘演奏音符、调整音调、保存并回放的功能。
四、实验设计分析根据实验所要求实现的功能设计实现该项实验设计的软件电路及硬件电路。
五、实验要求实现A.电路设计1. 整体设计计划利用AT89S52 单片机的功能结合C 语言编程,实现电子琴播放音符等的简单功能,然后结合AT89S52 单片机的控制功能,利用蜂鸣器将输入表达出来,结合程序编制过程中,对各个I/O 的利用设置了键盘的扫描读入,结合电子琴需要多键位的现实,加入了4×4 键盘输入,达到了预期的效果。
2.分块设计1.控制模块AT89S52单片机是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含有8kb的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。
简易电子琴设计报告(完整版)

中南民族大学课程设计题目简易电子琴学院计算机科学学院专业班级姓名指导教师2010 年 6 月23 日电子技术课程设计任务书设计题目:简易电子琴学生姓名:专业班级:学号:指导教师签名:年月日一、设计条件1.可选元件(或自备元件):运放:若干功放:若干电阻、电容、电位器:若干2.可用仪器:万用表,示波器,毫伏表,信号发生器,直流稳压源二、设计任务及要求1.设计任务根据技术要求和已知条件,完成对简易电子琴电路的设计、装配和调试。
2.设计要求(1)按下不同琴键即改变RC 值,能发出C 调的八个基本音阶。
采用运放构成振荡电路,用集成功放电路输出。
八个基本音阶C 调对应频率如下表所列:C 调 1 2 3 4 5 6 7 i f 0 / Hz264297330352396440495528(2)选择电路方案,完成对确定方案电路的设计。
计算电路元件参数,选择元件,画出总体电路原理图,阐述基本原理。
(用Proteus 或MultiSim 软件完成仿真)(3)安装调试并按规定格式写出课程设计报告书。
三、时间安排1.第10周:布置设计任务,讲解设计要求、实施计划、设计报告等要求。
完成选题。
2.第10 ~ 14周:完成资料查阅、设计、仿真。
3.第15 ~ 16周:制作和调试,完成课程设计报告撰写。
4.第16 ~ 17周:提交课程设计报告,课程设计验收,答辩。
目录摘要 (3)关键词 ....................................................................................................................................... 3 1 绪论 ....................................................................................................................................... 3 2 技术指标及要求 . (3)2.1 设计任务及要求 ........................................................................................................ 3 2.2 设计思想 .................................................................................................................... 4 3 方案论证及整体电路工作原理 . (4)3.1 方案论证 .................................................................................................................... 4 3.2 整体电路工作原理 .................................................................................................... 5 4 单元电路设计:计算,元器件选择及电路图 . (5)4.1 RC 串并联选频网络电阻的选择 ................................................................................ 5 4.2 滤波电容的选择 ........................................................................................................ 6 4.3 电路图如下所示 ........................................................................................................ 7 5 Multisim 仿真结果显示 ......................................................................................................... 7 6课程设计成果展示: .......................................................................................................... 10 7元件及器件明细 .................................................................................................................. 11 8成果评价,设计特点,存在的问题及改进意见 .. (11)8.1 成果放入评价: (11)正弦波 发生器 功率 放大 扬 声器八只 按键8.2 本次设计的特点 (11)8.3存在的问题和改进的意见 (12)9设计总结: (12)10附录: (12)摘要简易电子琴一般是由正弦波产生电路,功率放大电路和滤波电路组成。
简易电子琴实验报告

简易电子琴实验报告引言:本实验旨在设计和制作一台基于微控制器的简易电子琴,通过按下不同键盘上的按键产生不同音调,从而实现音乐的演奏。
电子琴采用的主要器件为微控制器、音频发声模块以及按键电路。
一、实验目的1.学习和理解数字音乐技术的基本原理;2.掌握微控制器的编程方法和音频发声的实现技术;3.熟悉电子琴的工作原理和设计过程。
二、实验器材1. 单片机:Arduino Uno;2.音频发声模块;3.面包板;4.按键;5.电阻、电容等元件;6.连线和连接器。
三、实验步骤1. 将Arduino Uno连接至音频发声模块,确保连接正确并稳定。
2.在面包板上连接按键电路,将按键与单片机的引脚相连。
3. 编写Arduino Uno的程序,实现按键按下时的音调发声。
4.上电,并测试按键是否能够产生正确的音调。
四、实验结果经过实验得到的结果如下:1.按下不同按键,电子琴会产生不同的音调。
2.通过改变程序中相应按键的频率值,可以调整音调的高低。
五、实验分析1.通过对单片机的编程,实现了按键按下时的音调发声,成功地实现了电子琴的基本功能。
2.实验中使用了音频发声模块,利用其内置的DAC(数字模拟转换器)实现了数字音频信号的模拟输出。
六、实验总结和心得体会通过本次实验,我对电子琴的工作原理和设计过程有了更深入的了解。
学习和掌握了单片机的编程方法和音频发声的实现技术,提高了我的实验能力和动手能力。
同时,也对数字音乐技术有了初步的认识。
在今后的学习和工作中,我将继续深入研究和应用这些知识,为电子音乐的发展做出自己的贡献。
简易电子琴实验报告

简易电子琴实验报告
《简易电子琴实验报告》
实验目的:通过搭建简易电子琴,了解电子琴的工作原理和基本原理。
实验材料:
1. Arduino开发板
2. 电阻
3. 电容
4. 蜂鸣器
5. 连接线
6. 电池
实验步骤:
1. 将Arduino开发板连接到电脑上,并打开Arduino IDE软件。
2. 在Arduino IDE软件中,编写一个简单的程序,使用蜂鸣器发出不同频率的声音。
3. 将电阻和电容连接到Arduino开发板上,用来调节蜂鸣器发出的声音的频率和音调。
4. 将蜂鸣器连接到Arduino开发板上。
5. 用连接线将所有部件连接起来,确保电路连接正确。
6. 将电池连接到Arduino开发板上,为电子琴供电。
实验结果:
经过以上步骤的操作,我们成功搭建了一个简易的电子琴。
通过调节电阻和电容的数值,我们可以改变蜂鸣器发出的声音的频率和音调。
通过编写程序,我
们可以让蜂鸣器发出不同的音符,从而演奏出简单的乐曲。
实验结论:
通过这次实验,我们了解了电子琴的基本原理和工作原理。
电子琴通过控制电流的频率和波形,产生不同的音符。
通过这种方式,我们可以使用电子琴演奏出各种乐曲。
同时,我们也学会了如何使用Arduino开发板和简单的电子元件搭建一个简易的电子琴。
这次实验为我们打开了电子琴的神秘面纱,让我们对电子琴有了更深入的了解。
课程设计【简易电子琴设计】报告书

课程设计报告题目课程名称院部名称专业班级学生姓名学号课程设计地点课程设计学时指导教师简易电子琴电路制作一实验目的1.学习调试电子电路的方法,提高实际动手能力。
2.了解由振荡电路与功率放大电路结合构成简易电子琴的电路及原理。
二实验内容【实验原理】1.简易电子琴电路是将振荡电路与功率放大电路结合的产物。
(1)RC振荡电路(如图1所示)是由RC选频网络和同向比例运算电路组成,对不同频率的输入信号产生不同的响应。
1、RC桥式振荡电路1.1、电路图RC桥式振荡电路如图1所示。
1.2、RC串并联选频网络RC桥式振荡电路可以选出特定频率的信号。
具体实现过程的关键是RC串并联选频网络,其理论推导如下:可得选频特性:即当f0=1/(2πRC)时,输出电压的幅值最大,并且输出电压是输入电压的1/3,同时输出电压与输出电压同相。
通过该RC串并联选频网络,可以选出频率稳定的正弦波信号,也可通过改变R,C的取值,选出不同频率的信号。
2、振荡条件2.1、自激振荡条件图2所示为含外加信号的正弦波振荡电路,其中A,F分别为放大器回路和反馈网络的放大系数。
图2中若去掉Xi,由于反馈信号的补偿作用,仍有信号输出,如图3所示Xf=Xi,可得自激振荡电路。
自激振荡必须满足以下条件:2.2、起振条件自激振荡的初始信号一般较小,为了得到较大强度的稳定波形,起振条件需满足|A·F|>1。
在输出稳定频率的波形前,信号经过了选频和放大两个阶段。
具体来说,是对于选定的频率进行不断放大,非选定频率的信号进行不断衰减,结果就是得到特定频率的稳定波形。
设计方案1、设计电路图设计电路图如图4所示。
图4即是八音阶微型电子琴的原理电路图,8个开关对应着电子琴8个音阶琴键,使用时只能同时闭合一个开关。
在实际电路中,为达到起振条件AF>1,常用两个二极管与电阻并联,可实现类似于热敏电阻的功效。
另外需要说明的是,理论上电路的初始信号是由环境噪声及电路本身的电压提供的。
基于51单片机的简易电子琴汇编程序实验报告

单片机应用课程设计报告——简易电子琴电子信息科学与技术2013-2xxx单片机应用课程设计报告——简易电子琴xxx摘要本设计是一个基于AT89C52系列单片机的简易电子琴,通过硬件电路制作以及软件编译,设计制作出一个由按键电路、复位电路、数码管显示电路,定时器及蜂鸣器组成简易的电子琴。
通过键盘按键确定键号送去显示以及产生对应的频率的方波。
本次实验的难点是键盘的扫描程序设计,因为本次实验实用的键盘是通过P3.4-P3.7端口输入测试信号,从P3.0-P3.3端口进行检测的,涉及到端口的读入写出原理等问题,后来通过先送出F0数值使低四位处于读入状态,高四位处于输出状态等方法实现。
还有一个问题是如何使单片机产生确定频率的波形,后来利用定时器计时结束后的溢出信号,控制信号反转实现。
关键词:电子琴扫描式键盘数码管1、设计任务和要求1.1设计任务利用AT89C52单片机以及各种元器件自行设计编程制作一个简易电子琴。
1.2任务要求基本要求:利用查询式键盘,数字键1、2、3、4、5、6、7作为电子琴的按键,按键按下时发出Do、Re、Mi、Fa、So、La、Xi的声音。
在弹奏音乐的同时将音符显示在数码管上。
扩展要求:具备存储播放所弹奏的音乐的功能,用三个功能键进行切换状态:按一下按键控制是否进入存储状态。
;按键二控制是否进入演奏状态;按键三为复位键。
1.3方案论证(1)如何产生一定频率的方波信号首先我们知道,每一个音符都有一个固定的频率,当蜂鸣器根据不同频率的方波信号便会震动产生对应的音符。
其次要产生音频脉冲,只要算出某一音频的周期(1/f),然后将此周期除以2,即为半周期的时间,由于使用的是12MHz的晶振,所以每一个计数的脉冲长度为1us,脉冲的个数用半周期时间除以1us,用65536减去脉冲的个数便可以得到计数初值。
利用定时器计时这半个周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。
简易电子琴设计实验报告

简易电子琴设计实验报告指导老师:谭建军老师班级:0309409姓名:周博学号:0309409132011-12-7摘要:电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器,它在音乐演奏中已成为不可缺少的一部分。
单片机是一个具有功能强大和编程灵活性的控制器,它已广泛应用于现代人们的生活中,扮演着重要的角色。
本设计主要是使用AT89C51单片机及单片机C语言,在PROTEUS仿真平台上实现以单片机为核心控制元件的一个具有16个按键的电子琴,同时还增加了音乐播放功能。
本文中给出了该系统设计的硬件电路,软件设计等。
其次,详细阐述了程序的各个模块和实现过程。
本设计具有硬件电路简单、功能完善、控制可靠、运行稳定等特点,具有一定的实用性和参考价值。
关键词: 单片机;电子琴;PROTEUS;C语言一、电子琴的相关介绍1,电子琴的应用背景随着电子科技的飞速发展,电子技术正在逐渐改善着人们的学习、生活、工作,因此开发本系统希望能够给人们多带来一点生活上的乐趣。
基于当前市场上的玩具市场需求量大,其中电子琴就是一个很好的应用方面。
单片机技术使我们可以利用软硬件实现电子琴的功能,从而实现电子琴的微型化,可以用作玩具琴、音乐转盘以及音乐童车等等。
并且可以进行一定的功能扩展。
鉴于传统电子琴可以用键盘上的“k0”到“k16”键演奏从低So到高DO等16个音,从而可以用来弹奏喜欢的乐曲。
电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器,它在现代音乐扮演着重要的角色。
简易电子琴是电声乐队的中坚力量,常用于独奏主旋律并伴以丰富的和声。
还常作为独奏乐器出现,具有鲜明时代特色。
但电子琴的局限性也是十分明显:旋律与和声缺乏音量变化,过于协和、单一;在模仿各类馆、弦乐器时,音色还不够逼真,模仿提琴类乐器的音色时,失真度更大,还需要不断改进。
单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通达学院
2013 /2014 学年第一学期课程设计II实验报告
模块名称PROTEUS51
专业
学生班级
学生学号
学生姓名
指导教师
一、本系统的目的
本系统设计制作一个可演奏的电子琴。
综合应用了两项设计。
(1)键盘矩阵识别,通过按键控制播放14个音阶并显示。
(2)通过控制开关完成事先写入歌曲的播放。
二、主要芯片简介
AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
8255是常用的扩展单片机IO资源的芯片,8255原理是只利用单片机的一个并行口来扩展出几个并口,使得单片机可以接入更多的设备
三、系统组成
本系统只要以51单片机为主控核心,8255IO外扩、与矩阵键盘、扬声器、LED显示管模块一起组合而成。
具体如下:
四、系统工作原理
本系统扫描键盘矩阵、显示当前状态及音阶、扬声器发出对应音符或音乐。
4X4行列式非编码键盘:键盘只简单地提供按键开关的行列矩阵。
有关按键的识别、键码的确定与输入、去抖动等功能均由软件完成。
行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此,需要设置入口、输出口一个,该方法在微机系统中被广泛使用。
键盘接口必须具有去抖动、防串键、按键识别和键码产生4个基本功能。
用8255H的PC口接4×4矩阵键盘,以PC0-PC3为输出线以PC4-PB7为输入线,PA与PB与数码管相连,PA为段选,PB为位选。
五、硬件总体设计
本系统由键盘矩阵、LED显示管、扬声器这几个部分组成,LED显示管显示当前按键,扬声器发出对应音符。
硬件总体设计图如下:
具体元件使用
8LED数码管
矩阵键盘
自动播放开关、录音开关、回放开关和扬声器
六、关于音频与计数初值的选择
一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。
利用AT89C51的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T=1/523=1912μs,因此只要令计数器计时956μs/1μs=956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。
计数脉冲值与频率的关系式是N=fi÷2÷fr
式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。
其计数初值T的求法如下:T=65536-N=65536-fi÷2÷fr
例如:设K=65536,fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。
T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr=65536-500000/fr
低音DO的T=65536-500000/262=63627
中音DO的T=65536-500000/523=64580
高音DO的T=65536-500000/1046=65059
注:本系统值采用了期中24个音阶,通过按键来切换不同八度,半音不在考虑之内。
七、系统操作说明
(1)Keil下编译,产生目标HEX文件,Proteus下Programme Files选择产生的HEX文件,点击运行开始模拟。
(2)开启本系统autoplay开关闭合,播放预先存储的乐曲。
(3)断开开关,按任意键盘,数码管显示所按的音阶,扬声器发出相应的音符,按下时持续发声并数码管显示所按下的音的参数,释放时停止发声,数码管不显示。
(4)程序流程图:
八、单片机程序代码
完整程序见附一
(1)方波信号发生程序
通过对定时器0赋不同的初值来调整输出端的频率达到扬声器产生不同频率声音的目的。
uint code tab[]=
{
63628,63835,64021,64103,64260,64400,64524,
64580,64684,64777,64820,64898,64968,65030,
65058,65110,65157,65178,65217,65252,65283
};
void T0_time0(void)interrupt 1
{
TH0=STH0;
TL0=STL0;
SPK=!SPK;
}
(2)键盘扫描程序
PC口低4位输出低电平,检测是否有按键按下,如果有按键按下,再输出3高1低来检测是在哪一行哪一列的键按下。
第15、16键通过对scale变量值的改变来实现14键组合方式(低音7个中音7个或中音7个高音7个)PC=0x0;
if((PC&0xf0)!=0xf0)
{
PC = 0xe;
if((PC&0xfe)!=0xfe)
{
key = PC;
}
else
PC = 0xd;
if((PC&0xfd)!=0xfd)
{
key = PC;
}
else
PC = 0xb;
if((PC&0xfb)!=0xfb) {
key = PC;
}
else
PC = 0x7;
if((PC&0xf7)!=0xf7) {
key = PC;
}
switch(key)
{
case 0xee:
k = 0+scale*7;
break;
case 0xde:
k = 1+scale*7;
break;
case 0xbe:
k = 2+scale*7;
break;
case 0x7e:
k = 3+scale*7;
break;
case 0xed:
k = 4+scale*7;
break;
case 0xdd:
k = 5+scale*7;
break;
case 0xbd:
k = 6+scale*7;
break;
case 0x7d:
k = 7+scale*7;
break;
case 0xeb:
k = 8+scale*7;
break;
case 0xdb:
k = 9+scale*7;
break;
case 0xbb:
k = 10+scale*7;
break;
case 0x7b:
k = 11+scale*7;
break;
case 0xe7:
k = 12+scale*7;
break;
case 0xd7:
k = 13+scale*7;
break;
case 0xb7:
if(scale==1)
{
scale = scale-1;
};
break;
case 0x77:
if(scale==0)
{
scale = scale+1;
};
break;
default:
break;
}
}
(3)显示程序
用循环使每个数码管分别显示对应的内容,通过延迟来使视觉上产生多个数码管同时亮的效果。
while(((PC&0xf0)!=0xf0)&(key!=0xb7)&(key!=0x77))
{
for(h=0;h<8;h++)
{
PB = DSY_Index[h];
PA = DSY_CODE_Queue[k][h];
timer(50);
}
};
九、运行结果
十、设计总结
通过本次实验我对51单片机的应用更加熟悉了,也对电子琴发声有了一定的认识。
因为按键数量有限,在本次实验中通过使用16键最后两键来实现21个音,通过扩展可以实现更多音的范围,由于时间有限所以没有尝试。
在编程过程中加入了录音放音程序,但放音功能没有成功。
由于PROTUES软件对电脑运行资源消耗的原因,本打算在扬声器输出端增加音色处理电路和程控放大器来调整音量,最终因为仿真的时候软件奔溃退出没有实现。
模拟电路在仿真的时候仍存在很多问题,相对实际硬件电路,仿真的延迟很大。
实验中仍有许多问题需要解决和思考,如果将来从事相关工作,更应努力去解决这些问题。
设计成绩评定。