关于电子琴的课程设计.doc

上传人:asd****56 文档编号:79330651 上传时间:2023-03-21 格式:DOC 页数:23 大小:1.09MB
返回 下载 相关 举报
关于电子琴的课程设计.doc_第1页
第1页 / 共23页
关于电子琴的课程设计.doc_第2页
第2页 / 共23页
点击查看更多>>
资源描述

《关于电子琴的课程设计.doc》由会员分享,可在线阅读,更多相关《关于电子琴的课程设计.doc(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 桂林电子科技大学课程设计(论文)报告用纸 第 III 页 共 III 页 课程设计(论文)说明书 题 目:基于单片机的电子琴设计院 (系):信息与通信学院 专 业:微电子学 学生姓名:刘东松 学 号:0900240117 指导教师:施娟 职 称:副教授 2012年 12月 10日摘 要随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。我们都会抽空欣赏世界名曲,作为对精神的洗礼。本论文设计一个基于单片机的简易电子琴。我们对于电子琴如何实现其功能,如声音强弱控制、节拍器、自动放音功能等等也很好奇。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它

2、在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S52单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。关键词:AT89S52单片机;键盘;扬声器;自动放音AbstractWith the development and progress of the society, the music has bec

3、ome a very important part of our lives, someone once said that people do not like the music to the evil. We will be taking the time to enjoy the world famous, as the baptism of the spirit. This paper designed a simple microcontroller-based keyboard. How to achieve its function for the keyboard, such

4、 as the sound intensity control, metronome, automatic playback function is also very curious.The keyboard is a product of modern electronic technology combined with music, is a new type of keyboard instruments. In modern music, it plays an important role, the microcontroller has a powerful control f

5、unctions and flexible programming features, it has become an irreplaceable part of the integration into the life of modern people. The main content of this paper is to design a keyboard with AT89S52 microcontroller as the core control elements. MCU as the master core, composed of a the core main con

6、trol module, keyboard, speaker modules on the main control module has 16 keys and speaker. The system is stable, simple hardware circuit, software functions, reliable, cost-effective control system, has some practical and valuable reference.Key words:AT89S52 microcontroller; Keyboard; speakers; auto

7、matically playback目 录引言11 方案论证11.1 系统框图11.2 主要芯片介绍11.2.1 AT89S52简介11.2.2主要功能特性21.2.3 LM386内部电路22 实现过程42.1 4X4行列式键盘识别及显示43 程序设计内容53.1 原理53.2 程序流程图74 总结与展望84.1全文总结84.2研究展望85 结论8谢辞9参考文献10附录11 桂林电子科技大学课程设计(论文)报告用纸 第 19 页 共 19 页引言单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传

8、统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S52单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。

9、1 方案论证1.1 系统框图扬声器功放电路复位电路AT89S52单片机芯片键盘电路图1 系统框图1.2 主要芯片简介1.2.1AT89S52简介功能特性:AT89S52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52具有以下标准功能:8k字节Flash,256

10、字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash AT89S52。图2 AT89S52管脚图1.2.2 主要功能特性与MCS-51单片机产品兼容;8K字节在系统可编程Flash存储器;1000

11、次擦写周期;全静态操作:0Hz33Hz;三级加密程序存储器;32个可编程I/O口线;三个16位定时器/计数器八个中断源;全双工UART串行通道、低功耗空闲和掉电模式;掉电后中断可唤醒;看门狗定时器;双数据指针;掉电标识符。1.2.3 LM386内部电路LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。LM386特性:静态功耗低,约为4mA,可用于电池供电;工作电压范围宽,4V-12V或5V-18V;外围元件少;电压增益可调,20-200;低失真度。LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用

12、于录音机和收音机之中。图3 LM386内部电路原理图与通用型集成运放相类似,它是一个三级放大电路。第一级为差分放大电路,T1和T3、T2和T4分别构成复合管,作为差分放大电路的放大管;T5和T6组成镜像电流源作为T1和T2的有源负载;T3和T4信号从管的基极输入,从T2管的集电极输出,为双端输入单端输出差分电路。使用镜像电流源作为差分放大电路有源负载,可使单端输出电路的增益近似等于双端输出电容的增益。第二级为共射放大电路,T7为放大管,恒流源作有源负载,以增大放大倍数。第三级中的T8和T9管复合成PNP型管,与NPN型管T10构成准互补输出级。二极管D1和D2为输出级提供合适的偏置电压,可以消

13、除交越失真。引脚2为反相输入端,引脚3为同相输入端。电路由单电源供电,故为OTL电路。输出端(引脚5)应外接输出电容后再接负载。电阻R7从输出端连接到T2的发射极,形成反馈通路,并与R5和R6构成反馈网络,从而引入了深度电压串联负反馈,使整个电路具有稳定的电压增益。图4 功放电路原理图2 实现过程2.1 4X4行列式键盘识别及显示组成键盘的按键有机械式、电容式、导电橡胶式、薄膜式多种,但不管什么形式,其作用都是一个使电路接通与断开的开关。目前微机系统中使用的键盘按其功能不同,通常可分为编码键盘和非编码键盘两种基本类型。编码键盘:键盘本身带有实现接口主要功能所需的硬件电路。不仅能自动检测被按下的

14、键,并完成去抖动、防串键等功能,而且能提供与被按键功能对应的键码(如ASCII码)送往CPU。所以,编码键盘接口简单、使用方便。但由于硬件电路较复杂,因而价格较贵。非编码键盘:键盘只简单地提供按键开关的行列矩阵。有关按键的识别、键码的确定与输入、去抖动等功能均由软件完成。目前微机系统中,一般为了降低成本大多数采用非编码键盘。键盘接口必须具有去抖动、防串键、按键识别和键码产生4个基本功能:去抖动:每个按键在按下或松开时,都会产生短时间的抖动。抖动的持续时间与键的质量相关,一般为520mm。所谓抖动是指在识别被按键是必须避开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。去抖问题可通

15、过软件延时或硬件电路解决。防串键:防串键是为了解决多个键同时按下或者前一按键没有释放又有新的按键按下时产生的问题。常用的方法有双键锁定和N键轮回两种方法。双键锁定,是当有两个或两个以上的按键按下时,只把最后释放的键当作有效键并产生相应的键码。N键轮回,是当检测到有多个键被按下时,能根据发现它们的顺序依次产生相应键的键码。被按键识别:如何识别被按键是接口解决的主要问题,一般可通过软硬结合的方法完成。常用的方法有行扫描法和线反转法两种。行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此,需要设置入口、输出口一个,该方法在微机系统中被广泛使用。线反转法的基本思想是通

16、过行列颠倒两次扫描来识别闭合键,为此需要提供两个可编程的双向输入/输出端口。键码产生:为了从键的行列坐标编码得到反映键功能的键码,一般在内存区中建立一个键盘编码表,通过查表获得被按键的键码。用AT89S52的并行口P0接44矩阵键盘,以P0.0P0.3作输入线,以P0.4P0.7作输出线。44矩阵键盘识别处理,每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。每个按键的状态同样需变成数字量“0”和“1”,开关的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下

17、,键的功能是什么;还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。电路图如下:图5 键盘电路原理图3 程序设计内容3.1 原理一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此

18、周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相。就可在P1.0引脚上得到此频率的脉冲。 利用AT89S52的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T1/5231912s,因此只要令计数器计时956s/1s956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。 计数脉冲值与频率的关系式是:N=fi2fr式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。其计数初值T的求法如下:

19、T65536N65536fi2fr例如:设K65536,fi1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。T65536N65536fi2fr6553610000002fr65536500000/fr低音DO的T65536500000/26263627中音DO的T65536500000/52364580高音DO的T65536500000/104665059单片机12MHZ晶振,高中低音符与计数T0相关的计数值如表1所示:表1 音符频率表音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)低1DO26263628# 4 FA#74064860

