摘 要
20世纪以来,科技发展步入了信息时代,科技发展的目的就是为了服务人民,让我们可以拥有更好的生活。居住环境和质量也愈加重要,智能家居就是一次革新,给生活方面带来了巨大的改善,本课题研究的无线遥控门铃就是其中的部分内容。
本设计以AT89C51单片机作为主控芯片,把编码器的编码功能、时钟芯片的实时计时功能、LCD显示功能、无线传输电路传输功能等,利用单片机有效结合完成本次设计。无线遥控音乐门铃的功能有:实时显示时间、查看来访时间、语音留言、自动转换音乐。因为音乐的呈现是通过写入单片机的程序进行控制,所以可自行修改初始音乐。同时本设计还具有电路可靠简单、抗干扰能力强、功耗低等优点。
本次设计使用Protel 2004DXP进行原理图的绘画,keil软件进行单片机程序的编写,利用程序实现来访记录和音乐的选择。这个门铃发射板和接收板都有两种供电模式,可以使用USB接口或者电池进行供电,能应用于更多情景!门铃的音乐也是多样化的可选择的,这也是它的一个优点,可以让主人有个更好的心情。
关键词
无线传输;音乐门铃;单片机;DXP
目 录
第1章 绪论
1.1、选题背景
1.2、国内研究状况
1.3、选题意义
1.4、章节介绍
第2章 设计要求与系统框图
2.1、设计要求
2.2、系统框图
2.3、器件选型
第3章 硬件电路设计
3.1、按键模块
3.2、时钟模块
3.3、电源模块
3.4、录音模块
3.5、无线传输模块
3.6、AT89C51单片机
3.7、LCD显示模块
3.8、音频模块
第4章 系统软件设计
4.1、音乐的实现
4.2、软件的使用
4.3、程序设计流程
第5章 调试与实现
致 谢
参考文献
第1章 绪论
1.1、选题背景
在各行各业人员的共同努力下科技的发展是迅速的,我们对物品的要求也越来越复杂多样。电子设备在功能实现的前提下,可以对它的体积和功耗等方面进一步优化。而电子设备的微型化就必须提到单片机了。
单片机可以算是一种微控制器,它把很多逻辑功能都集成在一个小芯片上,我们可以根据自己的需求自由使用各种逻辑功能。某种程度上说单片机就是计算机的简化,在保留部分功能的同时,又对体积、功耗、应用难度进行了优化。单片机的逻辑功能非常清晰明了,对于刚刚接触计算机的人来说,从单片机下手,可以更加容易理解计算机的结构和原理。在市场的影响下,单片机的发展是多元化的,而且其价格、体积、性能等方面也需要进一步优化。
基于单片机的音乐门铃拥有悦耳的音乐,来访时间的记录,通过来访记录的查看也可以知道门铃是否成功响应,并且可以进行语音的留言,在现代家居中的应用是越来越流行。
1.2、国内研究状况
目前大多数门铃都是叮咚声,没有采用音乐门铃,音乐比较单调,这款音乐门铃可以让人耳目一新。目前市场主要有以下几款门铃:
1、敲击式音乐门铃,利用BC压电陶瓷片代替按钮,实现当来访者敲击门的时候,就可以发出叮咚声,并且随来访者敲击频率不同发出的“叮咚”频率也不同,寿命很长,不需要考虑按钮的损耗。
2、红外感应音乐门铃,是一种利用反射式红外传感器为核心的一种门铃,当来访者距离传感器一定距离时会发出信号,经过一系列转化发出铃声,告知主人有客来访。但是当有人偶然经过的时候会发出错误提醒。
3、可视化门铃,是一种通过摄像头传输视频信息的门铃,多用于楼房,来访者通过楼下门口主机呼叫,住户可以通过楼下主机摄像头接收视频影像,从而确认来者身份,决定是否按下室内分机开锁按钮,为社区安全性提供了保障。
4、无线遥控门铃,利用无线信号发送/接收器和信号编码实现信息的无线传输,当发送端产生信号接收端接收到信号并驱动音频模块,从而发出音乐。
1.3、选题意义
无线门铃是指客机和主机之间不需要线路连接,可以通过超再生无线通信模块直接发出315MHz高频信号,从而实现主机客机的信号传输,这给很多家庭带来了很大的便利之处,第一可以避免线路的消耗和安装。第二可以在不影响外界的前提下联系到家庭主人,有利于维护邻里关系。第三有很大的传输范围,根据器件的选型甚至可以达到3000米的传输距离。第四功耗极低,不按动时不耗电,一年耗电量不到5度电。
其次这个门铃添加了访问时间记录和留言功能,给使用者增加了许多便利之处,当家里没人的时候可以进行留言,简单叙述自己的事件或联系方式,以便更好地解决问题。
1.4、章节介绍
第1章主要内容是选题的背景及意义,详细介绍了门铃的发展状况和选题的意义所在。
第2章主要内容是硬件设计的整体思路,包括实现功能的要求、硬件设计的流程、器件的选型原则。
第3章主要内容是硬件模块详细的设计,本章节把硬件电路分为八个模块,然后介绍每个模块的设计原理和功能。
第4章主要内容是软件的设计,首先介绍了使用到的软件,然后简单的介绍了使用方法,接着介绍了单片机使用到的程序流程。
第5章主要内容是实现和调试,首先介绍了硬件焊接需要遵守的规则,然后是程序的调试和下载,最后是门铃的整体调试、检测以及测试过程中遇到的问题和解决办法。
第2章 设计要求与系统框图
2.1、设计要求
开始设计之前需要大致清楚设计要求,这样才可以针对性的去设计方案,本设计的设计要求如下所示:
1、发射/接收板驱动电压5V左右,静态电流较小;
2、可以通过电池或充电宝驱动,没有安全隐患;
3、信号先经过编码再传输,减小外界环境的影响;
4、信号通过超再生无线模块,以315MHz电流波传送;
5、发射板LCD可以显示时间和日期,并且可以通过按键调整;
6、记录来访时间,并且可以在LCD查看;
7、可以进行语音留言;
8、接收板可以播放6首音乐,可以通过程序进行修改;
2.2、系统框图
图2.1 系统流程图
如图2.1所示,门铃分为两个部件:发送板和接收板。当发送板门铃按键按下的时候,本身蜂鸣器提示按下成功,并会产生一个电信号,电信号传输到C51单片机,通过程序进行时间的记录,同时电信号经过编码器后输出一个完整的编码信号,编码信号发送到超再生无线发射模块,超无线再生模块会产生315MHz的电流波,等待接收板接收。接收板的超再生无线接收模块检测到电流波,经过译码器对编码信号进行译码,把电信号输入C51单片机中,调用音乐程序,传输到喇叭中进行播放。本设计使用的程序都是基于keil软件按照所需功能进行编写。并且加了录音功能,当主人不在家的时候,可以进行留言,主人回来的时候可以查看,方便下次联系。
2.3、器件选型
设计器件的选型是无法避免的,我们需要根据设计需求,在成本尽可能划算的情况下,选择合理高效的器件规格。
2.3.1、主控芯片选取
本设计主控芯片采用AT89C51单片机,内部有片内数据存储器和Flash闪存存储器,掉电保存RAM中的内容,满足本设计的功能需求,这款芯片功耗低、高性能被广泛使用。而且在C51单片机中价格很便宜,可以有效节省设计成本。
2.3.2、显示屏
本设计采用LCD1602液晶显示模块,LCD1602是一种字符型液晶,优点是:显示数字和字母比较方便、控制简单、成本低,而且还可以直接与单片机进行连接。本设计不需要显示曲线或者图像,从性价比来考虑选LCD1602是比较划算的。
2.3.3、无线传输
本设计采用315无线发射/接收模块进行数据的传输,采用ASK调制进行传输,功耗很低。随着工作电压的变化,传输距离也会相应的变化,本设计工作电压4.5V,所以传输距离不大,有利于功能的研究和学习,现实应用不够广泛。
第3章 硬件电路设计
本章节把硬件电路分为按键、时钟、电源、录音、无线传输、单片机、LCD显示、音频八个模块。把总体设计分为小模块设计,可以让设计思路更加清晰,然后根据每个模块需要实现的功能,进行原理图的设计并阐述相应的原理。
3.1、按键模块
图3.1 按键模块
按键模块电路如图3.1所示,五个按键按下输出的都是低电平状态,原因是引脚内部具有上拉电阻,低电平有效。按键K1通过程序实现“设置”功能,当按键按下可以对显示数据进行调整;K2实现“加一”功能,按键按下所选数据示数+1;K3实现“减一”功能,按键按下所选数据示数-1;K4实现“查看”来访时间的功能,按键按下显示门铃成功提醒的时间;K5实现“门铃”功能,当按键按下信号发出。K1-K3联合实现时钟数据和日期数据的调整。
使用按键大多数情况都是为了控制元器件,实现人机对话。按键就是一个按钮开关,由于手动按下时接触会很不稳定,所以在使用时都会伴有消除抖动,这样才可以正确识别每次是否按下。
消除抖动一般有两种方法,第一种是利用软件消抖,通过编写程序,在两次判别之间加上10ms的延时,如果第二次按键仍显示被按下,则认为按键按下,反之不然;第二种是采用两个与非门构成的硬件R-S触发器实现按键的消抖处理。
本设计使用到二极管,二极管具有单向导通特性,一般使用多用于表示状态的改变,本设计体现按键按下,采用磷砷化镓二极管,导通时发出红光,导通电压约为1.2V,正向电流约为20mA,电源电压E为5V,根据可以算出,限流电阻设置为190欧。
3.2、时钟模块
图3.3 时钟芯片
时钟模块的电路如图3.3所示,由独立的3V纽扣电池进行供电,DS1302(时钟芯片)通过内部电路和X1、X2引脚外接晶振配合产生时钟脉冲,32768是2的15次方,经过时钟芯片的折算之后就可以得到较准确的秒信号,从而实现记录时间日期的功能,SCLK接单片机,由单片机输入一个脉冲,当SCLK端出现上升沿,I/O口进行读操作;当SCLK端脉冲出现下降沿,I/O进行写操作,通过I/O端口把时间信息传输给单片机。
3.2.1、时钟芯片
本设计采用DS1302时钟芯片,DS1302是DALLAS公司推出的涓流充电时钟芯片,利用电池给其供电保证时间留存,可以使发送板在不按动的时候处于节电状态,DS1302主要性能指标有:
1、DS1302是一个时钟芯片,可以记录年、月、日、秒、分、时。
2、内部含有两个31字节(8位)的数据暂存寄存器,分别实现时钟和日历的记录。
3、数据通信仅通过一条串行输入输出端口。
4、工作电压2.0V~5.5V,工作温度0℃~70℃。
5、功耗低,工作在2V时,工作电流小于300nA。
6、双重电源补给。
DS1302的引脚功能如表3.1所示,需要注意的是这个时钟芯片与其他芯片不同,它有两个电源引脚,在使用的时候由较高电平引脚供电。
表3.1 DS1302引脚功能
管脚号 | 管脚名称 | 功能 |
1 | Vcc2 | 主电源 |
2、3 | X1、X2 | 32.768KHz |
4 | GND | 接地 |
5 | RST | 复位片选(高电平有效) |
6 | I/O | 串行数据输入/输出 |
7 | SCLK | 串行时钟输入端 |
8 | VCC1 | 后备电源 |
如表3.2所示,每个字节的传输是有控制字节指定的,控制字节的最高位Bit7必须是高电平,如果是低电平,将禁止信息写入。Bit6为低电平则指定对时钟/日历寄存器控制读写操作,为高电平则时指定RAM数据的控制的读写操作,Bit1~Bit5指定相关寄存器待进行输入输出操作,最低位Bit0指定是输入还是输出,根据SCLK脉冲上升还是下降决定。
表3.2 控制指令
1 | RAM/ | A4 | A3 | A2 | A1 | A0 | RD/ |
第7位 第6位 5 4 3 2 1 0
3.3、电源模块
电源模块电路如图3.4所示,外部电源接到5和6引脚上,当开关按下的时候,通过3引脚为整个电路提供接地端,4引脚为整个电路提供5V的Vcc电压,从而给整个电路供电。也有很多其他接法,本次设计需要的功能很简单,所以没有用到所有引脚。
图3.4 电源模块
六脚自锁开关是一个双刀双掷开关,引脚图如图3.5所示,功能也像两个连接图表示的一样,可以看出来,当开关松开时,1、3连通,2、4连通。当开关按下后,3、5相连,4、6相连。
图3.5 六脚开关
3.4、录音模块
录音模块电路如图3.6所示,当按键S1按下的时候,REC引脚得到高电平状态,ISD1820P(录音模块)接收指令开始录音,语音通过驻极体传入芯片MIC引脚,耦合电容和电阻阻值决定录音的最低频率,MICREF引脚可以减小噪声,提高共模抑制比。录音的时间由ROSC外接的电阻值决定,本设计外接100K电阻,最大可录制10s时间。
当按键S2按下的时候,会产生一个上升沿脉冲信息,ISD1820P检测到上升沿信息开始放音,由于外部接了一个音频功率放大器,所以放音信息先经过LM386功率放大器对小信号进行功放,然后传输到喇叭,进行语音播放。本次使用1、8引脚空置,放大倍数为20倍。7脚通过电容接地一定程度上可以减小噪声。
图3.6 录音模块
3.4.1、ISD1820PY录音模块
本设计录音采用ISD1820PY录音模块,可以通过外接电阻实现可控的8-12秒的录音,功能特性有:
1、自动节电,维持电流0.5uA。
2、边沿/电平触发放音。
3、通过外接电阻调整录音时间。
图3.7 ISD1820封装引脚图
录音模块封装引脚图如3.7所示,芯片有14个引脚,在使用的时候有些东西需要注意。芯片的引脚功能如表3.3所示。首先,对于放音来说,录音具有更高的优先权,当接收到录音指令时,无论是否在放音都需要立即进入录音环节,直到录音指令结束或者录音时间结束。并且芯片内部含有消除抖动的处理电路,不需要自己再次添加。
录音输入端在使用时需要注意,录音的最低频是由使用者自己控制的,使用者可以通过改变外接电阻和外接电容来联合控制录音的最低频带。
自动增益端外接电容的作用是使失真尽可能的减小,使用时可通过改变外接电容间接改变失真程度。
表3.3 ISD1820PY引脚功能
REC | 录音(高电平有效) |
PLAYE | 上升沿触发放音 |
PLAYL | 高电平触发放音 |
MIC | 话筒输入端 |
MICREF | 话筒参考端 |
AGC | 自动增益 |
SP-、SP+ | 喇叭输出端 |
VSSA、VSSD | 接地端 |
RECLED | 录音指示灯 |
FT | 直通模式 |
ROSC | 震荡电阻 |
VCC | 电源端 |
震荡电阻的阻值与录音时间有直接的关系,我们可以根据需要的录音时间合理选择震荡电阻的阻值,具体情况参考表3.4。
表3.4 震荡电阻(ROSC)的作用
ROSC(KΩ) | 录放时间(S) | 采样频率(KHz) | 典型带宽(KHz) |
80 | 8 | 8.0 | 3.4 |
100 | 10 | 6.4 | 2.6 |
120 | 12 | 5.3 | 2.3 |
160 | 16 | 4.0 | 1.7 |
200 | 20 | 3.2 | 1.3 |
直通模式(FT): 当接高电平时就会打开直通模式,MIC端的语音信号就会通过AGC电路、滤波器和喇叭驱动器直接到达喇叭输出端。当对着驻极体说话时,声音会直接从喇叭播放出来。如果不需要直通功能,使用时可以接低电平。
3.4.2、三极管原理及功能
本设计用到了三极管,三极管的的功能是把基极输入的微弱信号放大成幅度值较大的信号,在集电极输出放大一定倍数后的信号,它的应用很广泛。电流的放大倍数通常由计算得出,用符号“β”表示。
晶体管是由两个PN结组成,它们共存于一块半导体上,间距很小,半导体由两个PN结可以划分为三个部分,基区是指半导体中间的部分,基区两边的部分为集电区和发射区。由于PN结的排列方式不同,三极管又分为PNP、NPN型。
如图3.8所示,PN正偏指的是两端加持正向电压,以PNP型为例,当发射结正向偏置的时候,下方的PN结多数载流子就会发生流动,形成发射电流Ie,集电结反向偏置的时候,形成集电极电流Ic。
图3.8 三极管电流流向图
晶体管在电路中工作状态有三种分别是静止状态、放大状态、饱和导通状态。静止状态是指加在发射结两端的电压过小,PN结无法正常导通,基极电流近乎为零,集电极没有电流输出。放大状态是发射结正向偏置,且两端电压合适,集电结反向偏置,集电极电流受基极电流控制数值为。饱和导通状态是发射结正向偏置,集电结反向偏置,但是随着ib增大到一定数值后,集电极电流ic不再随之变大。
在电路中有三种接法:共基极、共集电极、共发射极放大电路。共射极电路可以放大电流和电压,常用作为低频电压放大电路的单元电路;共集电极路只能放大电流不能放大电压,具有电压跟随的特点,常用于电压放大电路的输入和输出级;共基极电路只能放大电压不能放大电流,具有很好的高频特性,常作为宽频带放大电路。
3.4.3、LM386功率放大器
本设计在小信号和喇叭之间用到了一个LM386集成功率放大器,它的内部含有三级放大电路,可以对小信号按一定的增益进行放大,驱动喇叭进行放音。主要特性有:
1、静态功耗低,约为4mA,可用电池供电。
2、工作电压范围宽,4~12V或5~18V。
3、外围元器件较少,使用简单。
4、电压增益可调,根据外接元器件参数进行控制,增益范围20~200。
图3.9 LM386引脚图
LM386引脚图如图3.9所示,GAIN(增益设定)通过引脚1和引脚8之间的电容来控制增益倍数,当两脚开路时电压放大倍数为20倍,当两脚之间接10uf的电容时,电压放大倍数为200倍。-INPUT(反向输入端)与+INPUT(正向输入端)构成第一级差分放大电路,再经过第二级和第三极放大在在引脚5输出放大后的电压。引脚4是接地端,引脚6为电源端。引脚7为旁路,在实际应用时旁路电容不可或缺,BYPASS端接一个电容到地,可以起到滤除噪声的作用。
3.5、无线传输模块
图3.10 无线传输模块
如图3.10所示,编码器(PT2262)的1~8引脚和解码器(PT2272)的引脚状态是一致的,只有这些引脚状态一直才可以正确匹配进行正确解码,反之无法进行解码,这样可以保证多个门铃互不干扰进行工作。按键按下后编码器得电工作,编码器输出一个完整的编码信号,编码信号经过TE(编码启动端)把编码信号传给CON3,CON3是一个超再生无线发射电路,当接收到编码信号后,经过ASK调制会产生一个315MHz的高频信号进行无线传输,这样可以尽量减少外界环境干扰。
CON4是一个超再生无线接收器,它会一直进行检测,当检测到315MHz的高频信号时,经过解调会输出编码信号,编码信号经由解码器2272的DIN引脚输入解码器,解码器的10~13引脚作为数据引脚把编码信息传输给单片机。
3.5.1、PT2262/2272原理及功能
PT2262 / 2272是一对具有地址和数据编码功能的红外遥控发射器/接收器芯片。 发射器芯片PT2262-IR是一种集成芯片,使发送器电路变得非常简单。 接收芯片PT2272的数据输出位根据其后缀而不同, 数据输出有“临时存储”和“锁存”两种模式,方便用户使用。 后缀“ M”是“临时存储类型”,后缀“ L”是“锁存类型”。
编码芯片发出的编码信号由8个字节组成,又分为地址码、数据码和同步码。只有按键按下后,编码芯片才会接通电源,输出经过编码后的数据信号,一般情况下是不接通电源的,也能更好的节省电量。
无线信号传输时,容易受到环境的影响,进行编码可以有效的减小外界的影响。
图3.11 PT2262/2272引脚图
PT2262/2272的引脚图如图3.11所示,各引脚对应功能如表3.5所示。
表3.5 PT2262/2272引脚功能
PT2262(2272) | 管脚 | 说明PT2262(2272) |
A0~A11 | 1~8、10~13 | 地址管脚,用于进行地址编码(解码),可置为“0”“1”“f”,两者必须一致否则不解码 |
D0~D5 | 7~8、10~13 | 数据输入端,有一个为“1”既有编码发出,内部下拉。(地址或数据脚,当做数据脚时,只有地址与2262一致,数据脚才能输出对应的高电平) |
Vcc | 18 | 电源正端 |
Vss | 9 | 电源负端 |
TE(DIN) | 14 | 编码启动端,用于多数据的编码发射,低电平有效(数据信号输入端,来自接收模块输出端) |
OSC1 | 16 | 振荡电阻输入端,与OSC2所街电阻决定振荡频率 |
OSC2 | 15 | 振荡电阻振荡器输出端 |
Dout(VT) | 17 | 编码输出端正常为低电平(解码有效确认输出端,解码有效变成高电平瞬态) |
3.5.2、无线发射/接收模块
如图3.12所示,左面是XD-FST一种不带编码的发射模块。共三个管脚,DATA(1)为数据输入端,VCC(2)为电源正极,GND(3)为电源负极。常被应用于无线呼叫、无线传输等,它的特点有:性能稳定、工作电压范围广(3~12V)、性价比高。
右面的是XD-RF-5V是一种5V高频超再生接收模块。有四个引脚,VCC(1)为电源正极,GND(4)为电源负极,DATA(2)为数据输出端。常被应用于无线遥控开关、数据传输等,超再生接收模块内含LC振荡电路、放大整形,输出数据为TTL电平,可直接输到解码器,应用简单。
图3.12 无线发射/接收模块
3.6、AT89C51单片机
接收板的单片机电路如图3.13所示,当复位端接收到高电平状态并且持续达到2个机器周期,单片机进行复位操作。每当开机的时候,电容进行充电,通过可以计算充电时间,经验证本设计充电需要的时间,复位端变为高电平状态进行一次复位。每当按键S5按下后,复位端被拉高为高电平状态,单片机也会进行一次复位。
本型号单片机没有内置晶振,外加晶振电路如图3.13所示,晶振引脚之间外接晶体振荡器,并且并联电容容值相同,一般为10pf-30pf。晶振电路的目的是给单片机提供脉冲信号,这个脉冲就是单片机正常时候的运行速度,晶振一般选择11.0592MHz,由于本设计要求不需要过于精准,所以选择12MHz。
当无线接收模块输出信号进入P2.7引脚,单片机接收到信号调用程序,把需要播放的音乐程序信号经P2.6输出。
图3.13 单片机接收电路
本设计采用AT59C51单片机作为主控芯片,单片机是指集成在一块芯片上的完整计算机系统。它具有CPU、存储器、总线系统等,可以通过程序的控制实现很多功能。单片机有40个引脚,不同的引脚有不同的功能和不同的使用方法,我们在使用的时候要仔细查看相应资料,本次门铃设计用到的引脚及功能如表3.6所示。
表3.6 使用的单片机引脚功能
引脚名称 | 功能 | 引脚名称 | 功能 |
VCC | 供电电压 | P3.0 RXD | 串行输入口 |
GND | 接地 | P3.1 TXD | 串行输出口 |
P1 | 准双向口,内有上拉电阻 | RST | 复位输入 |
P2 | 准双向口,内有上拉电阻 | EA | 为高电平时,内部存储器 |
XTAL1 | 反向震荡放大器的输入及内部时钟工作电路 | XTAL2 | 来自反向震荡器的输出 |
ALE/ | ALE为第一功能,访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。 | 片外程序存储器的读选通信号,低电平有效 |
3.7、LCD显示模块
本设计采用LCD1602进行数据显示,LCD1602可以显示符号、数字、字母,每行最多可显示16个字符,它是一种点阵型显示模块,不能显示图片,一般被使用都是显示字符。引脚及功能如表3.7所示。
表3.7 LCD引脚及功能
GND | 接地端 |
VCC | 电源端 |
V0 | 对比调整端(电平越低对比度越高) |
RS | 选择寄存器 |
R/W | 读写管脚 |
EN | 使能端 |
D0~D7 | 数据端 |
A | 背光正极 |
K | 背光负极 |
在电路图中LCD1602的接法如图3.14所示,单片机通过程序控制屏幕的显示内容,数据在D0~D7引脚传输,通过8个数据通道,控制需要显示的数据。1602液晶屏内部存储了160个不同的点阵字符图形,有阿拉伯数字、英文字母、常用的符号等,只需要查表,把所需要显示的字符调用出来就可以正常显示。
对比调整端接电阻和高电平,可以保证对比度的情况下,避免出现重影,读写管脚接低电平,数据只需要写入,显示器根据程序显示相应的信息。
图3.14 液晶显示屏
3.8、音频模块
使用方式如图3.15所示,当门铃按键下后,发射板产生原始电信号,经过无线模块进行编码之后产生315MHz的高频信号,可以有效地防止外界环境的影响。在接收板的无线接收模块会检测到这个信号,并且得到编码信号,经过译码恢复出原始电信号,传到单片机里面,通过单片机程序控制发音的时间和震荡频率来实现各个音符效果,传输出的小信号经过三极管可以放大一定倍数然后输出,使音乐可以更好的呈现出来。
图3.15 音频模块
第4章 系统软件设计
硬件原理图模块设计完成后,就要进行软件的设计,首先搞清楚音乐怎么控制,然后编写发射板和接收板单片机的程序。
4.1、音乐的实现
单片机做不到发出各种各样的音色,只能通过控制振荡频率和发声时间,实现一些简单声音,为了音乐的呈现,我们需要先了解音调和节拍的概念,然后通过调试找到对应的实现方法。
4.1.1音调
基本音主要有7个,简谱为1234567,又分为中音、高音、低音等。在数字上面带一个点的代表高音,在数字下面带一个点代表低音,以此类推。众所周知声音的多姿多彩,本质是频率的不同,不同的振荡频率就可以发出不同的音色,当我们清楚每个音符对应的频率,就可以通过向单片机写入不同程序实现不同乐音的呈现。
4.1.2节拍
表4.1 音符
音符名称 | 写法 | 时值 |
全音符 | 5--- | 四拍 |
二分音符 | 5- | 二拍 |
四分音符 | 5 | 一拍 |
八分音符 | 5 | 半拍 |
十六分音符 | 5 | 四分之一拍 |
如表4.1所示,最常见的节拍是四分音符,被当做一个基本参照度量长度。这里一拍的概念是一个相对时间度量单位。通过单片机程序延时实现不同音符对应的节拍。一拍的长度没有限制,可以是1秒 也可以是2秒或半秒。在音乐简谱里面用一条横线“-”在四分音符的右面或下面来标注,以此来定义该音符的长短。
4.2、软件的使用
4.2.1、原理图设计软件
图4.1 DXP工作窗口
Protel DXP2004软件工作窗口如图4.1所示,是一款具有设计功能的一体化电子产品开发系统环境,由Altium公司研发推出,与之前的版本软件相比,Altium Designer 2004有了很多方面的改进,比较明显的就是在外观上进行了优化,同时也极大地强化了电路设计的同步化,整合了VHDL和FPGA设计系统,其功能大大加强了,可以实现更多元化的应用。
原理图绘制步骤:
创建一个项目。点击【文件】【创建】【项目】。
创建一个画图窗口。点击【文件】【创建】【原理图】。
保存项目文件,并且对其重命名,方便识别。
选择元件。页面右边框有一个【元件库】,输入想要的元件,并搜索。
连接元件。在工作栏中找到连线工具,按照功能需求进行连接。
在绘制过程中发现集成元件在元件库里是搜不到的,只能根据器件的功能自己绘制元件库。首先新建一个PCB项目,然后点击【文件】【创建】【库】【原理图库】,新建一个元件库,根据自己的需求画出主体和引脚。选中默认元件Component-1,执行【工具】【重新命名元件】菜单命令,将元件重新命名。在自己的原理图中【设计】【追加/删除元件库】把自己创建的元件库添加,就可以在右边框元件库里面添加自己画的原件了。
4.2.2、程序设计软件
图4.2 keil 工作窗口
程序设计主要用到了keil5软件,工作窗口如图4.2所示,是目前ARM内核单片机开发的主流工具。keil c51是一款应用于plc编程的软件开发工具,它拥有强大的仿真器、调试器、宏汇编器、单板计算机以及符合生产标准的Keil C编译器,在嵌入式软件开发的基础上有深层次的研发进展。
编写程序步骤:
1、新建一个工程
2、CPU选型AT89C51.
3、组建选择,选择需要的组件GPIO、CORE,之后也可以补充。
4、设置属性。选中【Options for Target‘Target1’】设置晶振频率24MHz。
5、创建.c文件添加到工程里面。
6、编写好程序之后进行编译。
4.3、程序设计流程
创建过项目之后就要着手程序的设计,首先需要有清晰的程序流程,本次涉及的目的是,当门铃按键按下并且成功播放门铃音乐,进行按下时刻的时间记录,未成功响铃则提示接收板未响应。另外时间日期数据可以自己调整。
系统主流程如图4.3所示,先对LCD、按键、延时、DS1302等模块进行初始化,这些固定模块都是可以在网上找到的,可以直接使用。初始化之后就需要进入循环语句了,判断门铃按键是否按下,如若按下则进行下一步,反之跳出本语句重新开始循环,按键按下后需要判断接收板是否响应,响应则记录本次按下时间以便之后查看,并且接收板调用编辑好的音乐程序进行响铃。
流程清楚之后,就可以进行C语言的程序编辑,根据流程进行每个环节的编写,完成程序编辑。
图4.3 主流程图
程序的主流程说完之后就要说一下主程序中的数据设置子程序,数据设置流程如图4.4所示,判断设置按键是否按下,如若按下则继续运行,不然则跳出子程序。当按键按下后,LCD显示进入设置模式,第一项数字会闪动,表示我们可以用按键进行上调或下调,进行时间的调整。设置按键再次按下则进入下一项数据的调整。直至调整完成,退出设置模式保存设置的内容并显示。
流程清楚之后,我们就可以编写程序,首先定义子程序函数,把需要实现的功能进行编程,完成程序的编写。
图4.4 数据设置流程
第5章 调试与实现
在各种设计中,调试都是一大难关,无论哪个环节出现了问题都会导致实现的失败,所以我们应该把这个设计分为很多模块,保证每个模块都没问题的前提下在进行综合的实现。
软件方面是比较容易进行调试的,因为可以明显的看到哪里有错误,我经过多次查询资料。发射板主要目的是时间和日期的设置、门铃按键和按键时间查看。接收板是在一个简单程序上进行修改,首先是多首音乐的选取,选过音乐之后找到对应的音乐简谱,把每个音符转换成三个数据分别控制音调、频率和时间,然后需要实现音乐轮流播放。
程序编写好之后,需要进行编译,生成一个后缀名为hex的文件,通过烧录软件和下载器把这个文件下载到单片机里面,之后进行硬件的调试和实现。
硬件的实现就需要根据原理图进行一步步的实现,首先需要根据原理图进行元件的购买,然后安装。安装的时候我们先把元件按一定的规则插到板子上,一般是先小后大、先里后外,这样比较容易安插。安装好之后我们需要进行焊接,焊接的时候需要注意几点,首先必须确认各个引脚的连接,尽量避免误焊,因为焊错之后是非常麻烦的,另外焊接的时候应该保证电烙铁温度足够,保证没有虚焊。焊接之后把多余的引脚剪短。
焊接完成后,我们可以安装上电池进行调试,如果安装好之后门铃可以正常运行那本次设计就大致结束了。不过我第一次安装好之后,并没有实现所需要求,我先找了一个小音箱,将音响插上电源同时声音调到最大,让发射板与音箱离的进一些,之后按下门铃按键。音箱会发出滋滋的干扰声,证明有信号发出,说明发射板是没啥大问题的。经过多种测试之后,发现是无线模块天线的问题,经过查询资料后,改变它的缠绕方式之后实现了发射板接收板之间的连接。
图5.1 实物图
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
原理图
元件清单
元件清单 | |||||
元件名称 | 数量 | 元件名称 | 数量 | 元件名称 | 数量 |
8Ω喇叭 | 2 | 22uf电容 | 4 | 9x15万能板 | 2 |
8550 PNP三极管 | 2 | 100/220uf电容 | 2 | PT2262通用编码器 | 1 |
10欧电阻 | 1 | 104电容 | 4 | PT2272通用解码器 | 1 |
1k电阻 | 7 | 30pf瓷片电容 | 3 | 315接收模块 | 1 |
4.7/3.3k电阻 | 2 | 驻极体 | 1 | 315发射模块 | 1 |
10kΩ电阻 | 3 | 轻触按键 | 6 | 电池盒 | 2 |
100k电阻 | 1 | LCD1602 | 1 | lm386功率放大器 | 1 |
820k电阻 | 1 | AT89C51单片机 | 2 | CR2032电池座 | 1 |
3V纽扣电池 | 1 | Isd1820 | 1 | 有源蜂鸣器 | 1 |
32.768MHz晶振 | 1 | led红色小灯 | 3 | 电源自锁开关 | 2 |
12mhz晶振 | 2 | SIP3母座 | 1 | ds1302时钟芯片 | 1 |
4.7M震荡电阻 | 1 | CR2032纽扣电池 | 1 | usb电源线dc插座 | 2 |