为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

电子琴

2012-02-26 17页 doc 586KB 24阅读

用户头像

is_047334

暂无简介

举报
电子琴【单片机开发与设计工程师 考试文档 学 校: 题 目: 电子琴 学生姓名: 起止日期: 2010-6-17~2010-6-27 摘 要 本次设计的电子琴是利用STC89C52单片机定时中断实现输出不同频率的方波,通过一个简单的驱动电路使扬声器...
电子琴
【单片机开发与设计工程师 考试文档 学 校: 题 目: 电子琴 学生姓名: 起止日期: 2010-6-17~2010-6-27 摘 要 本次设计的电子琴是利用STC89C52单片机定时中断实现输出不同频率的方波,通过一个简单的驱动电路使扬声器发出音乐,并通过键盘来控制音乐播放,每按一个键发出一个不同的音调。其电路是由:STC89C52单片机最小系统电路和一个由电阻和三极管组成的驱动电路及扬声器和按键。设计中应用中断系统和定时/计数原理控制按键发声,对音乐发生所必须确定的音符和节拍分别用C语言实现,通过制作硬件电路和软件的设计编写,然后进行调试运行,最终达到设计电路的乐器演奏:可以用它来弹奏和播放乐曲。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,并且设计思路简单清晰,成本低,性价比较高等,具有一定的实用和参考价值。 关键词:单片机;键盘;蜂鸣器;晶振 目 录 1引言 1设计要求 11 论证与对比 11.1 方案一 21.2 方案二 21.3 两种方案的对比 22 系统硬件设计 32.1 键盘模块的设计 32.2 STC89C52及8255扩展芯片 42.3 蜂鸣器电路的设计 52.4 晶振电路模块的设计 53 系统软件设计 53.1音乐的相关知识 53.2用单片机实现音乐的节拍 63.3用单片机产生音频脉冲 64 系统图 75 系统调试与调试结论 86 详细仪器清单 9参考文献 10附录一:总的电路原理图 11附录二:程序清单 电子琴 引言 随着电子科技的飞速发展,电子技术正在逐渐改善着人们的学习、生活、工作,因此开发本系统希望能够给人们多带来一点生活上的乐趣。 基于当前市场上的玩具市场需求量大,其中电子琴就是一个很好的应用方面。单片机技术使我们可以利用软硬件实现电子琴的功能,从而实现电子琴的微型化,可以用作玩具琴、音乐转盘以及音乐童车等等,并且可以进行一定的功能扩展。该系统的琴键有16个,使电子琴的功能更加完美,可以实现对乐曲的高级演奏功能。 设计要求 4*4键盘组成16个按钮,可以随意弹奏想要表达的音乐。 1 方案论证与对比 按照设计要求,本次设计的电子琴只要按下每个按键就会发出不同的音调。对于音乐的放大可以有不同的做法。我们提出了以下两种不同的方案。 1.1 方案一 电路以STC89C52为主要控制芯片,采用LM386来放大推动喇叭发出声音。此电路比较简单,直接按了键盘就开始播放音乐,程序也不复杂。而由于LM386放大功能强大,声音信号经LM386之后发音会相对稳定、清晰。而同时由于用了LM386来放大,加多了许多额外的电容电阻器件,器件用起来较多,实现的功能却不强大。电路基本框图[1]如图1所示。 图1 方案一方框图 1.2 方案二 电路仍以STC89C52为主要控制芯片,采用单片机最小系统和外围驱动电路推动扬声器发出声音,此电路比方案一电路更为简单,程序不复杂,通过外键盘控制音乐的播放。音乐声音稳定、清晰。减少了外围电路原件,节约了成本,电路基本框图[2]如图2所示。 图2 方案二方框图 1.3 两种方案的对比 虽然两种方案都可以实现本次设计的要求,但综合考虑了功能需求、器件用量、焊接方便性等各方面因素,由于此次设计的电子琴,对发音要求不高,没有必要用LM386来放大,另外,用器件较多也达不到经济性,焊接起来也比较麻烦,影响基本功能的实现。方案二不仅可以实现音乐的播放,而且声音稳定,清晰,因此本次设计选择方案二。 2 系统硬件设计 硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。 该设计要实现一种由单片机控制的电子琴,单片机工作于12MHZ时钟频率,使用其定时/计数器T0,工作模式为1,改变计数值TH0和TL0可以产生不同频率的脉冲信号。该设计具有16个音节的键盘,用户可以根据乐谱在键盘上进行演奏,音乐发生器会根据用户的弹奏,通过扬声器将音乐播放出来。由于本例实现的音乐发生器是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。用单片机产生的音频脉冲直接驱动扬声器并不能产生所要实现的音乐,因为它没有足够的驱动能力,这就需要音频功率放大电路。本例使用一个三极管构成音频功放电路,用来放大8255输出的弱信号[3]。 2.1 键盘模块的设计 根据设计要求,用户可以从键盘随意输入想要的音乐,其原理图如图3所示: 图 3 键盘原理图 2.2 STC89C52及8255扩展芯片 单片机及8255芯片原理图如图4所示: 图 4 单片机原理图 元件简介: STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用宏晶高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。 片上Flash允许程序存储器在系统可编程, 亦适于常规编器。 在单芯片上,拥有灵巧的8位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。STC89C52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结[4]。 8255接口芯片 :单片机系统里常用的8255芯片是一个典型的可编程通用并行接口芯片,用来扩展单片机的端口,它具有3个8位的并行口,有三种工作方式,可作为单片机与各种外部设备连接的接口电路! 8255引脚功能说明:RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。 PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 PB0~PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。 PC0~PC7:端口C输入输出线, 一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号[5]。 2.3 蜂鸣器电路的设计 为了放大单片机输出的弱信号,我们在它外部加了一个三极管,每次按下一个按键,产生一次中断,并且该模块的LED灯亮,其电路[6]如图5所示: 图5 蜂鸣器原理图 2.4 晶振电路模块的设计 要使单片机能够正常工作,那么就必须在STC89C52单片机的18和19脚之间接上一个振荡电路,因为振荡电路就是为单片机工作提供所需要的时钟脉冲信号,使单片机的内部电路及内部程序开始工作,在单片机最小系统当中我们只需在18和19脚之间接一个石英晶体,给单片机加上工作所需直流电源,振荡器就能开始工作,STC89C52常常外接6MHZ、12MHZ的石英晶体,图4所示的电路中接入的是12MHZ的石英晶体,为了防止单片机自激在18和19脚上分别对地接了一个30pF的电容。其电路[7]如图6所示。 图 6 晶振原理图 3 系统软件设计 本软件设计关键是要实现一种由单片机控制的简单音乐发生器,它由16个音节组成的的键盘,用户可以根据乐谱在键盘上进行演奏,音乐发生器会根据用户的弹奏,通过扬声器将音乐播放出来。 3.1音乐的相关知识 乐音听起来有高有低,这就叫音高,是由发音物体振动频率的高低决定的,频率高声音就高,频率低声音就低,不同音商的乐音是用C、D、E、F、G、A、B表示的,这7个字母就是乐音的音名,它们一般依次唱成DO、RE、MI、FA、SO、LA、SI,这是唱曲时乐音的发音,所以叫唱名。一首音乐是由许多不同的音符组成的,而每个音符对应着不同的频率,这样就可以利用不同频率的组合,加以与拍数对应的延时,构成音乐[8]。 3.2用单片机实现音乐的节拍 节拍是音持续时间的长短,在单片机系统中可以用延时来实现。由于本例实现的音乐发生器是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。 3.3用单片机产生音频脉冲 不同频率的音频脉冲即能产生音乐,对于单片机而言,产生不同频率有脉冲非常方便,可以利用它的定时/计数器来产生这样的方波频率信号,在本实验中,单片机工作于12MHZ时钟频率,使用其定时/计数器T0,工作模式为1,改变计数值TH0和TL0可以产生不同频率的脉冲信号。T的值决定了TH0和TL0的值,其关系为:TH0=T/256,TL0=T%256。C调的各音符频率与计数值T的对照如下表1: 表1 音符频率与计数值T的对照表 音符 频率(HZ) 计数值(T值) 音符 频率(HZ) 计数值(T值) 低1DO 262 63628 高1DO 277 63737 低2RE 294 63835 高2RE 311 63928 低3MI 330 64021 高3MI 1318 65157 低4FA 349 64103 高4FA 1397 65178 低5SO 392 64260 高5SO 1568 65217 低6LA 440 64400 高6LA 1760 65252 低7SI 494 64524 高7SI 1967 65283 #1DO# 554 64633 高1DO 1109 65085 4 系统工作流程图 该设计思路比较清晰既从开始到声明变量与函数再到读取按钮开关,判断是否按下,然后就是一个一个按钮的动作。 其程序流程图如图7所示 图7 程序流程图 5 系统调试与调试结论 在Keil平台上进行单片机系统程序设计、编辑、编译、调试,最后生成目标代码文件(*.hex)。启动单片机,将生成的目标代码文件下载到单片机中去。下载完成后按照乐谱按下不同的按键,这时通过扬声器我们可以听到有相应的音乐播放。通过各方面努力,本次设计任务完成,系统功能已实现:可以随意演奏喜欢的曲子。 6 详细仪器清单 表2 仪器清单 仪器名称 数量 STC89C52 1块 8255扩展芯片 1块 按键 16个 扬声器 1个 晶振 1个 电容 2个 LED灯 1个 1K电阻 5个 三极管 1个 参考文献 [1] 朱定华,戴汝平. 单片机原理与应用. 北京:清华大学出版社,2003. [2] 王恩荣. 单片机应用技术矢训指导. 北京:化学工业出版社,2001. [3] 江太辉,石秀房. MCS-51系列单片机原理与应用. 广州:华南理工大学出版社,2002 . [4] 吴金戌,沈庆阳,郭庭吉. 8051单片机实践与应用. 北京:清华大学出版社,2002. [5] 张淑清,姜万录. 单片微型计算机接口技术及应用. 北京:国防工业出版社,2003. [6] 冯博琴. 微型计算机原理与接口技术. 北京:清华大学出版社,2004. [7] 张毅刚. MCS-51单片机应用设计. 哈尔滨:哈尔滨工业大学出版社,2004. [8] [美]Ashish Wilfred Meeta Gupta Kartik Bhatnagar,刘永明,贺民译. php专业项目实例开发. 北京:水利水电出版社,2003. [9] 李朝青. 单片机原理及接口技术. 北京:北京航天航空大学出版社,2001. 附录一:总的电路原理图 附录二:程序清单 #include"reg52.h" #include "ABSACC.H" #define uchar unsigned char #define a8255_PA XBYTE[0xD9FF] /*PA口地址*/ #define a8255_PB XBYTE[0xDAFF] /*PB口地址*/ #define a8255_PC XBYTE[0xDDFF] /*PC口地址*/ #define a8255_CON XBYTE[0xDFFF] /*控制字地址*/ sbit Pin_Buzzer=P3^3; unsigned int PC_date=0,SSS; unsigned int flag=0,num=0; unsigned int i=0,j=0,k=0; unsigned int code FreqTab[16]={ //简谱对应的简谱码、T值 0xf88b,0xf95b,0xfa14,0xfa66,0xfb03,0xfb8f,0xfc0b, 0xfc44,0xfc79,0xfcdc,0xfd34,0xfd82,0xfdc8,0xfe06,0xfe22, 0xfe3c }; void delays(unsigned int t) { while(t--);TR0=0; } //中断优先级最高,产生FreqTab表中对应的频率 void timer0() interrupt 1 using 0 { TR0=0; TL0=FreqTab[num] ; //低八位 TH0=FreqTab[num]>>8; //高八位 TR0=1; Pin_Buzzer=~Pin_Buzzer; //蜂鸣器 SSS++; if(SSS==100) TR0=0,SSS=0; } void main() { unsigned int PC_date=0,x=0,y=0,i=0,j=0; TMOD=0x01;//定时器0工作16位计数方式 ET0=1; //允许定时器0溢出中断; EA=1; while(1) { a8255_CON=0x89; a8255_PA=0xff; a8255_PB=0xff; delays(10); PC_date=a8255_PC; for(i=0;i<4;i++) { if((PC_date&(0x01<
/
本文档为【电子琴】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索