20、#1DO#27763731中 5 SO78464898低2RE29463835# 5 SO#83164934#2 RE#31163928中 6 LA88064968低 3 M33064021# 693264994低 4 FA34964103中 7 SI98865030# 4 FA#37064185高 1 DO104665058低 5 SO39264260# 1 DO#110965085# 5 SO#41564331高 2 RE117565110低 6 LA44064400# 2 RE#124565134# 646664463高 3 M131865157低 7 SI49464524高 4 FA1

21、39765178中 1 DO52364580# 4 FA#148065198# 1 DO#55464633高 5 SO156865217中 2 RE58764684# 5 SO#166165235# 2 RE#62264732高 6 LA176065252中 3 M65964777# 6186565268中 4 FA69864820高 7 SI196765283 我们要为这个音符建立一个表格,单片机通过查表的方式来获得相应的数据,低音019之间,中音在2039之间,高音在4059之间。TABLE1: DW 64021,64103,64260,64400 DW 64524,64580,64684

22、,64777 DW 64820,64898,64968,65030 DW 65058,65110,65157,65178 音乐的音拍,一个节拍为单位(C调),如表2所示:表2 曲调值表曲调值DELAY曲调值DELAY调4/4125ms调4/462ms调3/4187ms调3/494ms调2/4250ms调2/4125ms 琴键处理程序,根据检测到得按键值,查询音律表,给计时器赋值,发出相应频率的声音。对音调的控制:根据不同的按键,对定时器T1送入不同的初值,调节T1的溢出时间,这样就可以输出不同音调频率的方波。不同音调下各个音阶的定时器。3.2 程序流程图图6 程序流程图4 总结与展望4.1 全

