基于AT89S52的玩具电子琴设计文档格式.docx

上传人:b****1 文档编号:1471995 上传时间:2023-04-30 格式:DOCX 页数:43 大小:215.89KB
下载 相关 举报
基于AT89S52的玩具电子琴设计文档格式.docx_第1页
第1页 / 共43页
基于AT89S52的玩具电子琴设计文档格式.docx_第2页
第2页 / 共43页
基于AT89S52的玩具电子琴设计文档格式.docx_第3页
第3页 / 共43页
基于AT89S52的玩具电子琴设计文档格式.docx_第4页
第4页 / 共43页
基于AT89S52的玩具电子琴设计文档格式.docx_第5页
第5页 / 共43页
基于AT89S52的玩具电子琴设计文档格式.docx_第6页
第6页 / 共43页
基于AT89S52的玩具电子琴设计文档格式.docx_第7页
第7页 / 共43页
基于AT89S52的玩具电子琴设计文档格式.docx_第8页
第8页 / 共43页
基于AT89S52的玩具电子琴设计文档格式.docx_第9页
第9页 / 共43页
基于AT89S52的玩具电子琴设计文档格式.docx_第10页
第10页 / 共43页
基于AT89S52的玩具电子琴设计文档格式.docx_第11页
第11页 / 共43页
基于AT89S52的玩具电子琴设计文档格式.docx_第12页
第12页 / 共43页
基于AT89S52的玩具电子琴设计文档格式.docx_第13页
第13页 / 共43页
基于AT89S52的玩具电子琴设计文档格式.docx_第14页
第14页 / 共43页
基于AT89S52的玩具电子琴设计文档格式.docx_第15页
第15页 / 共43页
基于AT89S52的玩具电子琴设计文档格式.docx_第16页
第16页 / 共43页
基于AT89S52的玩具电子琴设计文档格式.docx_第17页
第17页 / 共43页
基于AT89S52的玩具电子琴设计文档格式.docx_第18页
第18页 / 共43页
基于AT89S52的玩具电子琴设计文档格式.docx_第19页
第19页 / 共43页
基于AT89S52的玩具电子琴设计文档格式.docx_第20页
第20页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于AT89S52的玩具电子琴设计文档格式.docx

《基于AT89S52的玩具电子琴设计文档格式.docx》由会员分享,可在线阅读,更多相关《基于AT89S52的玩具电子琴设计文档格式.docx(43页珍藏版)》请在冰点文库上搜索。

基于AT89S52的玩具电子琴设计文档格式.docx

第4章仿真测试25

4.1PROTEUS软件介绍25

4.2系统主要仿真图25

4.3测试25

致谢59

参考文献60

附录代码63

(章的名称、结论、参考文献、致谢及附录小4号黑体,其余小4号宋体)

第1章绪论

1.1概述

目前单片机的应用渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。

导弹的导航装置、飞机上各种仪表的控制、计算机的网络通讯与数据传输、工业自动化过程的实时控制和数据处理、广泛使用的各种智能IC卡、民用豪华轿车的安全保障系统、录像机、摄像机、全自动洗衣机的控制、以及程控玩具、电子宠物等等,这些都离不开单片机。

更不用说自动控制领域的机器人、智能仪表、医疗器械了。

我们所熟知的是单片机在测试控制领域中的广泛应用,但是除了这些之外,单片机还有一些有趣的应用。

比如,使用单片机可以驱动蜂鸣器或者扬声器发出声音并且还可以控制其发出不同的声调,从而连接起来构成一个歌曲。

目前市场上有很多种音乐模块或者音乐芯片,可以直接产生各种曲子。

但是这种模块价格比较昂贵,电路结构也相对比较复杂。

如果系统中仅需要产生简单的音符或者简短的曲子,可以使用单片机配合简单的扬声器而产生所需要的音乐效果。

一般说来,单片机不像其他专业乐器那样能奏出多种音色的声音,即不包含相应幅度的谐波频率。

单片机演奏的音乐基本都是单音频率。

因此单片机演奏音乐比较简单,只需要清楚“音调”和“节拍”就可以。

