毕业设计硬件部分.docx

上传人:b****5 文档编号:29396243 上传时间:2023-07-23 格式:DOCX 页数:21 大小:400KB
下载 相关 举报
毕业设计硬件部分.docx_第1页
第1页 / 共21页
毕业设计硬件部分.docx_第2页
第2页 / 共21页
毕业设计硬件部分.docx_第3页
第3页 / 共21页
毕业设计硬件部分.docx_第4页
第4页 / 共21页
毕业设计硬件部分.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

毕业设计硬件部分.docx

《毕业设计硬件部分.docx》由会员分享,可在线阅读,更多相关《毕业设计硬件部分.docx(21页珍藏版)》请在冰豆网上搜索。

毕业设计硬件部分.docx

毕业设计硬件部分

天津冶金职业技术学院

毕业设计

allen_lihui@

基于AT89S51的音乐盒设计

 

系部

专业

班级

学生姓名

指导老师

 

2011年3月31日

摘要

单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。

本系统是以51系列单片机AT89S52为主控制器,几个按键、LED显示管、扬声器组成。

系统通过各按键的控制,基于可靠的硬件设计和精确而稳定的软件设计,并同时能在数码管上显示当前所播放歌曲顺序的功能。

系统完成显示输入信息、播放相应音符等基本功能。

本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。

用一块AT89S52组成的最小系统作为控制中心,编好程序烧录进单片机里,使I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。

输出信号通过三极管放大,由一个蜂鸣器来表现信号的输出。

关键词:

单片机;按键;显示数码管;播放歌曲。

目录

摘要Ⅰ

1引言1

2电路功能概述2

2.1硬件系统结构框图2

2.2时钟电路3

2.3单片机的复位及复位电路4

2.4原理图及说明6

2.4.1原理图:

6

2.4.2原理分析6

2.4.3元件介绍7

2.4.4PCB板10

3仿真、安装和调试11

3.1.1仿真图11

3.1.2仿真调试11

总结13

参考文献14

附录:

音乐程序15

1引言

随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是毋庸置疑的,其中智能音乐盒就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、生活、提供更好的更方便的服务就需要从单片机技术着手,一切向着数字化控制,智能化控制方向发展。

声音是由物体振动产生,正在发声的物体叫声源。

振动的频率高,为高音;振动的频率低,为低音。

人耳比较容易辨识的声音频率范围是20Hz到20,000Hz之间,一般音响电路是用正弦波信号驱动喇叭,从而产生悦耳的音乐;在数字电路里,则是用数字脉冲信号信号驱动喇叭,从而产生声音。

如果声音的频率相同,人类耳朵很难区分哪个是脉冲信号产生的声音,哪个是正弦波信号产生的声音。

本设计所介绍的智能音乐盒,具有使用方便,音质效果良好,稳定性好,其输出温度采用数字显示,主要用于生日派对,家庭娱乐,儿童玩具,该设计控制器使用单片机AT89C51,具有五个功能键来选择音乐的播放与复位,用三极管组成放大电路,实现驱动蜂鸣器播放音乐的功能。

2电路功能概述

本设计主控芯片采用89S51单片机,采用C语言进行编程,根据代码产生一定频率的脉冲,驱动蜂鸣器,放出音。

本系统功能键三个按键组成,其中A号和B号键是歌曲序列号键,可以直接选择音乐;A号键选择第一首歌,B号键选择第二首歌,C号键复位。

 

2.1硬件系统结构框图

智能音乐盒的系统结构以AT89S51单片机为控制核心,加上三个按键、放大电路、时钟电路、蜂鸣器等组成。

系统组成框图如图:

 

2.2时钟电路

时钟电路用于产生单片机工作时所必需的时钟控制信号。

MCS—51单片机的内部电路在时钟信号的控制下,严格地按时序执行指令进行工作。

时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。

单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。

这两个引脚跨接石英晶体振荡器(简称晶振)和微调电容,就构成一个稳定的自激振荡器,电路中我们采用电容C1和C2为30PF,石英晶体的振荡频率选用12MHz,如图:

 

2.3单片机的复位及复位电路

复位状态:

计算机在启动运行时都需要复位,复位使中央处理器CPU和系统中的其他器件都处于一种初始状态,并从这个初始状态工作。

MCS-51系列单片机有一个复位引脚RST。

在MCS-51系列单片机的RST引脚上输入一个高电平信号,该高电平信号至少要维持两个机器周期以上的时间,单片机被复位。

复位电路:

与其他计算机一样,MCS-51单片机系统的复位方法有上电自动复位、手动复位以及“看门狗”复位等。

此最小系统采用手动复位电路。

在系统运行过程中,有时可能对系统需要进行复位,为避免对硬件经常加电和断电造成的损害,我们可以采用手动复位。

