毕业设计论文基于单片机电子门铃设计.docx
《毕业设计论文基于单片机电子门铃设计.docx》由会员分享,可在线阅读,更多相关《毕业设计论文基于单片机电子门铃设计.docx(27页珍藏版)》请在冰豆网上搜索。
毕业设计论文基于单片机电子门铃设计
电子门铃的设计
【摘要】本设计介绍了由STC89C52单片机来构成电子音乐门铃系统的工作过程。
主要完成的电子门铃不仅具有普通电子门铃的功能,还具有一些扩展功能。
该设计主要由单片机、按键、喇叭等组成,它的制作简单,成本低,安装也比较方便。
因此,这也给人们生活提供了很大的便利。
【关键词】STC89C52单片机电子门铃音乐
前言
随着社会的前进和发展,仪器小型化,功耗微小化,控制智能化得到了很广泛的应用。
而在些领域中,单片机起着举足轻重的作用,这就把单片机的应用开发到了最高顶点,单片机应用系统的设计也就顺理成章的成为了科技的最热点。
近几年,随着市场智能化的升温,音乐门铃系统正在慢慢取代传统的用钥匙去管理各个门道,并且在市场上社会上生活上已经得到了很好的应用。
有了音乐门铃,客人拜访时听到的将不是单调的普通门铃声,而是特殊动听的音乐声。
而如果听到的是三种音乐的门铃声,那这一定是一件令人很兴奋的事情。
本设计就是设计一种具有三种音乐的电子门铃。
当客人拜访时,按下门铃,听到的不是简单枯燥的一般门铃声,而是优美的音乐声。
1总体方案设计
1.1设计任务
设计一个基于单片机的三音门铃。
1.2设计要求
1,当按下开关,电子门铃可以自动鸣叫,并能持续一段时间。
2,工作电压有一定的调节范围。
3,不可以购买现成的发声装置。
1.3总体方案的论证与选择
针对本设计的设计要求,可以知道:
本设计是利用单片机实现对喇叭的发声,控制采用按钮操作。
当按下开关时,单片机发出的音乐声由喇叭发出。
由此,可以给出两种方案。
方案一:
本设计是通过按键输入(其中有两个按键,一个播放上一首,一个播放下一首),作用于单片机后使单片机发出声音送入喇叭使喇叭发声。
同时也有复位按键,可以使歌曲复位,从头再唱。
音乐的发声主要是通过程序的编写来达到发声要求。
其总体框图,如图1.1。
图1.1方案一总体框图
方案二:
本设计是通过按键输入(只有一个按键),作用于单片机后经过人工调频发声后送入蜂鸣器使蜂鸣器发出音乐的声音。
音乐的发声主要靠几个可调电阻调频发声。
其总体框图如图1.2。
图1.2方案二总体框图
通过比较可以知道,方案二中的调频发声部分相对于方案一比较难以实现,并且蜂鸣器发出的声音相对喇叭来说噪音更重。
而方案一可以通过程序的编写来实现音乐的发声,可以发出清晰、无噪的音乐声。
故选择方案一来作为本设计的总体设计方案。
2系统软件设计与调试
2.1STC89C52单片机简介
STC89C52是宏晶科技退出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。
其引脚图如图2.1。
图2.1STC89C52单片机引脚图
2.1.1SCT89C52的主要特性
1,增强型8051单片机;
2,工作频率范围为0-40MHz;
3,32个双向I/O口;
4,3个16位定时/计数器;
5,外部中断4路,下降沿中断或低电平出发电路
6,低功耗空闲和掉电模式。
2.1.2STC89C52的引脚功能
P0口:
P0口是漏极开路的8位并行双向I/O口,也是地址/数据总线复用口。
作为输出端口时,每个引脚能能驱动8个TTL负载;在访问外部数据存储器或程序存储器时,P0口也可以提供低8位地址和8位数据的复用总线;在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节。
校验时,要求外接上拉电阻。
P1口:
P1口是具有内部上拉电阻的8位双向并行I/O口。
P1口的输出缓冲器可驱动(吸收或输出电流)4个TTL输入。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
P1口作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
P2口:
P2口是具有内部上拉电阻的8位双向并行I/O口。
P2的输出缓冲器可驱动(吸收或输出电流)4个TTL输入。
对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
P3口:
P3口是具有内部上拉电阻的8位双向并行I/O口。
P3口输出缓冲器可驱动(吸收或输出电流)4个TTL输入。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。
此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能。
P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
RST:
RST是复位信号输入引脚。
晶振工作时,如果在此引脚上持续出现至少两个机器(晶振的12个振荡周期为一个机器周期)的高电平就会使单片机复位。
XTAL1和XTAL2:
XTAL1和XTAL2是片内振荡器输入/输出引脚。
XTAL1是反向振荡放大器的输入及内部时钟工作电路的输入引脚,XTAL2是来自反向振荡器的输出。
PSEN:
程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。
在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
ALE/PROG:
ALE/PROG是地址锁存允许/编程引脚。
在访问外部程序存储器和数据存储器时,地址锁存允许(ALE)引脚输出用于锁存低8位地址信号的脉冲。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
EA/Vpp:
外部访问允许。
欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
2.2单片机音乐发声原理
利用单片机产生音乐符,再把音乐符翻译成计算机音乐语言,由单片机进行信息处理,再通过喇叭放出音乐。
2.2.1单片机产生不同频率脉冲信号的原理
1,要产生音频脉冲,只要算出某一音频的脉冲(1/频率),然后将此周期除以2,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期的时间再对I/O反相,就可以在I/O脚上得到此频率的脉冲。
2,利用STC89C52的内部定时器使其工作在计数器模式1下,改变计数值TH0及TL0以产生不同频率。
方法如下:
例如,若单片机采用12MHz晶振,要产生频率为587Hz的音频脉冲时,其音频信号的脉冲周期T=1/587=1703.5775μs,半周期的时间为852μs,因此只要令计数器计数=852μs/1μs=852,在每计数852时将P3.7口反相,就可得到C调中音Re。
P2.5口和P2.7口分别接S2和S1作为控制门铃的按键。
按下S2,由P3.7口的喇叭依次播放三首歌曲。
计数脉冲值与频率的关系如下:
N=Fi/2/Fr(N:
计数值,Fi:
内部计时一次为1uS,故其频率为1MHz,Fr:
要产生的频率)
2.2.2单片机音阶代码的实现
音乐是由音符组成,不同的音符又是由相应的频率振动产生。
音调的高低用音阶表示,不同的音阶对应不同的频率。
因此,不同频率的方波就可以产生音阶,由于频率的倒数是周期,因此可由单片机中的内部定时器T0,使其工作在计数器模式1,当定时器计数溢出时产生中断,将与喇叭连接的P3.7取反后就可得到方波的周期,从而达到了控制频率,即音阶的目的。
2.2.3音乐节拍的实现
建立音乐,把音乐的音符找出来,建立各个音符的定时常熟T值表。
C调各音符频率与计数值T的对照表如表2.1所示。
表2.1音符频率与T值对照表
每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,下表2.2为节拍码的对照。
如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间。
假设1/4节拍为1DELAY,则1拍应为4DELAY,以此类推。
所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数,如下表2.3为1/4和1/8节拍的时间设定。
表2.2节拍码对照表
表2.3节拍的时间设定表
2.2.4音乐软件的设计
1,音乐代码库的建立方法
(1)先找出音乐最低音和最高音范围,然后确定音符表T的顺序。
(2)建立T值表,构成发音符的计数值放在其中。
(3)简谱码(音符)为高4位,节拍(节拍数)为低4位,音符的节拍码编程时放在程序unsignedcharcodeSONG[]后面。
(4)音符节拍码0x00为音乐结束标记。
2,选曲
在本设计中,需要播放三首歌曲,分别为《天空之城》、《祝你平安》、《路边的野花不要采》。
音乐代码库的建立方法有两种:
(1)将每首歌曲建立相互独立的音符表T和发音符计数值表。
(2)也可以建立共用的音符表后,再写每首歌曲的发音计数值表中的代码。
不管采用哪种方法,每首歌曲结束时,在发音计数值表中均需加上音乐结束符0x00。
3电路设计与仿真
3.1按键电路
如图3.1。
S2为开始暂停按键,S1为播放下一首歌曲的按键。
图3.1按键电路
3.2发声电路
如图3.2。
P3.7端口接的喇叭。
音乐声通过喇叭发声后传到人的耳朵里面。
图3.2发声电路
3.3晶振电路
如图3.3。
振荡晶体可在1.2MHz到12MHz之间选择,电容值无严格要求,但在电容值取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响。
C1和C2可在20pF到100pF之间取值,但在60pF到70pF时振荡器有较高的频率稳定性。
本设计选取晶振为12MHz,电容为30pF。
图3.3晶振电路
3.4复位电路
如图3.4。
按下按键S3,歌曲复位,从头再唱。
图3.4复位电路
3.5原理图
如图3.5。
本设计是基于STC89C52单片机设计的一个三音门铃。
按键有三个,S2为开始/暂停按键,S1为下一首按键,S3为复位按键。
发声由喇叭接单片机端口P3.7发出。
图3.5原理图
3.6仿真电路
仿真采用Proteus软件,Proteus软件能完成原理图布图、代码调试到单片机与外围电路协同仿真。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件,是目前最好的仿真单片机及外围器件的工具。
仿真图如图3.6。
图3.6仿真图
开始仿真后,门铃处于无声状态。
当按下开关SP1后,开始响起音乐声。
按下SP2,播放下一首歌曲,再次按下开关SP1,暂停播放音乐。
按下SP3,歌曲复位。
4系统程序设计
本设计是对STC89C52单片机采用C语言编程。
音乐门铃的程序主要是对音符频率的转换。
系统初始化后,系统扫描按键(P1.5和P1.7的电平)判断是否有按键按下。
根据不同按键的选择,向音频字符码指针赋予不同歌曲的地址,通过定时器T0中断子程序使P3.7口输出相应频率的音频脉冲,以达到发声目的。
程序流图如图4.1。
图4.1程序流程图
延时子程序如图4.2。
图4.2延时子程序
5系统硬件设计和调试
5.1系统PCB图
PCB图如图5.1。
图5.1PCB图
5.2系统硬件制作
1,对设计要求做出分析,列出所需要的硬件有单片机最小系统,按键,蜂鸣器,极性电容,电阻。
2,根据实际情况确定各个元件的实现方式,为各个元件分配好端口,由此来确定系统的大概结构,并确定系统的详细参数。
3,运用protel99se绘制原理图,PCB图并布线。
在绘制过程中注意选择正确元件及封装。
布线过程中要仔细认真,避