本文使用AT89S52单片机设计了一个音乐播放器,能够演奏八个音符跟自动演奏两首歌曲,该设计能使我们能够掌握用定时器的控制播放乐曲原理和设计方法,对大学期间所学习的一些理论进行了实践,使我们对所学过的理论知识有了新的认识。

并且通过该设计课题掌握了MC-51单片机的的软硬件开发工具的使用方法,为以后从事相关行业的工作积累了实际工作经验。

目前我国的信息行业发展迅速,因此此课题对自己的就业有非常现实与积极的意义。

1.2研究内容

电子琴有着漂亮的外观,清澈洪亮的声音,它是现代电子科技与音乐的产物,在现代音乐中扮演着重要的角色,单片机对于电子琴的设计具有强大的控制功能。

本文主要任务是,基于AT89S52单片机设计一个能够播放八个音符跟自动播放两首歌曲的电子琴。

1、利用PROTEL99设计玩具电子琴的原理图

2、基于KEIL软件编写音乐播放器程序代码

3、制作实物

4、对所做设计进行测试

1.3理论基础

单片机音乐播放器是利用单片机产生乐曲音符,再把乐曲音符翻译成计算机音乐语言,用单片机进行信息处理,再通过蜂鸣器或喇叭放出音乐。

音乐的产生主要是通过单片机的I/O口输出高低不同的脉冲信号来控制蜂鸣器发音。

要想产生音频脉冲信号,需要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。

利用单片机定时器计时这个半个周期时间,每当计时到后就将输出脉冲的I/O口反相,然后重复计时此半周期时间再对I/O口反相这样就能在此I/O口上得到此频率的脉冲。

通常,利用单片机的内部定时器T0工作在方式0下改变计数初值TH0和TL0来产生不同频率。

对于音乐的节拍,每个音符使用1个字节,字节的高4位代表音符的高低低4位代表音符的节拍。

如果1拍为0.4S,1/4拍为0.1S,只要设定延迟时间就可求得节拍的时间。

假设1/4拍为1DELAY,那么1拍应为4DELAY,以此类推,所以只要求得1/4拍的DELAY,其余的节拍就是它的倍数。

总而言之,一首乐曲是由音阶和节拍两大要素构成。

一首乐曲演奏的原理是,不同音阶分别对应不同的频率,发出不同的音调,而节拍则控制发出音调时间的长短,若将乐曲的音调连续发出,并使其按相应的节拍变化,即可演奏一首乐曲。

根据这一特点我们采用单片机辅以相应的接口来设计音乐播放器。

第二章硬件设计

2.1方案论证及系统设计

本系统分为两个部分,一个是音乐播放,另一个就是电子琴弹奏。

关于声音的处理,使用单片机C语言,利用定时器来控制频率,而每个音符的符号只是存在我自己定义的表中。

具体要求如下:

1.要求达到电子琴的基本功能,可以用弹奏出简单的乐曲。

2.用键盘作出电子琴的按键,每键代表一个音符。

3.各音符按一定的顺序排列,必须符合电子琴的按键排列顺序。

4.弹奏电子琴时能播放出准确的声音,不弹奏时可以播放内置音乐。

方案一:

采用CPLD外接扬声器、键盘、数码管等。

主系统可由两个模块组成:

当系统检测到有按键按下时,对应音符的频率由模块1获得,这是一个数控分频器。

由其clk端输入一具有较高频率的信号,分频后输出。

音符的持续时间须根据乐曲的速度及每个音符的节拍数决定,模块2的功能是为模块1提供决定所发音的分频预置值,而此数在模块1输入口停留的时间即为此音符的节拍值。

方案二:

采用单片机外接扬声器、键盘、数码管等。

具体过程:

当系统扫描到键盘上有键子被按下,则快速检测出是那一个键子,然后单片机的定时器被启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。

如果在前一个按下的键发声的同时有另一个键被按下,则启用中断系统,前面键的发音停止,转到后按的键的发音程序,发出后按的键的音

对比两套方案各有优缺点,方案一采用CPLD,工作速度快,系统稳定,效果好,但是其价格昂贵;

而方案二在设计这样小型电子系统方面,无论是效果还是工作速度与方案一都相差不大,而且价格较为便宜。

