单片机键盘乐器课程设计报告书
课程设计报告基于单片机的简易电子琴设计

课程设计报告课程设计名称:基于51单片机的简易电子琴设计系部名称:中印计算机软件学院学生姓名:班级:学号:成绩:指导教师:开课时间:2012-2013学年第二学期目录1 课程设计目的 (1)2 课程设计题目和要求 (1)3 课程设计报告内容 (2)3.1原理图 (2)3.2系统板硬件连线 (3)3.3主要芯片简介 (3)3.3.1AT89S51简介 (3)3.3.2 LM386 (4)3.3.3LED数码管 (6)4 实现过程 (7)4.1 4X4行列式键盘识别及显示 (8)4.1.1硬件板上的系统连线设计 (9)4.1.2 程序设计内容 (9)4.1.3 I/O并行口直接驱动LED显示 (9)4.2 音乐产生的方法 (11)4.2.1 原理 (11)4.2.2 程序框图 (13)5. 总结 (14)参考书目 (15)附录 (16)1 课程设计目的音乐是热情洋溢的自由艺术,是室外的艺术,像自然那样无边无际,像风,像天空,像海洋。
音乐是灵魂的完美表现。
音乐表达的是无法用语言描述,却又不可能对其保持沉默的东西。
而能把音乐演绎出来的乐器又是很多人的最爱。
在此设计的是一个基于单片机的简易电子琴。
我们对于电子琴如何实现其功能,如音色选择、声音强弱控制、节拍器、声音强弱显示功能等等也很好奇。
电子琴有着独特的音色,它在爱音乐人的手里就是一个有生命的工具,是我们的朋友,它也是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。
它在现代音乐扮演着重要的角色。
单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。
本文的主要内容是用AT89S51单片机为核心控制元件,设计一个电子琴。
以单片机作为主控核心,与键盘、LED显示器、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。
本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。
基于51单片机的16键电子琴课程设计报告.docx

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

河南理工大学《单片机应用与仿真训练》设计报告题目: 模拟电子琴发声控制系统姓名学号:专业班级:指导老师:所在学院:摘要本设计是用 AT89S52 单片机为核心控制元件,设计一个模拟电子琴发声控制系统。
以单片机作为主控核心,与键盘、扬声器、LED 显示器等模块组成核心主控制模块。
在主控模块上设有11个按键,其中7个按键控制7个音符,1个作为功能转换键使用,具有手动随意弹奏和自动播放乐曲的功能,另外3个按键用来实现高、中、低音的音符发音。
下面具体介绍一下单片机各端口的分配功能:单片机的 P2.0-P2.6 为输入端口,用来控制 7个音符的选择弹奏;P2.7 为功能转换键,它能切换手动随意弹奏和自动播放乐曲的功能;P3.0-P3.2 为单片机控制电子琴实现弹奏高、中、低的功能切换键;P0 端口通过上拉电阻接到+5V 上,然后接LED共阴数码管;P1.0 为单片机的输出端口,它通过限流电阻 R 与三极管级基极相接,三极管的发射极又接蜂鸣器。
本设计通过控制单片机定时器的定时时间产生不同频率的音频脉冲,经三极管放大信号后驱动蜂鸣器发出不同音节的声音。
要实现7个音符的各自的高、中、低音,需要建立三个表,分别存储高音、中音和低音的频率值;当三个拨码开关中某一个按下,通过软件选择相应的音频。
按下弹奏键就可弹奏出不同的声音。
另外用软件延时来控制发音时间的长短来控制节拍。
通过把乐谱中的音符和相应的节拍变换为定时常数和延时常数,作为数据表格存放在存储器中。
由程序查表得到定时常数和延时常数,分别用来控制定时器产生的脉冲频率和发出该音频脉冲的持续时间,这样就可以实现乐曲的演奏。
为了实现按键的准确判断和完善电子琴发声的效果,本设计采用了软件防抖的方法,有效的解决了按键抖动的问题。
另外当按下功能切换键,切换至音乐自动播放功能时,本系统能实现四首歌曲的有选择播放,另附带数码管显示提醒。
这样使得电子琴的功能变的更加强大。
本设计为实物电路板设计开发,报告中详细的阐述了电子琴设计的方法和过程。
基于单片机的电子琴课程设计报告

