基于单片机简易电子琴设计.docx
《基于单片机简易电子琴设计.docx》由会员分享,可在线阅读,更多相关《基于单片机简易电子琴设计.docx(20页珍藏版)》请在冰点文库上搜索。
![基于单片机简易电子琴设计.docx](https://file1.bingdoc.com/fileroot1/2023-5/17/f470aa77-6f15-405b-bc43-32cf0104530e/f470aa77-6f15-405b-bc43-32cf0104530e1.gif)
基于单片机简易电子琴设计
单片机技术课程设计报告
(2012~2013学年第2学期)
设计题目:
基于单片机简易电子琴设计
班别:
2010级电子二班
姓名:
指导教师:
时间:
2013年5月26日
目录
1.设计任务
2.系统总体方案设计
2.1各模块方案选择与论证
2.1.1播放模块
2.1.2按键控制模块
2.2总体硬件组成框图
3.系统的硬件设计
3.1中心控制模块的硬件设计
3.2声音播放模块的硬件设计
3.3按键控制模块和复位电路模块的硬件设计
4.单片机最小系统设计
4.1电子琴主要电路及其芯片
4.2音频功放电路
4.3扬声器
4.4系统软件流程
5.电路的仿真和调试
6.实物调试
6.1实物调试
7.心得体会
附录
1.设计任务
利用所给键盘的1,2,3,4,5,6,7,8八个按键,能够发出8个不同的音调,并且要求按下按键发声,松开延时一段时间停止,中间再按别的按键则发另一音调的声音。
2.系统总体方案设计
2.1各模块方案选择与论证
2.1.1播放模块
播放模块是由喇叭构成,它几乎不存在噪声,音响效果较好,而且由于所需驱动功率较小,且价格低廉,所以,被广泛应用。
2.1.2按键控制模块
电子琴设有8个按键,都作为音符输入。
8个按键分别代表8个音符,包括中音段的全部音符,通过软硬件设计,模式转换按键触发外部中断,中断使程序跳转,实现模式转换,启动电子琴。
。
2.2总体硬件组成框图
该设计方案是通过按键随意按下所要表达的音符,作为电平送给主体电路,中央处理器通过识别,解码输出音符,在扬声器中发出有效的声音。
通过这样可以不断的弹奏我们想要的音符或者是音调,电路由复位电路,指示灯电路,和功能按键电路组成,通过功能键可以选择播放音乐或者弹奏音节,硬件主要有下面几个部分组成。
按键选择
(弹奏不同音符)
图1电子琴硬件设计框图
用P2口的高四位和P2口的第四位作为按键的接口,用P1口做信号输出口
3.系统的硬件设计
为了使电子琴的控制系统更加的方便、灵活以及稳定性,我们对系统硬件进行了简约和优化,使硬件更加的实用,更加的人性化,硬件电路包括中心控制模块、播放模块、按键控制模块、复位按键模块四大类。
3.1中心控制模块的硬件设计
这次设计的中心控制模块是采用AT89S52单片机来控制整个系统。
其中P2口作为输入口,P1口为信号输出口,P1.0连接音响驱动电路。
3.2声音播放模块的硬件设计
如下图所示,为声音的播放模块,它接到P1.0口上,当有按键按下时,它通过AT89S52中心控制芯片的识别后发出相应的音符。
图2音频放大电路
3.3按键控制模块和复位电路模块的硬件设计
在P2口连接有8个按键开关加8个拉电阻,它们一端接5伏电源,一端接地。
只要有一个按键被按下,并被单片机扫描到,则会播放发出音符。
图3上图为按键复位电路
图4上图为按键电路
4.单片机最小系统设计
4.1电子琴主要电路及其芯片
在电子琴主要电路设计中,我们采用了AT89S52单片机芯片,其特点及管脚封装如下介绍一般。
At89s52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
8位微控制器8K字节在系统可编程FlashAT89S52
P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。
在flash编程和校验时,P3口也接收一些控制信号。
端口引脚第二功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2INTO(外中断0)
P3.3INT1(外中断1)
P3.4TO(定时/计数器0)
P3.5T1(定时/计数器1)
P3.6WR(外部数据存储器写选通)
P3.7RD(外部数据存储器读选通)
此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。
RST——复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。
图5上图为AT89S52芯片的管脚图
4.2音频功放电路
晶体三极管按材料分有两种:
锗管和硅管。
而每一种又有NPN和PNP两种结构形式,但使用最多的是硅NPN和PNP两种三极管,两者除了电源极性不同外,其工作原理都是相同的,下面仅介绍NPN硅管的电流放大原理。
对于NPN管,它是由2块N型半导体中间夹着一块P型半导体所组成,发射区与基区之间形成的PN结称为发射结,而集电区与基区形成的PN结称为集电结,三条引线分别称为发射极e、基极b和集电极c。
当b点电位高于e点电位零点几伏时,发射结处于正偏状态,而C点电位高于b点电位几伏时,集电结处于反偏状态,集电极电源Ec要高于基极电源Ebo。
在制造三极管时,有意识地使发射区的多数载流子浓度大于基区的,同时基区做得很薄,而且,要严格控制杂质含量,这样,一旦接通电源后,由于发射结正偏,发射区的多数载流子(电子)极基区的多数载流子(空穴)很容易地越过发射结互相向对方扩散,但因前者的浓度基大于后者,所以通过发射结的电流基本上是电子流,这股电子流称为发射极电流Ie。
由于基区很薄,加上集电结的反偏,注入基区的电子大部分越过集电结进入集电区而形成集电集电流Ic,只剩下很少(1-10%)的电子在基区的空穴进行复合,被复合掉的基区空穴由基极电源Eb重新补给,从而形成了基极电流Ibo.根据电流连续性原理得:
Ie=Ib+Ic
这就是说,在基极补充一个很小的Ib,就可以在集电极上得到一个较大的Ic,这就是所谓电流放大作用,Ic与Ib是维持一定的比例关系,即:
β1=Ic/Ib
式中:
β1--称为直流放大倍数,
集电极电流的变化量△Ic与基极电流的变化量△Ib之比为:
β=△Ic/△Ib
式中β--称为交流电流放大倍数,由于低频时β1和β的数值相差不大,所以有时为了方便起见,对两者不作严格区分,β值约为几十至一百多。
4.3扬声器
扬声器是一种把电平转变为声信号的换能器件,扬声器和性能对音质的高低音响很大。
扬声器的种类很多,按其换能原理可分为电动式、静电式、电磁式、压电式等几种,后两种多用于农村有线广播网中,按频率范围可分为低音扬声器、中音扬声器,这些常在音箱中作为组合扬声器使用。
在本次试验作品中使用电磁式扬声器。
图6为所使用的扬声器实
4.4系统软件流程
软件是该电子琴控制系统的重要组成部分,在系统的软件设计中我们也用了模块设计,将系统的各部分功能编写成子模块的形式,这样增强了系统软件的可读性和可移植性。
图7软件设计流程图
本系统软件中还要是编辑电子琴播放状态的内容,在设计中采用汇编语言编写了电子琴控制系统控制和播放内容的程序。
源程序参考附录5
主要程序:
MAIN:
MOVSP,#60H
MOV30H,#00
MOV31H,#00
MOVP1,#0FFH
MOVTMOD,#01H
SETBET0
SETBEA
CLRTR0
START:
MOVR0,P2
CJNER0,#0FFH,KEY1
CLRTR0
5.电路的仿真和调试
Proteus的ISIS事一款labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,可以给我们做电路设计提供方便快捷的仿真效果,让我们事半功倍。
图8电路仿真图
把程序烧进单片机,进行仿真没有问题,证明电路原理图和程序可以使用
6.实物调试
6.1实物调试
根据proteus的电路图在Altium中画PCB原理图,并做成PCB制作成电路板。
将生成的.hex文件下载到到单片机里,连接好电源,进行电路测试。
实物如图9所示。
图9实物图
7.心得体会
将以调试好的程序烧进AT89S52芯片,再放到电路板中,按下按键就可以发出相应的音。
本次试验通过制作电子琴,将几个模块融合起来,对使用单片机设计简易电子琴进行了分析,并接受了基于单片机电子期硬件组成。
利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。
说明一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,于是我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,然后我们利用功放电路来将音乐声音放大,同时同股沟显示模块来确知自己所弹的音符。
通过这次实训设计,我感觉收获了很多:
通过这次的单片机实训,我加深了对单片机系列知识及其系统的认识。
这个设计题目并不怎么新颖,但从中体现到了个系统开发设计的过程,足以让我们受益匪浅。
在这次的实训中,让我更进一步的提高了动手能力,也重新复习了一次单片机的程序编程能力,在这期间,让我更加深刻了体会到了汇编程序的思路,加强了对编程能力的理解和对相应资料的查阅。
附录
附录1
设计电路图(所用的元器件标注型号及参数)
电源1
电阻10k3个1k10个
开关10个
晶振1个
单片机1个
电解电容10u一个
普通电容25pf2个
喇叭1个
附录2
仿真图
附录3
电路图
附录4
PCB图
附录5
编写程序的思路
ORG0000H
LJMPMAIN
ORG000BH
LJMPINT_T0
ORG0100H
MAIN:
MOVSP,#60H
MOV30H,#00
MOV31H,#00
MOVP1,#0FFH
MOVTMOD,#01H
SETBET0
SETBEA
CLRTR0
START:
MOVR0,P2
CJNER0,#0FFH,KEY1
CLRTR0
SJMPSTART
KEY1:
CJNER0,#0FEH,KEY2
MOV30H,#0FBH
MOV31H,#0E9H
LJMPSET_TIMER
KEY2:
CJNER0,#0FDH,KEY3
MOV30H,#0FCH
MOV31H,#5CH
LJMPSET_TIMER
KEY3:
CJNER0,#0FBH,KEY4
MOV30H,#0FCH
MOV31H,#0C1H
LJMPSET_TIMER
KEY4:
CJNER0,#0F7H,KEY5
MOV30H,#0FCH
MOV31H,#0EFH
LJMPSET_TIMER
KEY5:
CJNER0,#0EFH,KEY6
MOV30H,#0FDH
MOV31H,#045H
LJMPSET_TIMER
KEY6:
CJNER0,#0DFH,KEY7
MOV30H,#0FDH
MOV31H,#92H
LJMPSET_TIMER
KEY7:
CJNER0,#0BFH,KEY8
MOV30H,#0FDH
MOV31H,#0D6H
LJMPSET_TIMER
KEY8:
CJNER0,#7FH,NOKEY
MOV30H,#0FDH
MOV31H,#0FBH
SET_TIMER:
SETBTR0
SJMPSTART
NOKEY:
CLRTR0
SJMPSTART
INT_T0:
MOVTH0,30H
MOVTL0,31H
CPLP1.0
RETI
END