因此,选择方案二即单片机加外设的方式设计该系统较好。

本系统以AT89S52单片机为主控制器,通过三极管驱动蜂鸣器发出声音。

首先,一方面,通过变压、整流、滤波、稳压四部产生可供单片机使用的5v电。

另一方面,单片机利用定时、计数器实时驱动喇叭演奏音乐。

整个系统由单片机模块、电源模块、三极管驱动、喇叭组成。

系统整体框图如图2-1所示

图2-1系统整体框图

由PROTEL设计的原理图如图2-2所示

图2-2系统整体原理图

2.2系统硬件分析

2.2.1单片机小系统

单片机是大规模集成电路结束发展的产物,常见的单片机有8051系列的单片机、8096系列的单片机、PIC系列、AVR系列、SPCE061A的凌阳单片机。

他将中央处理器(CPU)、存储器(ROM/RAM)、输入输出接口、定时器/记数器等主要计算机部件集成在一片芯片上,因此单片机被称为单片机微型计算机(SingleChipMicrocomputer).单片机配上适当的外围设备和软件,便可构成一个单片机应用系统。

本次设计对单片机的要求:

只要能够驱动蜂鸣器即可,其他并无特殊要求。

故选择常见的美国Inter公司生产的MCS-51系列单片机,它具有可高性高、功能强、体积小、价格低、和抗干扰能力强等特点,被广泛应用于工农业生产、国防、科研及日常生活等各个领域。

而且本组同学也比较熟悉。

我们选择的ATMEL公司的AT89S52单片机,他是一种低功耗、高性能CMOS8位微控制器,具有8KISP(在系统可编程)Flash存储器。

使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89S52具有如下特点:

兼容MCS-51指令系统

32个双向I/O口

3个16位可编程定时/计数器

全双工UART串行中断口线

2个外部中断源

中断唤醒省电模式

看门狗(WDT)电路

灵活的ISP字节和分页编程

4.5-5.5V工作电压

时钟频率0-33MHz

256×

8bit内部RAM

低功耗空闲和省电模式

3级加密位

软件设置空闲和省电功能

双数据寄存器指针

8k可反复擦写(>

1000次)ISPFlashROM

AT89S52主要引脚的主要功能:

VCC:

接+5V电源。

GND:

接地

P0口:

P0口为一个8位漏极开路双向I/O口,作为输出口,每位能驱动8个TTL逻辑电平。

对P0端口写“1”时,引脚用作高阻抗输入。

当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。

在这种模式下,P0口具有内部上拉电阻。

在flash编程时,P0口也用来接收指令字节;

在程序校验时,输出指令字节。

程序校验时,需要外部上拉电阻。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口输出缓冲器能驱动4个TTL逻辑电平。

对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

此外,P1.0和P1.1分别作定时器/记数器2的外部记数输入(P1.0/T2)和定时器/记数器2的触发输入(P1.1/T2EX)。

P2口:

P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。

对P2口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

在访问外部程序存储器或用16位地址读取外部数据存储器(例如MOVX@DPTR)时,P2口送出高八位地址。

在这种应用中,P2口P2口使用很强的内部上拉发送1。

P3口:

P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。

对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)

RST:

复位输入。

晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。

看门狗计时完成后,RST脚输出96个晶振周期的高电平。

特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。

DISRTO默认状态下,复位高电平有效。

ALE/PROG:

地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。

在flash编程时,此引脚(PROG)也用作编程输入脉冲。

在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。

然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。

如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。

这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。

否则,ALE将被微弱拉高。

这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。

PSEN:

外部程序存储器选通信号。

当AT89S52从外部程序存储器执行外部代码时,PSEM在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。

EA/VPP:

访问外部程序存储器控制信号。

为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。

为了执行内部程序指令,EA应该接VCC。

在flash编程期间,EA也接收12伏VPP电压

XTAL1:

振荡器反相放大器和内部时钟发生电路的输入端。

XTAL2:

振荡器反相放大器的输出端。

单片机小系统是整个数控系统的核心部分。

主要包括AT89S52单片机、振荡电路、复位电路等。