23、文总结通过这次课程设计,我弄懂了不少课本上的知识,还扩展了一些课本没有的知识。首先在课程设计刚开始的调研阶段,我学会了怎么通过各种方式查询相关的资料。通过对这些资料的学习,我大致了解了单片机的发展现状以及未来的发展趋势,认识到目前单片机方面的各种各样的发展,和它们之间的竞争。了解了单片机方面的先进技术,这些都为我的未来的学习指明了方向。我的课程设计主要涉及硬件和软件两方面的内容,通过这些我的硬件和软件开发能力都获得了提高。首先硬件方面,基本了解了电子产品的开发流程和所要做的工作。在软件方面,因为程序的编写是我的弱项,所以我是先从网上找来类似的程序模板,然后借助各方面的资料对程序的每一步进行分析

24、,按我的需求进行修改,最终才得到我现在的程序方案。4.2 研究展望微型计算机的出现和大量使用将人类社会带入一个新的时代,单片微型计算机(简称单片机)在其中扮演着十分重要的角色。虽然它没有常见的PC那样大的体积和重量,不会在办公桌或控制台上占据一个显要的位置,但它就像小小的螺丝钉一样,镶嵌在人们工作、生活中需要计算、控制、测量等智能活动的各个角落。自20世纪70年代问世以来,单片机以其体积小、可靠性高、控制功能强、使用方便、性能价格比高、容易产品化等特点,在智能仪表、机电一体化、实时控制、分布式多机系统、家用电器等各个领域得到了广泛应用,对各个行业的技术改造和产品的更新换代起着重要的推动作用,对

25、人们生活质量的提高产生了深刻的影响。作为21世纪的工科大学生,学好单片机,一方面可以加深对计算机原理和结构的认识,另一方面也为自身在专业上的深入发展构筑了一个很好的平台其重要性怎么强调都不为过。5 结论本研究通过制作电子琴,将几个模块很好的融合起来,对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。说明一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,于是我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们

26、只要把一首歌曲的音阶对应频率关系弄正确即可,然后我利用功放电路来将音乐声音放大,最后得到想要的音乐。谢 辞这次课程设计论文能够得以顺利完成,是所有曾经指导过我的老师,帮助过我的同学,一直支持着我的家人对我的教诲、帮助和鼓励的结果。我要在这里对他们表示深深的谢意!首先,要特别感谢我的指导老师施娟老师。老师的严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,朴实无华、平易近人的人格魅力对我影响深远。不仅使我树立了远大的学术目标、掌握了基本的研究方法,还使我明白了许多待人接物与为人处世的道理。其次,要感谢所有曾经教过我的任课老师,老师们教会我的不仅仅是专业知识,更多的是对待学习、对待生活的态度

27、。第三,感谢我的亲人们,你们是我力量的源泉,只要有你们,不管面对什么样的困难,我都不会害怕,谢谢你们对我的支持与鼓励!再次,感谢我的室友及其他好友,因为有你们的帮助,我的论文得以顺利完成。感谢你们,大学四年给我了那么多的帮助与鼓励,在我不开心的时候,总能让我开心起来。不会忘记,大学这四年里我们一起度过的欢乐时光,那些开心的日子,总是那么令人难以忘怀。最后对老师,同学和家人再次致以我最衷心的感谢!教导过我的老师,你们的人格魅力永记我心间。身边的同学和朋友,有你们,我的大学才算完整。寝室的好友,你们的天赋犹如上天恩赐,有了你们我的生活更加精彩。参考文献1 陈明荧8051单片机课程设计实训教材M北京

