简易声光电子琴Word下载.docx
- 文档编号:20571789
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:16
- 大小:37.94KB
简易声光电子琴Word下载.docx
《简易声光电子琴Word下载.docx》由会员分享,可在线阅读,更多相关《简易声光电子琴Word下载.docx(16页珍藏版)》请在冰豆网上搜索。
以单片机作为主控核心,与键盘扬声器等模块组成核心主控制模块,在主控模块上设有8个按键,和一个复位按键。
主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴硬件的组成。
利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏要表达的音符。
并且分别从原理图,主要芯片,个模块原理及各莫奎的程序的调试来详细阐述。
一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,构成我们想演奏的那首曲目。
当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样的方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系编写正确就可以达到我们想要的曲目。
第二章系统方案设计及主控芯片介绍
2.1系统基本设计思路
此设计是在LED小灯上显示灯光的变换,扬声器播放弹奏的曲子。
电路包括:
键盘、单片机及LED显示电路,声音电路。
2.1.1各部分说明
(1)键盘用于弹奏音乐,八个按键8种音符。
(2)单片机通过输出各种电脉冲信号驱动控制各部分正常工作。
(3)单片机发送的信号分别经过LED显示电路通过译码最终在LED小灯和声音电路通过扬声器显示出来。
单片机要产生音频脉冲,主要处理过程是在CPU中完成的,CPU会随时对音符输入信号进行读取数据的操作。
在读取了相应的寄存器的值后,CPU将读取的值进行处理,再通过I/O口把音乐通过扬声器播放出来。
2.2单元电路方案论证
根据设计要求,本系统主要由控制器模块、显示模块和输入模块构成。
为较好的实现各模块的功能,我们分别设计了以下几种方案并分别进行了论证。
2.2.1控制器模块
方案1:
采用凌阳系列单片机为系统的控制器
凌阳系列单片机可以实现各种复杂的逻辑功能,模块大,密度高,它将所有器件集成在一块芯片上,减少了体积,提高了稳定性。
凌阳系列单片机提高了系统的处理速度,适合作为大规模实时系统的控制核心。
方案2:
采用51系列作为系统控制器
单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制。
由于其功耗低、体积较小、技术成熟和成本低等优点,在各个领域应用广泛。
而且抗干扰性能好。
因51单片机价格比凌阳系列低得多,且本设计不需要很高的处理速度,从经济和方便使用角度考虑,本设计选择了方案2。
2.2.2发声模块
发声模块是本设计的最主要的部分。
基本方案:
发生电路是这次设计电路中最重要的组成部分,他承载着把单片机所产生的声音信号放大并输出的重要作用,而我的设计中的发声电路主要是由两个CS9013组成。
CS9013是一种小功率的放大管,属于NPN型号三极管,而对三极管引脚的判断有以下方法。
1.判断三极管的基极。
对于NPN型号的三极管,用黑表笔接某一个电极,红表笔分别接另外两个电极,若测量电阻值两个都小,调换表笔后被测电阻值都较大,则可判断第一次测量中黑表笔所接的是基极;
如果测量值一大一小,相差很大,则第一次测量中黑表笔接的不是基极,应该更换其他电极重测。
2.测量三极管发射极e和集电极c。
三极管基极确定后,通过交换表笔,两次测量e,c极间的电阻,如果两次测量结果不相等,其中测得电阻值较小的一次为红表笔的是e极黑表笔接的是c极。
对于PNP型号的三极管,方法与NPN的相似,只是红黑表笔的作用相反,在测量e,c极间电阻时要注意,由于三极管的V(BR)CEO很小,很容易将发射结击穿。
当我们三极管的管脚判断结束以后,我们就可以用两个三极管构成一个达林顿结构。
首先当单片机P1.0口输出一个高电平,由两个三极管构成的达林顿成能导通,导通后又能对电流又一定的放大作用,这样传到扬声器时信号能让我们听的更清楚。
2.2.3编程软件模块
采用汇编语言编程
汇编语言指令是用一些具有相应含义的助忆符来表达的,所以,它要比机器语言容易掌握和运用,但另一方面,它要直接使用CPU的资源,相对高级程序设计语言来说,它又显得难掌握。
采用C语言编程
C语言与其他高级语言相比,具有运算符的丰富性、语法表述的灵活性、对软硬件操作的兼容性、输入输出方式的新颖性等主要特征.深入分析研究这些特征,可以加深对C语言的认识;
正确应用这些特征,可以灵活高效地解决各种实际问题.
因为我在大学期间对汇编语言没有深入的了解,而且在编程时一直用C语言,所以我选择了方案2。
2.2.4最终方案
经过反复论证,最终确定了如下方案:
(1)采用STC89C51单片机作为主控制器。
(2)采用达林顿效应使音乐信号放大
(3)采用C语言编程
2.3AT89C51单片机
AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:
40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
AT89S51引脚图
此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
主要功能特性:
·
兼容MCS-51指令系统
·
4k可反复擦写(>
1000次)ISPFlashROM
32个双向I/O口
4.5-5.5V工作电压
2个16位可编程定时/计数器
时钟频率0-33MHz
全双工UART串行中断口线
128x8bit内部RAM
2个外部中断源
低功耗空闲和省电模式
中断唤醒省电模式
3级加密位
看门狗(WDT)电路
软件设置空闲和省电功能
灵活的ISP字节和分页编程
双数据寄存器指针
STC89C51是一种带8K字节可编程可檫除只读存储器的低电压、高性能COMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
单片机引脚图如图所示
图1STC89C51单片机引脚图
第三章硬件电路设计
3.1最小系统设计
最小系统包括单片机及其所需的必要的电源、时钟、复位等部件,能使单片机始终处于正常的运行状态。
电源、时钟等电路是使单片机能运行的必备条件,可以将最小系统作为应用系统的核心部分,通过对其进行存储器扩展、A/D扩展等,使单片机完成较复杂的功能。
3.2时钟电路
STC89C51内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。
时钟可以由内部方式产生或外部方式产生。
内部时钟在此不做详细介绍。
外部方式的时钟电路如图3所示,RXD接地,TXD接外部振荡器。
对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率在12MHz左右的方波信号。
图289c51内部时钟电路
3.3复位电路
当在89C51单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。
复位电路通常采用上电自动复位和按钮复位两种方式。
最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充放电来实现的。
只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。
除了上电复位外,有时还需要按键手动复位。
本设计就是用的按键手动复位。
按键手动复位有电平方式和脉冲方式两种。
其中电平复位是通过RST(9)端与电源Vcc接通而实现的。
按键手动复位电路见图4。
时钟频率用11.0592MHZ时C取10uF,R取10kΩ。
图389C51复位电路
3.4按键控制模块
电子琴设有11个按键,其中8个作为音符输入。
8个按键分别代表8个音符,包括中音段的全部音符,通过软硬件设计。
另外3个分别是控制复位、流水灯的转换、自动播放音乐。
如下图:
3.5播放模块
播放模块是由2个三极管构成,三级管将信号放大,然后传输到喇叭,喇叭它几乎不存在噪声,音响效果较好。
下图是该模块电路:
第四章程序流程
4.1程序流程图
该设计方案是通过按键随意按下所要表达的音符,作为电平送给主体电路,中央处理器通过识别,解码输出音符,在扬声器中发出有效的声音。
通过这样可以不断的弹奏我们想要的音符或者是音调,电路由复位电路,指示灯电路,和功能按键电路组成,通过功能键可以选择播放音乐或者弹奏音节,硬件主要有下面几个部分组成。
4.2重点程序分析
4.2.1音阶程序
ucharcodeyinfu[]={0xfb,0xe9,//Do
0xfc,0x5c,//Re
0xfc,0xc1,//Mi
0xfc,0xef,//Fa
0xfd,0x45,//So
0xfd,0x92,//La
0xfd,0xd0,//Si
0xfd,0xee,//Do#
0x00,0x00,//间隔
4.2.2
结论
通过对自己在大学两年时间里所学的知识的回顾,并充分发挥对所学知识的理解和对毕业设计的思考及书面表达能力,最终完成了本设计。
这为自己今后进一步深化学习,积累了一定宝贵的经验。
撰写论文的过程也是专业知识的学习过程,它使我运用已有的专业基础知识,对其进行设计,分析和解决一个理论问题或实际问题,把知识转化为能力的实际训练。
培养了我运用所学知识解决实际问题的能力。
将以调试好的程序烧进AT89S51芯片,再放到电路板中,按下按键就可以发出相应的音。
本次试验通过制作电子琴,将几个模块换呢好的融合起来,对使用单片机设计简易电子琴进行了分析,并接受了基于单片机电子期硬件组成。
利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。
说明一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,于是我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可,然后我们利用功放电路来将音乐声音放大,同时同股沟显示模块来确知自己所弹的音符。
通过这次实训设计,我感觉收获了很多:
通过这次的单片机实训,我加深了对单片机系列知识及其系统的认识。
这个设计题目并不怎么新颖,但从中体现到了个系统开发设计的过程,足以让我们受益匪浅。
在这次的实训中,让我更进一步的提高了动手能力,也重新复习了一次单片机的程序编程能力,在这期间,让我更加深刻了体会到了汇编程序的思路,加强了对编程能力的理解和对相应资料的查阅。
参考文献
[1]白炽贵编著.单片机C语言案例教程.北京:
电子工业出版社,2011.1
[2]周良权主编.模拟电子技术基础.北京:
高等教育出版社,2005.6
[3]卜锡滨主编.数字电子技术.北京:
中国水利水电出版社,2011.1
[4]李华.单片机C语言编程[M].北京:
北京航空航天大学出版社,2005.8.1
[5]徐爱钧.单片机原理实用教程--基于Protrues虚拟仿真[M].北京:
电子工业出版社.2009.1
[6]李萍.AT89S51单片机、原理、开发与应用实例[M].北京:
中国电力出版社.2008.7
[7]张晔,王玉民等.单片机应用技术[M].北京:
高等教育出版社.2006.3
[8]付家才等.单片机控制工程实践技术[M].北京:
化学工业出版社.2004.5
[9]及力主编.电子CAD基于protel99SE.北京:
北京邮电大学出版社,2008
[10]徐红升主编.电工基础及实训.北京:
清华大学出版社,2009.5
致谢
三年的读书生活在这个季节即将划上一个句号,而于我的人生却只是一个逗号,我将面对又一次征程的开始。
三年的求学生涯在师长、亲友的大力支持下,走得辛苦却也收获满囊,在论文即将付梓之际,思绪万千,心情久久不能平静。
伟人、名人为我所崇拜,可是我更急切地要把我的敬意和赞美献给一位平凡的人,我的导师。
我不是您最出色的学生,而您却是我最尊敬的老师。
您治学严谨,学识渊博,思想深邃,视野雄阔,为我营造了一种良好的精神氛围。
授人以鱼不如授人以渔,置身其间,耳濡目染,潜移默化,使我不仅接受了全新的思想观念,树立了宏伟的学术目标,领会了基本的思考方式,从论文题目的选定到论文写作的指导,经由您悉心的点拨,再经思考后的领悟,常常让我有“山重水复疑无路,柳暗花明又一村”。
感谢我的爸爸妈妈,焉得谖草,言树之背,养育之恩,无以回报,你们永远健康快乐是我最大的心愿。
在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚谢意!
同时也感谢学院为我提供良好的做毕业设计的环境。
最后再一次感谢所有在毕业设计中曾经帮助过我的良师益友和同学,以及在设计中被我引用或参考的论著的作者。
附录1主要源程序
sfrP4=0xe8;
//定义P4组I0口
#include<
reg51.h>
#defineuintunsignedint
#defineucharunsignedchar
sbitspeaker=P1^4;
//喇叭接30脚
sbitkey1=P1^0;
//流水灯按键(暂时)
sbitkey2=P1^1;
//播放音乐按键(暂定)
uchara,b,num1,s1num,n1,n2;
charnum;
//定义num为可以负数
0x00,0x00,//间隔
};
ucharcodeshengri_tone[]={1,0,1,2,1,4,3,0,//生日快乐音调
1,0,1,2,1,5,4,0,
1,0,1,8,6,4,3,2,0,
7,0,7,6,4,5,4,0//0代表不发声,即停顿;
数字即为音调
ucharcodeshengri_beat[]={24,1,24,48,48,48,72,5,//节拍
24,1,24,48,48,48,72,5,
24,1,24,48,48,48,48,72,5,
24,1,24,48,48,48,72,5//节拍,即tone表各音调的延时
ucharcodeledtable[]={0x7f,0xbf,0xdf,0xef,//取反
0xf7,0xfb,0xfd,0xfe};
//P0组口的发光二极管代码(焊接过程可能会相反,具体更改)
ucharcodeledtable2[]={0x7f,0xbf,0xdf,0xef,//取反
//P2组口发光二极管代码,相反!
voidcheck_key();
//改为P3组为按键
voidkeyscan();
voidturn();
//顺时针流动
voidback();
voidqianhou();
voiddangshuang();
voiddelay(uintz);
//延时函数声明
voiddelay1(void);
//声明第二个延时函数
voidplay1(void);
//播放生日快乐
voidmain()
{
s1num=0;
//流水灯种类标志
key1=1;
key2=1;
TMOD=0x01;
TH0=a;
TL0=b;
ET0=1;
//打开定时器,但是未允许中断
TR0=1;
while
(1)
{
check_key();
keyscan();
}
}
voidtime0()interrupt1
speaker=~speaker;
voidcheck_key()
P3=0xff;
//先赋给P2组口高电平
switch(P3)//按下一个键相应4个灯亮
case0xfe:
P0=0xee;
P2=0x77;
a=0xfb;
b=0xe9;
EA=1;
break;
//P0,P2组为发光二极管组
case0xfd:
P0=0xdd;
P2=0xbb;
a=0xfc;
b=0x5c;
//注意:
EA不能改为TR0
case0xfb:
P0=0xbb;
P2=0xdd;
b=0xc1;
case0xf7:
P0=0x77;
P2=0xee;
b=0xef;
case0xef:
a=0xfd;
b=0x45;
case0xdf:
b=0x92;
case0xbf:
b=0xd0;
case0x7f:
b=0xee;
default:
EA=0;
speaker=0;
//P0=0xff;
P2=0xff;
voiddelay(uintz)
uintx,y;
for(x=z;
x>
0;
x--)
for(y=110;
y>
y--);
voidkeyscan()
if(key1==0)
delay(5);
if(key1==0)
{
s1num++;
while(!
key1);
if(s1num==1)
{
turn();
}
}
if(s1num==2)
back();
if(s1num==3)
qianhou();
if(s1num==4)
dangshuang();
if(s1num==5)
s1num=1;
if(key2==0)
delay(5);
while(~key2);
play1();
voiddelay1(void)//第二个延时函数
ucharn=15;
while(n--)
uchari;
for(i=0;
i<
125;
i++);
voidplay1(void)//播放生日快乐
ucharm=0;
uchars;
ucharc=1;
P0=0xaa;
P2=0x55;
EA=0;
c=shengri_tone[m];
//取音符
s=shengri_beat[m];
//取节拍
a=yinfu[2*c-2];
b=yinfu[2*c-1];
EA=1;
while(s--)
delay1();
P0=~P0;
P2=~P2;
m++;
if(m
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 声光 电子琴