这种方法是将一个开关串联一只电阻后,再并联于电容C的两端,在系统运行过程中需要复位时只要使开关闭合,在RST引脚上就会出现一定时间的高电平信号,从而使单片机实现复位。

复位电路如图:

2.4原理图及说明

2.4.1原理图:

使用Protel99SE绘制原理图,绘制相应的原件封装,进行电气规则检查并生成原件清单。

2.4.2原理分析:

(1)原理图说明:

当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。

同时启动定时器T1,显示歌曲号。

①.硬件电路中用

(外部中断0、1输入端P1.0P1.1)分别接S1、S2作为上、下一曲的功能键。

②.用P0.0-P0.7控制七段码a,b,c,d,e,f,g。

③.用P1.4口控制喇叭。

④.电路为12MHZ晶振频率工作,起振电路中C1,C2均为30pf。

2.4.3元件介绍:

①.AT89S51元件介绍

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设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。

空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。

同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。

②.AT89S51引脚的排列、名称、功能和用法

AT89S51引脚的排列如图:

引脚介绍:

VCC:

供电电压。

  

GND:

接地。

  

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

  

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

  

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

  

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

  

P3.0RXD(串行输入口)  

P3.1TXD(串行输出口)  

P3.2/INT0(外部中断0)  

P3.3/INT1(外部中断1)  

P3.4T0(记时器0外部输入)  

P3.5T1(记时器1外部输入)  

P3.6/WR(外部数据存储器写选通)  

P3.7/RD(外部数据存储器读选通)  

P3口同时为闪烁编程和编程校验接收一些控制信号。

  

I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。

读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。

只有读端口时才真正地把外部的数据读入到内部总线。

上面图中的两个三角形表示的就是输入缓冲器CPU将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作。

这是由硬件自动完成的,不需要我们操心,1然后再实行读引脚操作,否则就可能读入出错,为什么看上面的图,如果不对端口置1端口锁存器原来的状态有可能为0Q端为0Q^为1加到场效应管栅极的信号为1,该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1,也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1。

若先执行置1操作,则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入,由于在输入操作时还必须附加一个准备动作,所以这类I/O口被称为准双向口。

89C51的P0/P1/P2/P3口作为输入时都是准双向口。

接下来让我们再看另一个问题,从图中可以看出这四个端口还有一个差别,除了P1口外P0P2P3口都还有其他的功能。

  

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

  ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

  

/PSEN:

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

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

  

/EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

  

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

  

XTAL2:

来自反向振荡器的输出。

2.4.4PCB板:

 

3仿真、安装和调试

3.1.1仿真图

3.1.2仿真调试

按照上面设计的电路在proteus软件内画图,打开单片机软件开发系统KEIL,选择89S52单片机,在其中编写程序,运行生成一个后缀名为HEX的文件,然后将该文件下载到仿真图的AT89S52芯片中进行仿真,观察实验现象。

仿真能实现播放音乐,按键播放歌曲等等功能,仿真成功后,安装好实验板子,然后将音乐程序下载到电路板内,观察结果,能实现播放音乐,按键播放歌曲等等功能。

程序调试中出现的问题及解决的办法:

(1)有是会出现程序一点错误也没有,但就是不能正常运行的现象,最后我们发现是因为程序中有的指令书写的不规范导致的,例如有的RET返回指令一定要按正确格式书写或在两行指令间最好不要留空行。

(2)程序中的跳转指令的运用很重要,为保险起见,都用LJMP,我们就遇到过跳转指令用错程序无法正常运行的现象。

当用JNZ指令时,跳转范围比较少,这是要用一个标号中转。

(3)编程时要注意,在程序开始时,压迫写入各定时器中断的入口地址。

(4)编程过程中要注意加注释或分割线,否则,在程序过长是容易变得很乱,不便于超找或更改。

(5)编程前要加流程图,这样会使思路清晰,例如数字音乐盒的设计思路完全可以按着MP3的工作方式列写流程图。

(6)LCD计时正常显示的解决办法:

a、两个定时器同时工作,存在中断时序问题,刚开始时我们吧定时器1设定在方式3,计250us,由于定时中断过于频繁,使CPU负载过大,导致芸月不能正常播放,时间不能正常显示。

解决办法:

讲定时器1设定在工作方式1,16位技术,计50MS,效果有很大改观,但还有问题。

b、当音乐为全4拍起始时,此时音乐节奏与定时器T1中断频率错开,LCD显示和音乐播放都会好一些。

c、另外,在歌曲中,当遇到一个音符发音为4拍,在编曲中为*CH,因时间较长,当定时器T1此时来中断时,就会对歌曲播放产生影响,若改为发音一拍,中断对歌曲播放影响减弱,但音乐效果变差。

改进方案:

