77范文网 - 专业文章范例文档资料分享平台

基于单片机的电子音乐门铃的设计(4)

来源:网络收集 时间:2019-01-07 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

基于单片机的电子音乐门铃设计

2.7 复位电路

当AT89C51单片机的RST引脚引入“1”即为高电平时,而且保持两个机器周期的时候,单片机内部就执行复位操作。如果该引脚持续保持高电平,单片机就处于循环复位状态。复位电路通常采用按钮复位和上电自动复位这两种方式。

最简单的复位电路是上电自动复位电路,上电自动复位是通过外部复位电路的电容充放电来完成的。只须电源的上升时间不超过1毫秒,就可以完成自动上电复位。

除了简单的上电复位电路外,有的时候我们还需要按键手动复位。此设计我就是采用的就是手动按键复位。手动按键复位有脉冲方式和电平方式这两种。其中电平复位是通过RST端与电源接通来完成的[15-20]。手动按键复位电路见图2.6。时钟频率用11.0592MHZ时电容取10uF,电阻用10kΩ。

图2.6 按键复位电路

9

基于单片机的电子音乐门铃设计

3 系统软件的设计

3.1 系统总体程序流程图

本系统软件设计采用C语言进行编程,因为C语言具有更好的可移植性,再加上编写所占用的行数比较少,而且比较方便。系统程序设计流程图如图3.1所示。

开始程序初始化NY判断是否是电延时子程序源开关打开Y延时子程序判断有无按钮开关电平的变化调节音乐播放曲目结束图3.1 系统程序设计流程图 10 N

基于单片机的电子音乐门铃设计

3.2 单片机发声设计

一般来说,单片机不能够像其他专业乐器那样奏出多种优美的旋律,即不包括相应幅度的谐振频率。单片机演奏的音乐基本都是单音频率。所以单片机演奏的音乐比较简单,只需能知道“音调”和“节拍”两个概念便可。节拍表示一个音符唱多长的时间而音调表示一个音符唱多高的频率。

一个音符的频率知道之后,就可以使单片机发出对应频率的振荡信号,从而发生相应的音符声响。通过单片机定时器进行定时中断,在中断服务程序中将单片机上完结单片机输入输出口来回置“1”(高电平)或者“0”(低电平)的,来使扬声器发出声响。经过节拍计算出每一个音符需要的时间,选用循环延时的方式来实现控制一个音符唱多长的时间,以便形成一首完整的优美乐曲。下面介绍一下音调和节拍。

(1)、音调

声调(音调)是由声音的频率来决定的。对于一定强度的纯音,声调随频率的起落而起落;对与一定频率的纯音、低频率的纯音的声调随声响不断的增加而不断的下降,高频率纯音的声调却随声响的不断增加而不断的上升。

声调的高低与发声体的构造也有关系,由于发声体的结构对声音的频率也有影响。一般来说,2k Hz以下的低频率的纯音的声调随响度的不断增加而不断下降,3k Hz以上高频率的纯音声调随响度的不断增加而不断上升。

在音乐中每个不同的且相邻的音符之间正好相差一个倍频程,在音乐学中我们称它相差一个八度音。在一个八度内,有12个半音。由于人耳的听觉效果,这12个音阶的分度基本上是用对数的关系来划分的。只须了解12个音符的音高,就能够按照音符之间的倍频关系获得其他音符的基本声调频率。

以标准高音a的频率f=440Hz,其对应的周期为: t=1/f=1/440=2272us。 所以需要在单片机输入输出端口输出周期为T=2272us的方波脉冲,也就是t=T/2=2272/2=1136us。也就是说,单片机上定时器的中止出发时间为1136us。假如单片机选用定时器为工作方式1,它以振荡器的十二分频信号为计数脉冲。设外接晶振的振荡器频率为f,则定时器的预置初始值有如下公式来确定:Temp = 65536-(50k/currentfre)*10/(12M/system_osc)

TH = Temp /256

11

基于单片机的电子音乐门铃设计

TL = Temp %6 (2)、节拍

在音乐中,时间被均等分成若干的基本单位,每个单位称一拍。音符的时值被用来表示拍子的时值,节拍以四分音符为一拍,也可以是二分音符或八分音符。

节拍的时值是一个相对的时间概念,如乐曲规定速度为 60 拍每分钟时,则一个节拍占用1s,半拍是0.5s;当规定速度为 120 拍每分钟时,每个节拍的时间是0.5s,半个节拍就是0.25s,如此类推下去。拍子的时值确定后,各种时值的音符就与拍子联系在一起。譬喻,当以四分音符为一个节拍时,则一个全音符相当于四个节拍,若一个二分音符相当于两个节拍,则 八分音符相当于半个节拍,十六分音符则相当于四分之一拍;假如以八分音符为一个节拍,则全音符相当于八个节拍,二分音符是四个节拍,四分音符是两个节拍,十六分音符是半个节拍。 对于一拍的发音时间,如果乐曲没有特殊说明,一般来说,一拍大约为400~450ms对于一个节拍的发音时间,若乐曲没有特别的说明,则一个节拍大约为400到450毫秒。

通过利用单片机的内部定时器,使其工作在计数器模式1下。初始化适当的计数值TH0及TL0以计时此半个周期的时间,每当计时时间到后就将输出脉冲的输入输出口反相,然后重复开始计时这个半周期时间,对输入输出口反相,就可在单片机输入输出管脚上得到这个频率的脉冲。输入输出管脚脉冲接三极管作音频功放,然后输出到扬声器上,从而发出美妙的声音。

经过音频功放电路而把信号输出到扬声器上,从而播放出优美的音乐。只要按动按钮开关,就能够播放优美的音乐,当一首优美的歌曲播放完,当再次按下开关按钮,将播放下一首音乐,如此循环。本系统可以奏出五首不同旋律的歌曲。

3.3程序设计

对于智能的电子产品来说,程序设计是必不可少的。程序对于电子产品来说就好像大脑对人的身体一样至关重要,不可或缺。因此程序在整个电子产品设计中也是非常困难的。虽然编程非常困难和辛苦,但是只要我们努力我们一定能够完成。或许我们编写的程序会有几百、几千、几万行,甚至更多,我们

12

基于单片机的电子音乐门铃设计

只要掌握正确的编程方法,就能够完成。因为再长的程序也都是有主程序和子程序来构成的,因此只要我们把主程序和子程序写好,编程就完成了一大半。就好比我们盖房子,把房屋的整体框架搭建好后剩下的就是往框架里填砖。下边我就简单介绍一下我编写的程序:

(1)、主程序的设计

主程序就如人身体的骨骼,搭建房屋的框架一样,这些都做好了,其他的也就好做了,就只差往里面填充所需要的东西,使其更加完整,美观,漂亮。以下是主程序设计:

延时子函数,控制发音的时间长度 void delay(unsigned char t); 延时子程序,用来按键消抖 void delayms(unsigned int t); 演奏一个音符 void song(void);

播放歌曲 void music_play(void); { }

void main(void) { }

MS延时子程序 void delayms(unsigned int t) { }

T0中断程序,控制发音的音调 void timer0(void) interrupt 1 {

}

播放相应歌曲的某个音符 void music_play(void) { }

播放相应歌曲的某个音符 void music_play(void) { } (2)、子程序的设计

13

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于单片机的电子音乐门铃的设计(4)在线全文阅读。

基于单片机的电子音乐门铃的设计(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/407412.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: