毕业设计单片机六首歌音乐门铃.docx
- 文档编号:9350592
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:29
- 大小:150.06KB
毕业设计单片机六首歌音乐门铃.docx
《毕业设计单片机六首歌音乐门铃.docx》由会员分享,可在线阅读,更多相关《毕业设计单片机六首歌音乐门铃.docx(29页珍藏版)》请在冰点文库上搜索。
毕业设计单片机六首歌音乐门铃
重庆科技大学
毕业设计(论文)
题目基于单片机的音乐铃声设计
学院机械与动力工程学院
专业班级机电专09-1班
学生姓名杨荣学号2009630910
指导教师喻晓莉职称讲师
评阅教师职称
2012年6月8日
学生毕业设计(论文)原创性声明
本人以信誉声明:
所呈交的毕业设计(论文)是在导师的指导下进行的设计(研究)工作及取得的成果,设计(论文)中引用他(她)人的文献、数据、图件、资料均已明确标注出,论文中的结论和结果为本人独立完成,不包含他人成果及为获得重庆科技学院或其它教育机构的学位或证书而使用其材料。
与我一同工作的同志对本设计(研究)所做的任何贡献均已在论文中作了明确的说明并表示了谢意。
毕业设计(论文)作者(签字):
年月日
摘要
AT89S51是由ATMEL公司推出的一种小型单片机。
95年出现在中国市场。
其主要特点为采用Flash存贮器技术,降低了制造成本,其软件、硬件与MCS-51完全兼容,可以很快被广大用户接受,其程序的可擦写特性,使得开发与试验比较容易。
我们采用51单片机开发板来完成制作,软硬件相互结合,实现播放音乐功能的电子门铃,目的是让在等待在门口的人感受音乐和享有愉悦的心情,减少等待的焦躁。
选择AT89S51单片机,通过T0定时中断,并配合P1.0引脚输出音频频率,P1.0接扬声器,通过P3.5引脚接入“播放音乐”按键。
关键词:
单片机电子门铃定时器蜂鸣器
1绪论
随着时代的前进和发展,控制智能化、仪器小型化、功耗微小化得到广泛关注。
在这些领域中,单片机起到了举足轻重的作用,这就把单片机的应用提升到重要的地位,单片机应用系统设计就成为新的技术热点。
近几年来,随着市场上智能化的不断升温,门铃系统已作为智能化办公室和智能化住宅小区的一个重要组成部分,被各商家和用户所接受。
人们已开始习惯用门铃系统代替传统的铁钥匙去管理各通道门,这使门铃系统得到了飞跃性的发展。
随着单片机技术的飞速发展,通过单片机实现人们对物质生活的满足,这将会日益成为今后的一个重要发展的方向。
由于电子音乐门铃具有铃声动听,价格低廉,耗电少等特点,在现代家居中的应用越来越流行。
有了电子音乐门铃,在客人拜访时,听到的将不再是单调的提示等候音,而是不同凡响的流行音乐旋律,特效音等个性化的电子音乐。
音乐是由音符组成。
声音的频率范围约在几十到几千赫兹,若能利用程序来控制单片机某个口线的高电平和低电平,则在该线口就能产生一定频率的矩形波,接上扬声器就能发出一定频率的声音,若再利用延时控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调。
要奏出准确地控制乐曲节奏,常用节拍来表示。
251单片机介绍
2.151单片机概述
单片微型计算机,简称单片机,是近代计算机技术发展的一个分支—嵌入式计算机系统。
它是将计算机的主要部件(CPU、RAM、ROM、定时器/计数器、输入/输出接口电路等)集成在一块大规模的集成电路中,形成的芯片级的微型计算机。
自从单片机问世以来,就在控制领域得到广泛应用,特别是近年来,许多功能电路都被集成在单片机内部,如A/D、D/A、PWM、WDF、IC总线接口等,极大提高了单片机的测试和控制能力,我们现在所说的单片机已突破微型计算机的传统内容,更准确的名称应为微控制器,虽然我们仍称其为单片机,但是把它认为是一个单片形态的微控制器。
单片机的体积也不大,一般用40脚封装,当然功能多一些的单片机也有引脚比较多的,如68脚,功能少的只有10多个或20多个引脚,有的甚至只有8只引脚。
MCS-51是指由美国INTEL公司生产的一系列单片机的总称,这一系列单片机包括了如8031、8051、8751、8032、8052、8752等品种,其中8051是最早最典型的产品。
该系列其他产品都是在8051的基础上进行功能增减,改变而来的,所以人们习惯于用8051来称呼MCS-51系列单片机,而8031是前些年在我国最流行的单片机,所以很多公司在做以8051为核心的单片机,当然功能或多或少有些改变,以满足不同的需求,其中89S51就是这几年在我国非常流行的单片机,它是由美国ATMEL公司开发生产的。
本设计就是用89S51来完成的。
系统以AT89S51单片机为核心加上外围电源时钟电路、LM386功放电路及扬声器电路组成。
ATMEL公司生产的AT89S51单片机是一种低功耗且电压性能高的8位单片机,内部除CPU外,还包括128字节RAM,4个8位并行I/O口,5个中断优先级,2层中断嵌套,2个16位可编程计数器,片内集成4k字节可改变程序FLASH,具有低功耗、速度快、程序擦写方便等优点,完全满足本系统设计需要,系统通过P1.0连接功放电路从而驱动扬声器产生电子乐声,P3.5口接门铃按键
2.2芯片简介
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等三种封装形式,以适应不同产品的需求。
主要特性:
(1)8031CPU与MCS-51兼容
(2)4K字节可编程FLASH存储器(寿命:
1000写/擦循环)
(3)全静态工作:
0Hz-33MHz
(4)三级程序存储器保密锁定
(5)128*8位内部RAM
(6)32条可编程I/O线
(7)两个16位定时器/计数器
(8)6个中断源
(9)可编程串行通道
(10)低功耗的闲置和掉电模式
(11)片内振荡器和时钟电路
2.3引脚说明
AT89S51单片机有40个引脚,与其它51系列单片机引脚是兼容的,其DIP封装形式如图2-1所示:
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口外P0、P2、P3口都还有其他的功能。
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:
来自反向振荡器的输出。
AT89SXX系列单片机实现了ISP下载功能,故而取代了89CXX系列的下载方式,也是因为这样,ATMEL公司已经停止生产89CXX系列的单片机,现在市面上的AT89CXX多是停产前的库存产品。
图2.1AT89S51引脚图
3系统硬件设计
3.1总体设计
T89S51是片内有ROM/EPROM的单片机,因此,这种芯片构成的系统简单、可靠。
本设计利用单片机芯片构成应用系统时,主要是将单片机接上时钟电路和复位电路。
其应用特点:
◆有可供用户使用的大量I/O线
◆内部存储器容量有限
◆应用系统开发具有特殊性
音乐门铃的硬件电路由6个部分组成:
单片机、晶振与复位电路、选择按键输入电路、功率放大电路,扬声器。
音乐门铃的硬件电路设计框图如下。
单
片
机
晶振与复位电路
功率放大电路
音乐播放扬声器
按键输入电路
图3.1系统框图
3.2硬件设计
晶体振荡器,简称晶振。
在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率是串联谐振,较高的频率是并联谐振。
由于晶体自身的特性致使这两个频率的距离相当的接近,在这个极窄的频率范围内,晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路。
这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路,由于晶振等效为电感的频率范围很窄,所以即使其他元件的参数变化很大,这个振荡器的频率也不会有很大的变化。
晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。
AT89S51引脚XTAL1和XTAL2与晶体振荡器及电容C2、C3按图3-2所示方式连接。
晶振、电容C2、C3及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C3、C2的容量有关,但主要由晶振频率决定,范围在0~33MHz之间,电容C3、C2取值范围在5~30pF之间。
根据实际情况,对外接电容C3,C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低,振荡器工作的稳定性,起振的难易程度及温度稳定性。
如果使用石英晶体,推荐电容使用30PF±10PF,而如使用陶瓷振荡器建议选择40PF±10PF。
本设计中采用12MHZ的晶振作为系统的外部晶振,电容取值为30pF
图3.2晶振电路图
AT89C51的复位是由外部的复位电路来实现的。
复位引脚RST通过一个触发器来抑制噪声。
在每个机器周期的S5P2,触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。
复位电路通常采用上电自动复位和按钮复位两种方式。
最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充电来实现的。
只要VCC的上升时间不超过1ms,就可以实现自动上电复位。
时钟频率采用12MHZ时C1取10μF,R1取8.2kΩ。
本设计就是用上电复位。
复位时,ALE和PSEN成输入状态,片内RAM不受复位影响;复位后,PC指向0000H,单片机从起始地址0000H开始执行程序。
所以单片机运行出错或进入死循环,可按复位键重新启动。
在次单片机中,没有完全使用这些默认值,而是通过在程序中对单片机进行初始化。
复位电路采用的是简单的上电复位电路,此电路要求要保证在RESET引脚上提供10毫秒以上稳定的高电压。
这种上电复位利用电容器充电来实现。
当加电时,电容C1充电,电路有电路流过,构成回路,在电阻R1上产生压降,RESET引脚为高电平;当电容C1充满电后,电路相当于断开,RESET的电位与地相同,
复位结束。
复位时间与充电的时间有关,充电时间越长复位时间越长,增大电容或增大电阻都可以增加复位时间。
3.3复位电路图
LM386是音频功率放大器,主要应用于低电压消费类产品。
为使外围元件最少,电压增益内置为20。
但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至200。
输入端以地位参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场合。
3.4LM386引脚图
主要特性:
(1)静态功耗低,约为4mA,可用于电池供电。
(2)工作电压范围宽,4-12Vor5-18V。
(3)外围元件少。
(4)电压增益可调,20-200
(5)低失真度。
LM386电源电压4--12V,音频功率0.5w。
LM386音响功放是由NSC制造的,它的电源电压范围非常宽,最高可使用到15V,消耗静态电流为4mA,当电源电压为12V时,在8欧姆的负载情况下,可提供几百mW的功率。
它的典型输入阻抗为50K。
4软件设计
要求采用单片机设计的电子音乐门铃,客人来访时,按一下按钮,门铃就会奏出优美的电子音乐声,再按一下,门铃又会奏出下一首电子音乐声音。
本系统可以奏出六首不同旋律的音乐。
程序开始
等待按键按下
第一首歌曲
等待按键按下
第二首歌曲
第六首歌曲
否
是
否
是
:
4.1按键功能图
4.1音乐设计原理
音乐是由音符组成,不同的音符是由相应频率的振动产生。
产生不同的音频需要有不同固定周期的脉冲信号。
要产生音频脉冲,只要算出某一音频的周期T(1/f),然后将此周期T除以2,即为半周期的时间。
我们利用单片机的内部定时器TO,使其工作在计数器模式M1MO=01B下.初始化适当的计数值THO及TL
以计时这个半周期时间。
每当计时时间到后就将输出脉冲的P1.0口反相。
然后重复计时此半周期时间,再对P1.0口反相,就可在单片机Pl.0引脚上得到此频率的脉冲。
P1.0引脚脉冲接LM386作音频功放,然后辅出到扬声器,从而发出美妙的乐音。
例如设单片机晶振为12MHz,每计数一次用时1µs。
我们要产生低音SO,其频率为392Hz,周期T=1/392=2551µs,半周期时间为1276µs。
因此计数器应每计数1276次时将P1.0口反相,即计数初值=216-T/2t=64260,就可得到低音SO。
P3.5口作为控制门铃的按钮,每按一次,产生的电子乐音就改变一次,按完6次,再重复循环。
4.2音乐符设计
首先建立音乐,把音乐的音符找出。
建立各个音符的定时常数T值表,编写程序时我们把T值表按顺序建立在“TABLE”栏。
每个发音符使用一个字节,字节的位(简谱码)代表音符的节拍。
如果1拍为0.25秒,4分之一秒就是0.25秒。
只要设定延时时间就求得节拍的时间。
假设4分之一为1DELAY,则一拍应为4DELAY,依次类推。
所以只要求出4分之一的DELAY时间。
其余的节拍就是它的倍数。
4分之一拍的延时在此我们设为125ms,节拍码如表:
表4.1音符对应的简谱码、频率、定时常数
音符
简谱码
频率(Hz)
定时常数(T)
低SO
1
392
64260
低LA
2
440
64400
低TI
3
494
64524
中DO
4
523
64580
中RE
5
587
64684
中MI
6
659
64777
中FA
7
698
64820
中SO
8
784
64898
中LA
9
880
64968
中TI
A
988
65030
高DO
B
1046
65058
高RE
C
1175
65110
高MI
D
1318
65157
高FA
E
1397
65178
高SO
F
1568
65217
不发音
0
表4.2节拍码及节拍数
节拍码
节拍数
1
1/4拍
2
2/4拍
3
3/4拍
4
1拍
5
1又1/4拍
6
1又1/2拍
8
2拍
A
2又1/2拍
C
3拍
F
3又3/4拍
定时器初始值的求法如下:
T=65536-N=65536-f/2fr
例如:
设K=65536,f=1000000=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音的DO(1046Hz)的定时器初始值。
T=65536-N=65536-f/2fr=65536-1000000/2fr=65536-500000/fr
低音DO:
T=65536-500000/261=63627
中音DO:
T=65536-500000/523=64580
高音DO:
T=65536-500000/1047=65059
4.3程序设计
本系统采用MCS-51汇编语言编程。
软件程序由主程序、定时器TO中断服务程序和键盘处理程序组成。
系统初始化后,系统扫描按键(P3.5口的电平)判断是否有键按下,有键按下时,根据按下键的次数,向音频字符码指针赋以不同歌曲的地址,通过定时器TO中断子程序使P1.0口输出相应频率的音频脉冲,以达到发声目的。
主机软件设计主要由初始化主程序、定时/计数器T0中断服务程序等子程序构成。
它实现了对硬件设备的检测、整个系统运行中的调度和实时监控以及对硬件和软件的初始化。
系统通电复位后,程序随即进入主程序,完成对系统的自检。
接着对系统进行正常的初始化,包括硬件和软件初始化。
初始化结束,主程序进入等待方式
初始化变量
初始化定时器
等待按键,
是否有按键
主程序开始
演奏音乐
否
是
图4.2主程序流程图
系统初始化结束后,主程序进入节电等待方式。
该方式下,送往CPU的时钟信号被封锁,CPU进入等待状态,此时堆栈指针SP、程序计数器PC、程序状态字PSW、累加器A的状态均保持不变,I/O引脚保持以前的状态。
等待方式可由中断或复位来退出。
在本系统中主要是由定时中断T0来唤醒,之后进入监控循环。
MAIN:
SJMPMAIN;主程序等待
定时/计数器T0初始化:
定时/计数器T0在该系统中作为监控程序的载体,其初始值须多方面考虑。
设定为定时器,定时1276ms,采用方式1(16位定时/计数器)。
因单片机所用晶振为12MHz,故初值可用如下公式计算:
初值=65536-1276=64260
定时器T0的初始化程序如下:
MOVTMOD,#01;设置定时器T0方式1
MOVTH0,#HIGH(64260);填定时器初值高字节
MOVTL0,#LOW(64260);填定时器初值低字节
SETBTR0;开定时器T0
SETBET0;允许T0中断
SETBEA;总中断允许
工作在中断方式1时,在程序结构上需要用伪指令定义中断的入口地址,形式和外部中断过一样,如T0的入口地址可能下面的指令:
ORG000BH;TIMER0中断起始地址
LJMPTIMO;跳至TIMER0中断子程序
服务程序。
和外部中断的服务程序功能一样,定时器的服务程序,就是定时或计数到时需要做的事情。
定时器服务程序的内容包括计数器初值的重装。
工作在方式1时要都要用指令实现初值重装,一般都设置在程序的开头。
程序如下:
INETOP:
;T0服务程序等待
MOVTH0,#HIGH(64260);重装初值
MOVTL0,#LOW(64260);重装初值
CPLP1.0;服务内容,输出取反
RETI;中断返回
定时器TO中断服务程序流程图如图4.4所示:
T5HZ=0
中断返回
T7HZ=0
P1.0取反
T7HZ=3吗?
T5HZ=4吗?
T5HZ加1
T0中断入口
T05S=2000吗?
T05S加1
T05S=0,Flag取反
Flag=0
Flag=1
T7HZ加1
4.4定时器TO中断服务程序流程图
计数器输入脉冲最好不要直接接普通的按键开关,因为记数器的记数速度非常快,按键、触点等接触时会有多次接通和断开的现象。
我们感觉不到,可是记数器却都记录了下来。
例如,虽然只按了1下,记数器可能记了3下。
因此,使用按键的记数电路都会增加单稳态电路避免
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 单片机 六首歌 音乐 门铃