28、:清华大学出版社,2003年9月.2 徐新艳单片机原理、应用与实践M北京:高等教育出版社,2005年3月.3 吴金戌,沈庆阳,郭庭吉8051单片机实践与应用M清华大学出版社,2001.4 冯博琴,微型计算机原理与接口技术M清华大学出版社,2004.5 张毅刚,MCS-51单片机应用设计M哈尔滨工业大学出版社,2004.6 张淑清,姜万录等,单片微型计算机接口技术及应用M国防工业出版社,2003.7 龙威林,杨冠声,胡山单片机应用入门:AT89S51和AVRM北京:化学工业出版社,2008.8 黄鑫,马善农,赵永科基于CPLD的电子琴研究与设计J科技广场,2007(5).9 赵亮,侯国锐单片机C

29、语言编程与实例M北京:人民邮电出版社,2003.10 杨恢先,黄辉先单片机原理及应用M北京:人民邮电出版社,2006.11 张虹单片机原理及应用M北京:中国电力出版社,2009.12 李云钢,邹逢兴,龙志强单片机原理与应用系统计J北京:中国水利水电出版社,2008. 附 录 C语言程序:#include sbit P04=P04; sbit P05=P05; sbit P06=P06; sbit P07=P07; unsigned char keyval,gequ=0;sbit keygequ=P13;sbit sound=P10; unsigned char timer0h,timer0l,

30、time;code unsigned char sszymmh= 6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1, 6,2,4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1, 6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2, 5,2,1, 6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1, 2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0 ;code unsigned char FREQH= 0xF

31、2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8, 0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, 0xFC,0xFD,0xFD,0xFD,0xFD,0xFE, 0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF, ;code unsigned char FREQL= 0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6, 0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, 0xEE,0x44, 0x6B,0xB4,0xF4,0x2D, 0x47,0x77,0xA2,0xB6,0xD

32、A,0xFA,0x16, ;void saomiao();void delay20ms();/* 节拍延时函数 */*/void delay_jp(unsigned char t) unsigned char t1; unsigned long t2; for(t1=0;t1t;t1+) for(t2=0;t28000;t2+) ; TR0=0; /*/* 音调处理函数 */*/void song(unsigned char t1,unsigned char t2,unsigned char t3) unsigned char k;k=t1+7*t2-1;timer0h=FREQHk;time

33、r0l=FREQLk; TH0=timer0h; TL0=timer0l; TR0=1; if(t3!=0) delay_jp(t3); /*/void gequ_sszymmh() unsigned char i; i=0; while(sszymmhi+3!=0) i=i+3; song(sszymmhi,sszymmhi+1,sszymmhi+2); if(keygequ=0) delay20ms(); if(keygequ=0) while(keygequ=0);TR0=0;gequ=0; break; TR0=0;gequ=0;/*函数功能:软件延时子程序*/ void delay2

34、0ms() unsigned char i,j;for(i=0;i100;i+) for(j=0;j60;j+) ; /*函数功能:节拍的延时的基本单位,延时200ms*/void delay() unsigned char i,j; for(i=0;i250;i+) for(j=0;j250;j+) ; void saomiao() if(keygequ=0) delay20ms(); if(keygequ=0) while(keygequ=0);gequ+; P0=0xf0; if(P0&0xf0)!=0xf0) delay20ms(); if(P0&0xf0)!=0xf0) P0=0xf

35、e; if(P04=0) keyval=1; if(P05=0) keyval=2; if(P06=0) keyval=3; if(P07=0) keyval=4; P0=0xfd; if(P04=0) keyval=5; if(P05=0) keyval=6; if(P06=0) keyval=7; if(P07=0) keyval=8; P0=0xfb; if(P04=0) keyval=9; if(P05=0) keyval=10; if(P06=0) keyval=11; if(P07=0) keyval=12; P0=0xf7; if(P04=0) keyval=13; if(P05

36、=0) keyval=14; if(P06=0) keyval=15; if(P07=0) keyval=16; else TR0=0;sound=1;keyval=0xff;void tanqin() if(TR0=0&gequ%2=0) switch(keyval) case 1: song(1,1,0); break; case 2:song(2,1,0); break; case 3:song(3,1,0); break; case 4:song(4,1,0); break; case 5:song(5,1,0); break; case 6:song(6,1,0); break; case 7:song(7,1,0); break; case 8:song(1,2,0); break; case 9:song(2,2,0); break; case 10:song(3,2,0); break;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 休闲娱乐

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