课程设计报告课程名称单片机原理及应用设计题目电子琴的设计专业班级自动化1041姓名赵伟学号1004421112指导教师蔡长青起止时间2013.6.24-2011.7.12成绩评定电气与信息学院12/13学年第二学期《单片机控制系统设计与调试》课程设计任务书指导教师:蔡长青班级:自动化1041、2班地点:机房、单片机实验室(实训中心415)课程设计题目:基于51单片机原理的电子琴的设计一、课程设计目的1.灵活运用单片机的基础知识,依据课程设计内容,能够完成从硬件电路图设计,到PCB制版,再到软件编程及系统调试实现系统功能,完成课程设计,加深对单片机基础知识的理解,并灵活运用,将各门知识综合应用。
2.能够上网查询器件资料,培养对新知识新技术的独立的学习能力和应用能力。
3.独立完成一个小的系统设计,从硬件设计到软件设计,增强分析问题、解决问题的能力,为日后的毕业设计及科研工作奠定良好的基础。
二、课程设计内容(包括技术指标)本设计主要任务是设计一简易电子琴,利用所给键盘的1,2,3,4,5,6,7七个键,能够发出1,2,3,4,5,6,7等7个音符,具有一般演奏功能,同时利用第八个键具有自动播放已存曲目功能。
1. 电子琴及串口原理图的设计、PCB板的制作、焊接。
特别在焊接过程中认真、仔细,避免缺焊、漏焊。
2. 频率初值的计算。
会计算脉冲值与频率的关系。
正确计算出各音阶所对应的频率的初值。
3. 电子琴的工作过程分析。
(1)初始化过程启动时,首先是对定时器T0 进行初始化,设定它的工作状态,对于本系统将T0 设定为工作方式1;(2)按键检测过程初始化完成后,是判断是否有键按下,如果没有按键按下,则继续判断,如果有按键按下,延时一段时间在判断是否有键按下,若无按键按下返回继续判断,若确实有键按下则判断是哪个键按下;(3)声音播放过程根据按键的功能将计数初值装入定时器T0 、T1中中并启动T0 、T1,当T0定时完毕后,重新装入计数初值继续定时并将P3.3取反,再次定时完毕后再一次的装入计数初值继续定时并将P3.3取反,一直循环此操作直到按键释放为止,按键释放后停止T0工作并再次判断是否又有按键按下,并继续执行以前的过程。
C51课程设计电子琴

C51程序设计课程报告——电子琴学院:班级:学号:摘要:随着电子产业的发展和人民生活水平的提高,电子琴在人们生活中将扮演着越来越重要的角色,它改善人们的生活,给人们带来快乐和冶人的情操。
电子琴,它是现代电子科技与音乐结合的产物,是一种新型的键盘乐器,电子琴采用控制功能强大的微处理技术和电子技术,使它融入现代人的生活中,成为不可或缺的一部分。
本设计在充分了解音乐音阶基础上,以AT89S51单片机作为核心控制器件而设计的,以这款单片机作为主控核心,通过程序控制与键盘,运放电路,扬声器等电路组成电子琴的基本单元,本文设计的电子琴,采用十六键技术,模拟了市场上电子琴的基本功能。
可以用弹奏出简单的乐曲;弹奏电子琴时能播放出准确的声音,不弹奏时可以播放置音乐。
本设计给出了电子琴的详细设计方案,电路组成与程序流程并对电子琴可行性模拟仿真,Proteus试验仿真表明本文设计的电子琴运行稳定,电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。
在本文设计的基础上,功能可以延伸和拓展,由于是程序控制,电子琴升级方便,具有很强的市场推广价值。
关键词:AT89S51,电子琴,Proteus仿真,音阶目录一设计背景2二设计目的和要求2 1.设计目的22.设计要求3三设计原理31. 定时/计数器原理32.中断控制33.七段数码管44.矩阵式键盘的识别和显示5四设计组成71.设计的模块组成72.设计的软件实现流程7五设计的电路原理图8六本实验的C语言程序9七仿真和调试151.仿真结果152.调试过程16八实验成果和心得161.实验成果162.心得体会16参考文献:18一设计背景随着人们生活水平的提高和电子产业的高速发展,越来越多的电子产品融入到人们的生活当中,电子琴也不例外,它作为一种冶人们情操,给人们生活增添乐趣的一种乐器,在生活中扮演比较重要的角色,逐步成为人们生活当中的一部分。
电子琴本身是一种敲击乐器,通过敲击不同按键,由于音阶不同而发出不同声响,给人们的带来快乐,音阶的控制和声音大小是通过微控制器和电子电路实现的。
单片机应用课程设计--简易电子琴设计

