




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京林业大学本科毕业论文(设计) 基于单片机的微型电子琴研究与实现全套设计加扣3012250582 摘要 单片微型计算机是大规模集成电路技术发展的产物,属于第四代计算机。它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛等特点。它的应用必定导致传统的控制技术从根本上发生变革。因此单片机的应用已成为高科技和工程领域的一项重大课题。微型电子琴是现代电子科技和音乐结合的产物,是一种新型的键盘乐器。它在现代音乐中扮演着重要的角色,由于单片机具有强大的控制功能和灵活的特性使微型电子琴能融入人们的艺术生活成为不可替代的一部分。随着电子技术与音乐的结合不断加深,由此而产生的微型电子琴在这种形势下,因其体积小、易于携带、经济适用等诸多优势,对于初学者,尤其是对刚刚识谱的人来说是很容易去进行弹奏的。一首简单的曲子对于乐感好的人来说,甚至不用加以很多的练习,也不需要音乐教师额外的指导就能很快的弹奏出来。同时微型电子琴的开销是一般家庭都能承受的了的经济投入,微型电子琴键盘操作直观易于掌握。这样就强烈地激发了初学习者的学习兴趣,迅速地提高了微型电子琴的普及率。微型电子琴使用简单,深受广大音乐爱好者的推崇。作为电子专业的学生,在掌握微型电子琴的制作的同时也能很好地检验我们所学知识的应用。这一过程所包含的知识基本上覆盖我们所学习的模拟电子技术基础、数字电子技术基础、EDA技术、电子线路基础、单片机基础以及接口技术等课程中的重要章节。目前我不能设计出特别复杂的微型电子琴,主要是考虑到设备有限以及研发成本等一系列的问题。因此我打算设计并制作一个简易的微型电子琴,采用集成电路设计,基于STC89C52单片机设计的一款简易微型电子琴,采用4*4矩阵触摸键盘,实现14个音和2首内置乐曲的播放。关键词:微型电子琴,单片机,STC89C52Research and Implementation of Micro Electronic Organ based on Single Chip MicrocomputerAbstract Single chip microcomputer is the product of the development of large scale integrated circuit technology, belongs to the fourth generation of computers. It has high performance, high speed, small volume, low cost, stable and reliable, wide application, etc. Its application will surely lead to fundamentally change the traditional control technology. So the application of single-chip microcomputer has become a major task in the field of technology and engineering. Microelectronic organ is a product of modern electronic combines with music, is a new kind of keyboard instrument. It plays an important role in the modern music, as a result of the control function of the micro controller has strong and flexible features make miniature key board can fit people become an irreplaceable part of the art of life. With the combination of music and deepening, electronic technology and micro electronic organ in this situation, because of its for beginners, especially for just the music-culture is easy to play. A simple melody for music good people, dont even need to be a lot of practice, also do not need additional guidance can quickly play music teachers. Miniature keyboard at the same time overhead is general families can afford the economic investment, miniature keyboard is easy to master. Early thus strongly stimulate the learners interest in learning. Rapidly improve the penetration rate of micro electronic organ. Miniature keyboard to use simple, favored by the majority of music lovers. As electronic professional students, made in mastering the miniature keyboard at the same time also can test our knowledge in application. This knowledge is a process that contains basically covering what we learn analog electronic technology, digital electronic technology, EDA technology, electronic circuit, single chip microcomputer and interface technology course such as the important chapters. Now I cant design the special complex miniature electronic organ, mainly considering the equipment co., LTD., and a series of problems such as research and development costs. So Im going to the design and construction of a simple miniature keyboard, using integrated circuit design, based on STC89C52 single-chip design of a simple miniature keyboard, touch with 4 * 4 matrix keyboard, achieve 14 and 2 first built-in music playback.Key words: single chip microcomputer, electronic organ, STC89C52目录1 前言61.1 微型电子琴设计的背景61.2 微型电子琴设计的意义61.3 微型电子琴设计的目标62 方案的比较以及选择72.1 控制模块选择方案72.2 按键模块选择方案73 硬件设计以及说明83.1 系统组成以及总体框图83.2 元件简介83.2.1 STC89C5283.2.2 LM38693.2.3 LED数码管113.3 元件简介各功能模块原理图113.3.1 STC89C52最小系统模块原理图113.3.2 键盘扫描模块电路原理图123.3.3 数码管显示模块电路原理图133.3.4 音频处理模块电路原理图144 软件设计以及说明154.1 音乐相关知识154.2 如何用单片机实现音乐的节拍164.3 如何用单片机产生音频脉冲164.4 系统总体功能流程图175 系统调试175.1 硬件调试185.2 软件调试186 课程设计总结以及心得体会18参考文献19附录211 前言随着电子科技的飞速发展,电子技术正在逐渐改善着人们的学习、生活、工作,因此开发本系统希望给人们多带来一点生活上的乐趣。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。电子琴是高科技在音乐领域的一个代表,它是古典文化与现代文明的一个浓缩体。它不但可以帮助我们的音乐教师进行传统音乐文化的教育教学工作,而且由于它又具备现代音乐、电子音乐、电脑音乐的教学时,更直接、更简便。他在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。基于当前市场上的玩具市场需求量大,其中电子琴就是一个很好的应用方面。单片机技术使我们可以利用软硬件实现电子琴的功能,从而实现电子琴的微型化,可以用作玩具琴,音乐转盘以及音乐童车等等。并且可以进行一定的功能扩展。单片微型计算机是大规模集成电路技术发展的产物,属于第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。本论文主要对单片机设计的微型电子琴进行了分析,并介绍了基于单片机电子琴系统硬件的组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本论文分别从原理图,主要芯片,各个模块原理图以及各个模块的程序的调试来详细阐述。1.1 微型电子琴设计的背景基于当前市场上的玩具市场需求量大,其中微型电子琴就是一个很好的应用方面。单片机技术使我们可以利用软硬件实现微型电子琴的功能,从而实现电子琴的微型化,可以用作玩具琴、音乐转盘以及音乐童车的内部构件等等,并且可以进行一定的功能扩展。1.2 微型电子琴设计的意义该设计具有以下的优点: (1)可以随意弹奏想要表达的音乐; (2)制作简单,成本低; (3)比传统电子琴功能更加完善。1.3 微型电子琴设计的目标由于本设计主要用于人们娱乐方面,因此在设计上尽量使其安全以及简单易操作,其次,在这次设计可行性上进行分析如下:(1)经济可行性:所谓经济可行性,即在这次设计上需要投入资金的多少,由于本次设计是提高我们的动手能力以及资金有限。因此在经济上必须是能够承受的,比较理想化的对于我们课程设计来说是不可行的。通过分析后,无论是在器件价格或是常见度上均是可行的;(2)技术可行性:技术可行性主要是分析技术条件上是否能够顺利开展并完成课程设计的主要问题,硬件、软件能否满足设计者的需要等。通过分析各种软件环境,硬件仿真环境等均已具备。综上所述,本系统设计目标已经明确,在经济与技术上均可行,因此本系统的开发是完全可行的。2 方案的比较以及选择2.1 控制模块选择方案方案一:用可控硅制作电子琴,将220V交流电经变压器降压 ,再经过整流、滤波,获得+13.5V直流电压,将单向可控硅SCR和电阻、电容组成弛张振荡器电路。但该设计方案制作成本高且十分复杂。方案二:采用AT89C51单片机进行控制,由于AT89C51不具备ISP功能,因此Atmel 公司已经停产在市面上已经不常见,况且其ROM只有4K在系统将来升级方面没有潜力。方案三:采用STC89C52单片机进行控制,由于其性价比高,完全满足了本作品智能化的要求,它的内部程序存储空间达到8K,使软件设计有足够的内部使用空间并且方便日后系统升级,使用方便,抗干扰性能提高。综上所述,进行对比与分析,决定本设计采用方案三。2.2 按键模块选择方案 传统电子琴使用轻触开关作为电子琴的按键,而本电子琴创新的使用触摸按键,利用覆铜板表面的覆铜即可实现触摸输入,不仅不会造成机械磨损,而且更加美观大方,手感极好,并且无额外噪音产生。3 硬件设计以及说明3.1 系统组成以及总体框图 硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统所要使用的元器件,设计出系统的原理框图,电路原理图。 该设计要实现一种由单片机控制的电子琴,单片机工作于12MHZ时钟频率,使用其定时/计数器T0,工作模式为1,改变计数值TH0和TL0可以产生不同频率的脉冲信号。用户可以根据乐谱在键盘上进行演奏,音乐发生器会根据用户的弹奏,通过扬声器将音乐播放出来。由于本设计实现的音乐发生器是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。用单片机产生的音频直接驱动扬声器并不能产生所要实现的音乐,因为它没有足够的驱动能力,这就需要音频功率放大电路。本设计使用的是国家半导体公司的低压音频功率放大器LM386来实现音频功放电路。音频功放电路单片机STC89C52按键扬声器数码管显示电路图3.1 系统结构图Fig.3.1 System structure diagram3.2 元件简介3.2.1 STC89C52 STC89C52是STC公司生产的一种低功耗、高性能的CMOS8微控制器,具有8K在系统可编程的Flash 存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8位CPU在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量 2级中断结构),全双工串行口。另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,指导下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。3.2.2 LM386 LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。为使外围元件最少电压增益内置为20。但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值至200。输入端以地位参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场合。LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。LM386的封装形式有塑封8引线双列直插式和贴片式。图3.2 LM386的封装形式Fig.3.2 LM386 package form特性(Features)静态功耗低,约为4mA,可用于电池供电。 工作电压范围宽,4-12V or 5-18V。 外围元件少。 电压增益可调,20-200。 低失真度。其典型应用电路如下:图3.3 放大器增益=20(最少器件)Fig.3.3 Amplifier gain =20 (minimum device)图3.4 放大器增益=50 Fig.3.4 Amplifier gain =50 图3.5 低频提升放大器 Fig.3.5 Low frequency amplifier3.2.3 LED数码管本次课程设计的显示电路采用LED数码管显示,LED(Light-Emitting Diode)是一种外加电压从而流过电流并发出可见光的器件。LED是属于电流控制器件,使用时必须加限流电阻。LED有单个LED和八段LED之分,也有共阴和共阳两种。常用的七段显示器的结构如图下图所示。发光二极管的阳极连在一起的称为共阳极显示器(如图b所示),阴极连在一起的称为共阴极显示器(如图c所示)。1位显示器由八个发光二极管组成,其中七个发光二极管ag控制七个笔画(段)的亮或暗,另一个控制一个小数点的亮和灭,这种笔画式的七段显示器能显示的字符较少,但控制简单,使用方便。此外,要画出电路图,首先还要搞清楚他的引脚图的分布,在了解了正确的引脚图后才能进行正确的字型段码编码。才能显示出正确的数字来。 (a)Digital pin外形 (b)共阳极 (C)共阴极图3.6 数码管引脚 Fig.3.6 Digital pin3.3 元件简介各功能模块原理图3.3.1 STC89C52最小系统模块原理图单片机最小系统有12M晶振电路,复位电路,P0口上拉电路等基本电路组成,并带有4个排针接到了单片机的VCC、GND、P30、P31这个四个脚上,方便了程序的下载和调试。图3.7 STC89C52模块原理图 Fig.3.7 STC89C52 module schematics3.3.2 键盘扫描模块电路原理图对键盘扫描电路的扫描方式有行扫描法和线反转法,在此次程序编写中,采用线反转法,将列线作为输出线,行线作为输入线。置输出线全部为0,此时行线中呈低电平0的为按键所在行,如果全部都不是0,则没有按键按下。将前面的行列状态反过来,即将行线作为输出线,列线作为输入线。置输出线全部为0,此时列线呈低电平的为按键所在的列。这样,经处理程序,就可以确定了按键的位置(X,Y),并送主程序以实现不同功能。本电子琴使用的是触摸的矩阵键盘,基本原理是利用人体自身的电流来导通NPN型三极管,三极管的基极接触摸按键,集电极和发射极相当于开关的两端。当手指触摸到按键板时,人体的电流流入三极管的基极,集电极和发射极便导通了。图3.8 键盘扫描模块电路原理图 Fig.3.8 Keyboard scan module circuit diagram3.3.3 数码管显示模块电路原理图数码管显示模块核心是共阳级数码管,通过来自单片机I/O口的电平高低来点亮和熄灭数码管上的发光二极管,通过单片机送来的数码管显示编码可以在数码管上显示数字和字符,使应用人员可以很容易的理解按键按下所对应的音符。图3.9 数码管显示模块电路原理图 Fig.3.9 Digital tube display module circuit diagram3.3.4 音频处理模块电路原理图 由于单片机驱动能力不够,在处理音符信号时,需加功率放大装置,因LM386芯片具有低功耗、高增益的特点,这合适单片机低功耗输出,所以加装LM386音频信号放大器对信号进行放大。图3.10 音频处理模块电路原理图 Fig.3.10 Audio processing module circuit diagram4 软件设计以及说明 本设计的主要内容是用STC89C52单片机为核心控制元件,设计一个微型电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,实现以下功能:设计一个(4*4)的键盘,并将16个键设计成两个八度的音阶对应的16个琴键,可以进行弹奏表演;演奏的同时数码管会以数字显示当前按键对应的音符;有音乐存储功能,能自动演奏歌曲。演奏时可选择键盘输入乐曲,自己存入的乐曲或随机存储的乐曲。按播放键播放5首歌曲,第一首歌曲播放结束,再按播放键播放下一首歌曲。发光二极管会指示当前案件是否按下。 本软件设计关键是要实现一种由单片机控制的简单音乐发生器,它由14个音调组成的的键盘,用户可以根据乐谱在键盘上进行演奏,音乐发生器会根据用户的弹奏,通过扬声器将音乐播放出来。一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将输出P3.0反相,然后重复计时再反相。就可在P3.0脚上得此频率的脉冲。利用AT89C52内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0以及TL0以产生不同频率的方法产生不同音阶,例如,频率为523HZ,其周期T=1/523=1912us,因此只要令计数器计时956us/1us=956,每计数956次时将I/O反相,就可得到中音D0(523HZ)。计数脉冲值与频率的关系式时:N=fi/2/fr 式中,N是计数值;fi是机器频率(晶体振荡器为12MHZ时,其频率为1MHZ);fr是想要产生的频率。其计数初值T的求法如下:T=K-N=K-fi/2/fr。式中K是单片机的16位定时器最大计数值,K=65536;fi是机器频率,fi=1MHZ,例如低音DO(262HZ)、低音RE(294ZHZ)、中音DO(523HZ)、中音RE(587HZ)、高音DO(1046HZ)、高音RE(1175HZ)。4.1 音乐相关知识 乐音听起来有的高,有的低,这就叫音高,音高是由发音物体振动频率的高低决定的,频率高声音就高,频率低声音就低,不同音商的乐音是用C、D、E、F、G、A、B表示的,这7个字母就是乐音的音名,它们一般依次唱成DO、RE、MI、FA、SO、LA、SI,这是唱曲时乐音的发音,所以叫唱名。音持续时间的长短即时值,一般用拍数表示,休止符表示暂停发音。一首音乐是由许多不同的音符组成的,而每个音符对应着不同的频率,这样就可以利用不同频率的组合,加以与拍数对应的延时,构成音乐。对于不同的曲调我们也可以利用单片机的另外一个定时/计数器来完成。琴键处理程序,根据检测得到的按键值,查询音律表,给计时器赋值,发出相应频率的声音。对音调的控制,根据不同的按键,对定时器T1送入不同的初值,调节T1的溢出时间,这样就可以输出不同音调频率的方波。不同音调下各个音阶的定时器。在这个程序中用到了两个定时/计数器来完成的。其中T0用来产生音符频率,T1用来产生音拍。4.2 如何用单片机实现音乐的节拍 除了音符以外,节拍也是音乐的关键组成部分。 节拍实际上就是音持续时间的长短,在单片机系统中可以用延时来实现,如果1/4拍的延时是0.4秒,则1拍的延时是1.6秒,只要知道1/4拍的延时时间,其余的节拍延时时间就是它的倍数。如果单片机要自己播放音乐,那么必须在程序设计中考虑到节拍的设置,由于本例实现的音乐发生器是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。4.3 如何用单片机产生音频脉冲了解音乐的一些基本知识后可知,产生不同频率的音频脉冲即能产生音乐,对于单片机而言,产生不同频率有脉冲非常方便,可以利用它的定时/计数器来产生这样的方波频率信号,因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系。在本次设计中,单片机工作于12MHZ时钟频率,使用其定时/计数器T0,工作模式为1,改变计数值TH0和TL0可以产生不同频率的脉冲信号,在此情况下,C调的各音符频率与计数值T的对照如下表:表4.2音符频率与计数值T的对照表Table.4.2 A comparison between the frequency of the notes and the values of the count T 音符频率(HZ)计数值(T值)音符频率(HZ)计数值(T值)低1DO26263628#4FA#74064860#1DO#27763737中5SO78464898低2RE29463835#5SO#83194934#2RE#31163928中6LA88064968低3MI33064021#6LA#93264994低4FA34964103中7SI96865030#4FA#37064185低1DO104665058低SO39264260#1DO#110965085#5SO#41564331高2RE117565110低6LA44064400#2RE#124565134#6LA#46664463高3MI131865157低7SI49464524高4FA139765178中1DO52364580#4FA#149065198#1DO#55464633高5SO156865217中2RE58764633#5SO#166165235#2RE#62264884高6LA176065252中3MI65964732#6LA#186565268中4FA69864820高7SI196765283T的值决定了TH0和TL0的值,其关系为:TH0=T/256,TL0=T%2564.4 系统总体功能流程图 该程序设计思路比较清晰既从开始到声明变量与函数再到读取按钮开关,判断是否下,然后就是一个一个按钮的动作。其程序流程图如下:5 系统调试 电路调试是整个系统功能否实现的关键步骤,我们将整个调试过程分为三大部分:硬件调试、软件调试和综合调试。在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试,中心控制模块的调试,音乐播放模块的调试,按键控制模块的调试等,最后将各模块组合后进行整体测试。首先对各模块的功能进行调试,主要调试各模块能否实现指定的功能。然后通过软件对编好的程序进行调试,检查语法错误。最后将调试好的软件程序导入到硬件模块中,调试系统实现的功能。调试主要方法和技巧:软件调试和硬件调试。5.1 硬件调试硬件调试主要是针对单片机部分进行调试。在上电前,先确保电路中不在断路或短路情况,这一工作是整个调试工作的第一步,也是非常重要的一个步骤。在这部分调试中主要使用的工具是万用表,用来完成检测电路中是否存在断路或者短路情况等。注意焊点之间,确保焊点没有短接在一起,同时注意焊点的美观,确保没有开路以及短路的现象出现。在确保硬件电路正常,无异常情况(断路或短路)方可上电调试,上电调试的目的是检验电路是否接错,同时还要检验原理是否正确,在本次设计中,上电调试主要键盘单片机控制部分、数码管点亮部分、和音频转换电路硬件调试。1、数码管LED电路调试:接通电源,随机按下按钮可以看到数码管显示数字。2、键盘单片机控制部分调试:上电后,随机按动键盘可以发现各个按键对应的音正确。5.2 软件调试调试主要方法和技巧: 通常一个调试程序应该具备至少四种性能:跟踪、断点、查看变量、更改数值。整个程序是一个主程序调用各个子程序实现功能的过程,要使主程序和整个程序都能平稳运行,各个模块的子程序的正确与平稳运行必不可少,所以在软件调试的最初阶段就是把各个子程序模块进行分别调试。6 课程设计总结以及心得体会通过这周的单片机课程设计,我学到了不少课本上没有的知识,也锻炼了自己的动手能力,将以前学过的零散的知识串到一起。首先在课程设计刚开始的调研阶段,我学会了怎么通过各种方式查询相关的资料。通过对这些资料的学习,我大致了解了单片机的发展现状以及未来的发展趋势,认识到目前单片机方面的各种各样的发展,和它们之间的竞争。了解了单片机方面的先进技术,这些都为我的未来的学习指明了方向。我的课程设计主要涉及硬件和软件两方面的内容,通过这些我的硬件和软件开发能力都获得了提高。首先硬件方面,基本了解了电子产品的开发流程和所要做的工作。并设计了一个单片机最小系统。通过开发板的设计和硬件搭建的过程,使我对51系单片机的接口有了更深层次的理解,熟悉了一些单片机常用的外围电路引脚和连接方法,如LED数码管,键盘等。在软件方面,通过串行口调试工具的开发,使我加深了对累封装的理解,熟悉了51系列单片机内部的寄存器和编程规则,以及如何控制外围电路。 最后,感谢老师的精心指导,使我能够完成这次课程设计。参考文献1谭会生,张昌凡.EDA技术及应用(第二版)M.西安电子科技大学出版社,2001年9月第1版2徐志军,王金明,伊廷辉等. EDA技术与PLD设计M.人民邮电出版社, 2006年2月第1版3赵鑫,蒋亮,齐兆群等.数字电路设计M.北京机械工业出版社,2005年6月第一版.4苏家健、曹柏荣、汪志锋.单片机原理及应用技术M.高等教育出版社5 美Ashish Wilfred Meeta Gupta Kartik Bhatnagar著,刘永明,贺民译. php专业项目实例开发J. 水利水电出版社,20036于海生. 微型计算机控制技术选编M.清华大学出版社,1999.7李朝青. 单片机原理及接口技术M. 北京:北京航天航空大学出版色,2001.8胡汉才. 单片机原理及其接口技术M. 北京:清华大学出版社,2004.9陈家友,电子琴与合奏,广西人民出版社,2006.8 .10陈华容,基于FPGA的电子琴设计,电声技术,2006.2 .11李雪梅,基于CPLD的多动能电子琴设计,科技咨询导报,2009(34)12刘永志,基于VB的MIDI电子琴,计算机工程与科学,2009(2)13王兵,用单片机设计微型电子琴,电子工程师,2002(3)14孙文,基于RC正弦波振荡电路的电子琴设计,现代电子技术,2010(9)15时圣勇,PLC控制的电子琴气动演奏系统的研制,华中科技大学,200616Radek Ptak;Armin Schnider,Disorganised Memory after Right Dorsolateral Prefrontal Damage,Neurocase,2004-0217Daniel Geist.Correct Hardware Design and Verification Methods.Physics of Atomic Nuclei.2010.218Colin Atkinson.Component-Based Software Development for Embedded Systems.Journal of Medical Systems.2010.419Verification of FPGA layout Generators in Higher-Order Logic.Oliver Pell.Journal of Automated Reasoning,2006.820Bastian Schlich;Stefan kowalewaski;International Journal on Software Tools for Technology Transfer,2009-07附录A 元器件清单STC89C521片LM3861片贴片805016个12M晶振1个30pF独石电容2个电解电容10uF、220uF2个、1个电阻1K、10K2个、1个排阻10K1片轻触开关1个1位共阳数码管1个开关1个USB座1个红色led灯1个排针4针喇叭1个IC座8脚、40脚1个、1个附录B 主要电路原理图附录C 程序#include #define uchar unsigned char/ 以后unsigned char就可以用uchar代替#define uint unsigned int/ 以后unsigned int 就可以用uint 代替#define ulong unsigned long/ 以后unsigned long就可以用ulong代替sbit beep=P37;/ 定义蜂鸣器的输出引脚uchar th0,tl0;/ 定义2个全局变量,th0代表TH0要装入的值,tl0代表TL0要装入的值/* 定时器的初值,TH_0代表TH0的值,TL_0代表TL0的初值,其含义如下所示 */* 中1 中2 中3 中4 中5 中6 中7 高1 高2 高3 高4 高5 高6 高7 */uchar code TH_0= 0xFC,0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF ;uchar code TL_0= 0x43,0xAC,0x09,0x34,0x82,0xC8,0x06,0x22,0x56,0x85,0x9A,0xC1,0xE4,0x03 ;/* 数码管的显示值:1 2 3 4 5 6 7 1. 2. 3. 4. 5. 6. 7. */uchar code dig= 0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x79,0x24,0x30,0x19,0x12,0x02,0x78;/* 世上只有妈妈好的乐谱,每2个数为1组,第1个数表示音调,第2个数表示节拍,节拍即是这个音调响持续的时间 */ uchar code yuepu= 12,3 ,11,1, 9,2, 11,2, 13,2, 12,1, 11,1, 12,4, 9,2, 11,1, 12,1, 11,2, 9,2, 7,1, 5,1, 11,1, 9,1, 8,4, 8,3, 9,1, 11,2, 11,1, 12,1, 9,2, 8,2, 7,4, 11,3, 9,1, 8,1, 7,1, 5,1, 7,1, 4,4 ;/* 生日快乐的乐谱,每2个数为1组,第1个数表示音调,第2个数表示节拍 */uchar code yuepu1= 4,1, 4,1, 5,2, 4,2, 7,2, 6,4, 4,1, 4,1, 5,2, 4,2, 8,2, 7,4, 4,1, 4,1, 11,2, 9,2, 7,2, 6,2, 5,3, 10,1, 10,1, 9,2, 7,2, 8,2, 7,4 ;/* 节拍函数函数. - t代表节拍,如:delay(3)表示延时3个节拍的时间*/void delay(uchar t)uchar t1;ulong t2;for(t1=0;t1t;t1+)for(t2=0;t27200;t2+);/* 演奏函数. - time代表节拍,如:play(2) 代表延时2个节拍的时间*/ void play(uchar time)TH0=th0;/ 装入定时器TH0的初值TL0=tl0;/ 装入定时器TL0的初值TR0=1;/ 启动定时器delay(time); / 延时time个节拍TR0=0;/ 停止定时器 P0=0xff;/ 关闭数码管/* 矩阵键盘扫描程序. - 如果扫描到有按键按下,则返回按键值,返回值情况如下所示: - | 第1列 第2列 第3列 第4列 | |第1行 1 23 4 | |第2行 5 6 7 8 | |第3行 9 10 11 12 | |第4行 13 14 15 16 | - 如果扫描不到有按键按下,则返回0*/char keyscanf() /键盘扫描 uchar hang=0,lie=0,temp1,temp2;/ hang代表行,lie代表列P1=0x0f;/ 让P1口的高4位为0temp1=P1;/ temp1采集P1口的数据switch(temp1)/ 判断是否某一行有被按下,有的话,给hang变量赋值case 0x0e: hang=1; break;/ 如果P1口的值,即temp1的值为0x0e,则代表第1行有某一个按键被按下了case 0x0d: hang=2; break;/ 如果P1口的值,即temp1的值为0x0d,则代表第2行有某一个按键被按下了case 0x0b: hang=3; break;/ 如果P1口的值,即temp1的值为0x0b,则代表第3行有某一个按键被按下了case 0x07: hang=4; break;/ 如果P1口的值,即temp1的值为0x07,则代表第4行有某一个按键被按下了P1=0xf0;/ 让P1口的低4位为0temp2=P1;/ temp2采集P1口的数据switch(temp2)/ 判断是否某一列有被按下,有的话,给lie变量赋值case 0x70: lie=1; break;/ 如果P1口的值,即temp2的值为0x70,则代表第1列有某一个按键被按下了case 0xb0: lie=2; break;/ 如果P1口的值,即tem
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合同付款担保函模板
- 企业解除劳动合同的操作指南
- 快递物流集装箱运输合同
- 建筑企业资质培训
- 债权转让合同范例
- 皮鞋制作中的环境保护措施考核试卷
- 2024年04月江苏苏州市吴江区卫健系统事业单位招聘高层次紧缺卫技人才137人笔试历年专业考点(难、易错点)附带答案详解
- 石灰在海水淡化预处理中的应用考核试卷
- 家用通风设备气流动力学分析考核试卷
- 畜禽肉质检测设备考核试卷
- 新人面试典型试题及答案
- 2024年云南省烟草专卖局毕业生招聘考试真题
- 青岛市李沧区教育系统招聘中小学教师笔试真题2024
- 福建省部分地市2025届高中毕业班4月诊断性质量检测英语试题(含答案无听力音频无听力原文)
- 私人飞机转让协议书
- 急诊护理人文关怀成效汇报
- 2024北京中学高二(下)期中数学试题及答案
- 电力技术监督专责人员上岗资格考试题库汽轮机技术监督分册
- 榜样的力量有一种力量叫榜样的力量课件
- 搅拌站的施工方案
- 特种设备安全使用操作培训课件3
评论
0/150
提交评论