系统整体原理图如图2-3所示

图2-3单片机小系统

AT89S52单片机的P0口是个双向口,可以作输出输入口,在本系统中用作显示部分,用来给数码管传送位码,P1口也是个双向口,主要接DAC0832、P3口用来接收PC来的串口数据。

而P3口主要用于中断。

复位电路复位是单片机初始化操作。

复位将单片机复到初始化状态,目的是使CPU及个专用寄存器处于一个确定的初始状态。

如前面介绍,在单片机的复位信号RST上保持2个机器周期以上的高电平,单片机就会复位。

本次设计采用的是手动复位方式,利用按键闭合是单片机复位端上保持接通高电平状态两个机器周期以上。

振荡电路该电路是由内部反相放大器通过引脚XTAL1和引脚XTAL2与外接的晶体以及电容C6和C7构成,产生出晶体振荡信号。

此晶振信号接至内部的时钟电路。

图中的晶振频率为11.0592MHz,外接晶体时,电容C6和C7通常选30pF。

虽然对外接电容没有严格要求,但电容的大小会影响振荡频率、振荡器的稳定性和起振的速度。

振荡器的这些特性对弹片机的应用影响很大,因此在设计印刷电路板时,应使晶体和电容尽可能与单片机靠近,以保证稳定可靠。

2.2.2供电模块

当今社会人们极大的享受着电子设备带来的便利,但是任何电子设备都有一个共同的电路--电源电路。

大到超级计算机、小到袖珍计算器,所有的电子设备都必须在电源电路的支持下才能正常工作。

当然这些电源电路的样式、复杂程度千差万别。

超级计算机的电源电路本身就是一套复杂的电源系统。

通过这套电源系统,超级计算机各部分都能够得到持续稳定、符合各种复杂规范的电源供应。

袖珍计算器则是简单多的电池电源电路。

不过你可不要小看了这个电池电源电路,比较新型的电路完全具备电池能量提醒、掉电保护等高级功能。

可以说电源电路是一切电子设备的基础,没有电源电路就不会有如此种类繁多的电子设备。

由于电子技术的特性,电子设备对电源电路的要求就是能够提供持续稳定、满足负载要求的电能,而且通常情况下都要求提供稳定的直流电能。

提供这种稳定的直流电能的电源就是直流稳压电源。

直流稳压电源在电源技术中占有十分重要的地位。

本系统供电采用传统的变压、整流、滤波、稳压四部分组成。

供电模块如图2-4所示

交流220V从插头CON2输入,经过变压器T1变压后大约将至十几伏,此时仍为交流电,经过桥式整流后变为直流,经过电容C4滤波后,进入三端稳压器7805进行稳压后输出+5V。

方案二

开关电源是利用现代电力电子技术控制开关晶体管开通和关断的时间比率维持稳定输出电压的一种电源开关电源一般由脉冲宽度调制PWM控制IC和开关器件MOSFET、BJT等构成。

开关电源和线性电源相比二者的成本都随着输出功率的增加而增长但二者增长速率各异。

线性电源成本在某一输出功率点上反而高于开关电源。

随着电力电子技术的发展和创新使得开关电源技术在不断地创新这一成本反转点日益向低输出电力端移动这为开关电源提供了广泛的发展空间。

开关电源高频化是其发展的方向高频化使开关电源小型化并使开关电源进入更广泛的应用领域特别是在高新技术领域的应用推动了高新技术产品的小型化、轻便化。

另外开关电源的发展与应用在节约能源、节约资源及保护环境方面都具有重要的意义。

开关电源的工作过程相当容易理解,在线性电源中,让功率晶体管工作在线性模式,与线性电源不同的是,PWM开关电源是让功率晶体管工作在导通和关断的状态,在这两种状态中,加在功率晶体管上的伏-安乘积是很小的,在导通时,电压低,电流大,关断时,电压高电流小,功率器件上的伏安乘积就是功率半导体器件上所产生的损耗。

与线性电源相比,PWM开关电源更为有效的工作过程是通过“斩波”,即把输入的直流电压斩成幅值等于输入电压幅值的脉冲电压来实现的。