delay(5);
if (key1 == 0)
{
key_in_flag = 0;
key_value = 4;
}
}
else
{
key_in_flag = 1;
}
key8 = 1;
key7 = 0;
if (key4 == 0)
{
delay(5);
if (key4 == 0)
{
key_in_flag = 0;
参考文献
[1] 赵鑫,蒋亮,齐兆群.数字电路设计[M].北京机械工业出版社,2005年6月第一版
[2] 苏家健,曹柏荣,汪志锋.单片机原理及应用技术[M].高等教育出版社
[3] 李朝青.单片机原理及接口技术[M].北京:北京航天航空大学出版色,2001
[4] 胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,2004
{
key_in_flag = 0;
key_value = 2;
}
}
else
{
key_in_flag = 1;
}
if (key2 == 0)
{
delay(5);
if (key2 == 0)
{
key_in_flag = 0;
key_value = 3;
}
}
else
{
key_in_flag = 1;
}
if (key1 == 0)
方案二: 采用AT89C51单片机进行控制,由于AT89C51不具备ISP功能, 因此Atmel公司已经停产在市面上已经不常见,况且其ROM只有4K在系统将来升级方面没有潜力。
方案三:采用AT89S52单片机进行控制,由于其性价比高,完全满足了本作品智能化的要求,它的内部程序存储空间达到8K,使软件设计有足够的内部使用空间并且方便日后系统升级,使用方便,抗干扰性能提高。
基于51单片机实现的电子琴设计

目录摘要 (3)Abstract (3)1绪论 (4)1.1背景 (4)1.2目的 (4)1.3 意义 (4)1.4基本理论依据和主要工作内容 (4)2 设计方案简述 (6)2.1键盘模块 (6)2.2发声模块 (6)2.3 8X8点阵显示模块 (6)2.4系统技术指标和预期功能 (7)3 详细设计 (8)3.1主要IC芯片介绍 (8)3.2硬件设计 (11)4 设计结果及分析 (19)4.1 测试 (19)5总结 (20)参考文献 (21)附录主要程序代码 (22)摘要单片机的应用已经越来越贴近生活,用单片机来实现一些电子设计也变得容易起来。
本设计阐述的主要内容是一种基于51 单片机的电子琴的设计,其核心芯片AT89S52 单片机,内部电路包括4X4行列式键盘模块、音频放大模块和8X8LED点阵显示模块,本系统运行稳定,功能较为完善,控制系统可靠,性价比较高等,具有一定的实用价值。
对于那些需要显示的信息量不是很大,分辨率不是很高,又需要制造成本相对比较低的场合,使用大、小屏幕LED点阵显示器是比较经济适用的,他可以显示字符、数字和简单图形,显示亮度较高,并且对环境条件要求比较低。
电子乐器的结构较为复杂,音源是由晶体管产生的电振动,并通过音色回路而产生各种音色;同时由周波数调制产生颤音效果,由振幅调制产生各种乐器的音效。
关键词:AT89S52单片机;音频放大模块;8X8点阵AbstractIts applications have become increasingly close to life, with a single chip to achieve a number of electronic design is becoming simpler. The main elements of the design described is based on 51 single-chip, the flower design, the core chip AT89S52 microcontroller Internal circuit including the 4X4 determinant keyboard module, audio amplifier module and 8X8LED dot matrix display module, the system is stable, function better, control system reliability, higher cost and so on, has some practical value. For those who need to display the amount of information is small, resolution is not high, they need to make the occasion a relatively low cost, using large and small screen, LED dot matrix display is more economical, and he can display characters, numbers and simple graphics, display brightness higher and lower demands on the environmental conditions. : The structure of more complex electronic instruments, the source is generated by the transistor electrical vibration, and sound loops generated by a variety of tone; also modulated by the frequency to produce vibrato effects, generated by the amplitude modulated sounds of various instruments.Keywords:AT89S52 Microcontroller;Audio Amplifier Module;8X8 matrix1绪论1.1背景单片机是随着大规模集成电路的出现极其发展,将计算机的CPU,RAM,ROM,定时/计数器和多种I/O接口集成在一片芯片上,形成了芯片级的计算机,因此单片机早期的含义称为单片微型计算机(single chipmicrocomputer).它拥有优异的性价比、集成度高、体积小、可靠性高、控制功能强、低电压、低功耗的显著优点.主要应用于智能仪器仪表、工业检测控制、机电一体化等方面,并且取得了显著的成果。
基于单片机的电子琴课程设计报告书

本科课程设计课程名称:单片机原理与接口技术设计项目:简易电子琴设计实验地点:跨越机房专业班级:通信0901 学号: 2009001330 学生:田野同组人:刚瑛梁邦爽指导教师:武娟萍2012年 05月 26日一、设计目的本设计以AT89C51单片机为核心,采用常用电子器件设计。
要求最少8个按键,每个按键对应一种音调,按下按键发声,松开按键后声音延迟一段时间后停止,即带余音的电子琴,延时时间可以设置,要求最少8个不同音调,可以采用标准的音调设计。
本次课程设计主要研究基于AT89C51单片机的简易电子琴设计二、设计器材AT89C51,蜂鸣器,PNP型三极管,晶振,独立按键三、总体设计方案1.设计思路此次设计硬件电路分四大模块较为简单,主要由独立按键、单片机AT89C51、音频功放及扬声器构成。
以AT89C51为主控器件,对其进行编译,达到我们的设计要求。
对于软件部分下面有详细介绍。
2.电路总设计框图如图1:图1 电路总设计框图3.音频放大电路在一定频率围,具有固定频率的振动就能产生音乐,但是单片机产生的音频脉冲直接驱动扬声器并不能产生所要实现的音乐,因为他没有足够的驱动能力,需要音频功率放大电路。
这里选用PNP型三极管来驱动蜂鸣器,是音响效果更为理想,音频功放电路接口如图2所示:图2 音频放大电路4.音乐播放电路对于播放一首固定音乐,不仅要知道音符也要知道节拍,对应节拍延时时间设定表,对单片机进行编程就可以实现功能。
放歌产生电路如图3,其中单片机的P3.0口控制音乐开始播放控制端口,P3.2口是控制音乐停止播放的控制端口,当小按键S10按下时P3.0口获得低电平,音乐开始重复播放,当小按键S9按下时,P3.2口获得低电平,经过单片机的处理,音乐停止播放,单片机回到最初工作状态。
而P2口的每个端口都连接一个按键,分别控制1,2,3,4,5,6,7,˙1八个不同的音符。
图3 音乐播放电图5.总体电路图如下图:图4 总体电路图,四、设计原理分析1.产生声音的方法:只要让扬声器通过产生大小变化的电流(脉动电流或交流),就能使扬声器发出声音,因此若以程序不断的输出1—0—1—0—1……就可以令扬声器发出声音,由于MCS—51系列的输出端口输出电流不够大,所以必须加上晶体管把电流放大后再驱动扬声器,如图2所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工学院
课程设计报告
(2015 ~2016学年度第二学期)
课程名称接口技术与外部设备课程设计名称键盘电子乐器
学号
专业
班级
地点
教师
1.课程设计目的及要求
1)、实验目标、功能设计要求:利用并行接口8255作为键盘接口,设计一个具有2个八度音阶的键盘乐器,音阶键不少于16个,采用扫描方式管理键盘,音域围自行定义。
2)、软件、硬件环境:Windows XP 、1G 存
2. 课程设计步骤 (1) 弄明白设计题目
(2) 查阅资料,搞清楚8253和8255的工作原理。
(3) 上网查阅相关资料 (4) 编程实现
(5) 完成课程设计报告
3. 课程设计容 1)、设计概述
(a) 开发平台:masm (b) 参考书籍:《微型计算机接口技术及应用》、《IBM —PC 汇编语言课程设计》、《手把手教你学单片机》 2)、处理流程 (a)8253 引脚图
1224
12…
1413GN D D 7D 6D 5D 4D 3D 2
D 1D 0CLK 0OUT 0GAT
E 0
V CC W R
D C
S A 1A 0CLK 2
OUT 2
GATE 2CLK 1
GATE 1OUT 1…
8253/8254
图3.1 定时/计数器8253/8254 引脚图
B
1234567891011121314151617181920
4039383736353433323130292827262524232221
P A3P A2P A1P A0RD CS GND A0A1P A7P A6P A5P A4P A0P A1P A2P A3P B0P B1P B2
P A5P A6P A7P A0WR RESET D0D1D2D3D4D5D6D7Vcc P A7P A6P B5P B4P B3
8255
4. 课程设计结果 运行正确:
摁键盘Q~U :能发低音
摁键盘A~J :能发比上行高一音阶的音频 摁键盘Z~M :能发比上行更高一音阶的音频
5. 课程设计总结分析
组员分工及评分:查找资料:阳吉红(B )、董湘北(B ) 程序修改实现:媚(B +)
董湘北自我评价:接到课程设计题目,刚开始刚到非常的棘手,通过翻阅了上学期的《汇编语言程序实验教程》,了解到控制电路是以位触发和定时器控制两种不同的方式驱动扬声器发声,8253驱动扬声器,8255接受输入的数据。
实验完成还行,巩固了硬件知识。
阳吉红自我评价:这个实验中我们遇到了很多问题但在老师和同学的帮助下得到了解决
开 始
获取中断向量
调用8253,驱动扬声器 返回中断向量 设置中断向量
调用8255,按键发声
返回DOS
,这个实验让我了解了接口实验的基本要求,总之学到不少东西啦。
媚自我评价:学完接口技术这门课程,觉得自己学得还可以。
但是做完课程设计,才发现自己学得远远不够。
虽然课程设计做得不是非常好,但是,还是学到一些东西。
知道了8253不近可以用来做计数器,还能编程驱动扬声器。
我们这个课程用到了8253和8255。
8253用来驱动扬声器,8255用来接受从键盘输入的数据。
总的来说,结果还不是太坏。
还是学到了一点东西。
6. 附录(源程序)
DATAS SEGMENT
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODE SEGMENT
ASSUME CS:CODE
D1=131;设置音频围
D2=147
D3=165
D4=175
D5=196
D6=220
D7=247
Z1=262
Z2=294
Z3=330
Z4=349
Z5=392
Z6=440
Z7=494
G1=523
G2=587
G3=659
G4=714
G5=784
G6=880
G7=988
OLDINT8 DD ?
OLDINT9 DD ?
TIME DW 0
ASCII DB10H,11H,12H,13H,14H,15H,16H
DB 1EH,1FH,20H,21H,22H,23H,24H
DB 2CH,2DH,2EH,2FH,30H,31H,32H MUSIC DW D1,D2,D3,D4,D5,D6,D7
DW Z1,Z2,Z3,Z4,Z5,Z6,Z7
DW G1,G2,G3,G4,G5,G6,G7
NEWINT8: DEC CS:WORD PTR TIME ;指向TIME JZ CLOSEV
NEW8_0:JMP CS:OLDINT8
CLOSEV:PUSH AX
IN AL,61H
AND AL,0FDH
OUT 61H,AL
POP AX
JMP NEW8_0
VOICE:MOV CX,AX
MOV DX,12H
MOV AX,34DCH
DIV CX
PUSH AX
MOV AL,0B6H
OUT 43H,AL
POP AX
OUT 42H,AL
XCHG AL,AH
OUT 42H,AL
IN AL,61H
OR AL,03H
OUT 61H,AL
RET
NEWINT9: IN AL,60H
PUSH AX
IN AL,61H
OR AL,80H
OUT 61H,AL
AND AL,7FH
OUT 61H,AL
MOV AL,20H
OUT 20H,AL
STI
POP AX
PUSH AX
CMP AL,80H
JB NEW90
MOV CS:WORD PTR TIME,04H
JMP QUIT
NEW90:PUSH CS
POP ES
MOV DI,OFFSET ASCII
MOV CX,22D
CLD
REPNZ SCASB
JCXZ QUIT
SUB DI,OFFSET ASCII
DEC DI
SHL DI,1
MOV AX,ES:[DI+MUSIC]
MOV CS:WORD PTR TIME,0H
CALL VOICE
QUIT:POP AX
CMP AL,01H
JNZ MEUN
LDS DX,CS:OLDINT8
MOV AX,2508H
INT 21H
LDS DX,CS:OLDINT9
MOV AX,2509H
INT 21H
MOV AX,4C00H
INT 21H
MEUN:STI
JMP MEUN
START:MOV AX,CS
MOV DS,AX
MOV AX,3508H ;获取中断向量
INT 21H
MOV CS:W ORD PTR OLDINT8,BX
MOV CS:WORD PTR OLDINT8+2,ES
MOV AX,3509H
INT 21H
MOV CS:W ORD PTR OLDINT9,BX
MOV CS:WORD PTR OLDINT9+2,ES
MOV AX,2508H ;设置中断向量
MOV DX,OFFSET NEWINT8
INT 21H
MOV AX,2509H
MOV DX,OFFSET NEWINT9
INT 21H
JMP MEUN
CODE ENDS
END START。