若采用可以定时时间更长的单片机,可以避免所有问题。

总结

拿到这个题目以后,看了这个题目的要求,因为系里要求在做设计的同时,还要做一个电路板,因为做一个板子比较麻烦所以决定用练习版来代替。

然后我开始找这个电路板,买到这块板子对板子进行焊接,调试等一系列的问题解决以后,然后开始写程序,因为设计中要求,在音乐响起的同时还有LED灯伴随闪烁,同时还要显示歌曲序号,在解决这个问题时,我开始头疼了,音乐响的同时可以显示歌曲序号,但是无法使LED伴随闪烁,因为音乐播放时用到了中断,一旦加入了LED灯闪烁,音乐便无法正常播放,这让我头疼了一段时间,但是最后我在程序中又加入了另外一个中断,才达到了题目的要求,程序写好以后通过仿真图仿真出来的效果还是不错的,但是把程序烧入芯片中,在板子上运行的效果却没有那么好,思来想去,问题应该出在了喇叭上,因为板子上使用的是蜂鸣器加三极管放大了,所以效果并没有那么好,然后经过调试以后,终于得到了改观,最终有了成效。

次做论文的经历也会使我终身受益,我感受到做论文是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破,那也就不叫论文了。

希望这次的经历能让我在以后学习中激励我继续进步。

不积跬步何以至千里,本设计能够顺利的完成,也归功于各位任课老师的认真负责,使我能够很好的掌握和运用专业知识,并在设计中得以体现。

正是有了他们的悉心帮助和支持,才使我的毕业论文工作顺利完成,在此向天津冶金职业技术学院,电信系的全体老师表示由衷的谢意。

感谢他们三年来的辛勤栽培。

参考文献

[1]戴佳、戴卫恒著51单片机C语言应用程序设计实例精讲[M].北京:

电子工业出版社出版,2006.

[2]张洪润等著单片机应用设计200例[M].北京:

北京航空航天大学出版社出版,2006.

[3]陈正义著单片机控制实习[M].北京:

人民邮电出版社出版,2006.

[4]张义和著等例说51单片机(C语言版)[M].北京:

人民邮电出版社出版,2008.

[5]许珉著单片机原理及应用[M].北京:

中国电力出版社,2007.08

[6]三恒星科技MCS-51单片机原理与应用实例[M].北京:

电子工业出版社,2008.01

[7]宁爱民,兰如波主编单片机应用技术.北京:

北京理工大学出版社。

2009.8

附录

附录:

音乐程序

#include

#include

unsignedcharCount;

unsignedcharkeys;

sbit_Speak=P1^4;//讯响器控制脚

#defineledP3

unsignedcharpattern_P3[]={

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF9,0xF3,0xE7,0xCF,0x9F,0x3F,0xFF,0xAA,0x55,0x18,0xFF,0xF0,0x0F,0x00,0xFF,0xF8,0xF1,0xE3,0xC7,0x8F,0x1F,0x3F,0x7F,0x7F,0x3F,0x1F,0x8F,0xC7,0xE3,0xF1,0xF8,0xFF,0x00,0x00,0xFF,0xFF,0x0F,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF

};

unsignedcharcodeSONG1[]={//祝你平安

0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,

0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,

0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x20,

0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x20,

0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10,

0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20,

0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x26,0x20,

0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,

0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10,

0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80,

0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x30,0x20,

0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x20,

0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x20,0x10,

0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00,};

unsignedcharcodeSONG2[]={//路边的野华不要采

0x1C,0x10,0x18,0x10,0x20,0x10,0x1C,0x10,0x18,0x40,0x1C,

0x20,0x20,0x20,0x1C,0x20,0x18,0x20,0x20,0x80,0xFF,0x20,0x30,0x1C,0x10,0x18,0x20,

0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,

0x30,0x80,0xFF,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,

0x20,0x2B,0x40,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,

0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,

0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0x20,0x30,0x1C,0x10,0x20,

0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x15,0x1F,

0x05,0x20,0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,

0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,

0x20,0x26,0x20,0x20,0x20,0x30,0x30,0x20,0x30,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20,

0x20,0x26,0x40,0x13,0x60,0x18,0x20,0x15,0x40,0x13,0x40,0x18,0x80,0x00,

};

voidTime_Init()

{

TMOD=0x11;

IE=0x8a;

IP=0x02;

TH0=0xD8;

TL0=0xEF;//12MZ晶振,10ms

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

TR1=1;

}

voidTime0_Int()interrupt1

{

TH0=0xD8;

TL0=0xEF;

Count++;//长度加1

}

voidTime0_LED()interrupt3

{

staticunsignedcharL_Count=0,n=0;

TH1=(65536-50000)/256;

TL1

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

当前位置:首页 > 经管营销 > 金融投资

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1