脉冲的占空比由开关电源的控制器来调节。

一旦输入电压被斩成交流方波,其幅值就可以通过变压器来升高或降低。

通过增加变压器的二次绕组数就可以增加输出的电压组数。

最后这些交流波形经过整流滤波后就得到直流输出电压。

控制器的主要目的是保持输出电压稳定,其工作过程与线性形式的控制器很类似。

也就是说控制器的功能块、电压参考和误差放大器,可以设计成与线性调节器相同。

他们的不同之处在于,误差放大器的输出,误差电压,在驱动功率管之前要经过一个电压/脉冲宽度转换单元。

开关电源有两种主要的工作方式,正激式变换和升压式变换。

尽管它们各部分的布置差别很小但是工作过程相差很大,在特定的应用场合下各有优点。

综合比较,方案一简单但是不稳定,方案二稳定但复杂,经综合考虑,我们选用方案二。

第三章软件设计

本软件要实现的功能是:

单片机实现玩具电子琴功能。

要让蜂鸣器发出某音调的声音,只要给蜂鸣器输送该音调频率的电平信号就可以了。

由于单片机I/O口的输出只有高电平“1”和低电平“0”两种状态,因此向蜂鸣器输送的电平信号实际上就是该音频的方波。

例如中音“1”的频率为532Hz,它的周期为1/532s,即1..91ms。

因此,只要向蜂鸣器输送周期为1.91ms的脉冲方波电平信号就能发出532Hz的音调,该方波的半周期为1.91/2=0.955ms。

为此,需要利用定时器的中断,让输送给蜂鸣器的电平信号每0.955ms取反一次即可。

因为所选的单片机的晶振为11.0592MHz,它的一个机器周期为12×

(1/11.0592)μs=1.058μs,因此需要的机器周期总数为955μs/1.085μs=880即定时器的定时常数就应取为880。

根据上述分析,发出频率为f的音频时,定时常数C计算公式为(106/2f)μs/1.085μs=460830/f=CT0工作于方式0,最大计数为8192,完全可以满足各音频定时常数设置的需要。

可以证明,在已知定时常数为C的条件下,13位计数器的高8位和低5位的初值可由以下公式设定:

证明这是13位计数器TH0高8位的赋值方法TL0=(8192-C)%32;

2、节拍控制因为假设节拍为每分钟72拍,则每个节拍需时间:

1000×

60ms/72=833ms根据乐谱知识,选择相应的延时即可

程序采用KEIL软件C语言编写

3.1KEIL软件介绍

KEILuⅥsioIl2软件是KEIL公司的产品。

KEIL公司是一家业界领先的微控制器(MCU)软件开发工具的独立供应商。

KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。

C5l编译器的功能不断增强,使用户可以更加贴近CPU本身,及其它的衍生产品。

C51已被完全集成到uⅥsion2的集成开发环境中,这个集成开发环境包含:

编译器,汇编器,实时操作系统,项目管理器,调试器。

uVisioll2DE可为它们提供单一而灵活的开发环境。

3.2系统流程

3.2.1系统主流程

单片机上电后,首先做系统初始化,然后对定时/计数器进行初始化,在初始化后,通过定时/计数器中断输出不同的频率,然后调用不同的延时单位来实现节拍。

如图3-1所示

3-1系统整体流程图

3.2.2中断初始化流程

中断初始化主要包括设置定时计数器工作方式、开中断、赋初值等一系列操作,中断初始化主要流程图如图3-2所示

图3-2串口初始化主要流程图

第四章仿真测试

4.1PROTEUS软件介绍

PROTEUS软件如图4-1所示

图4-1PROTEUS软件

Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。

它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。

它是目前最好的仿真单片机及外围器件的工具。

虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。

其功能特点如下:

Proteus软件具有其它EDA工具软件(例:

multisim)的功能。

这些功能是:

原理布图,PCB自动或人工布线,SPICE电路仿真。

革命性的特点:

(1)互动的电路仿真,用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。

(2)仿真处理器及其外围电路,可以仿真51系列、AVR、PIC等常用主流单片机。

还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。

配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。

具有3大功能模块:

(1)—个易用而又功能强大的IS

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2