云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 基于单片机的电子音乐门铃的设计 - 图文

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

  • 62 次阅读
  • 3 次下载
  • 2025/6/16 3:37:05

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

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

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

基于单片机的电子音乐门铃设计 3 系统软件的设计 3.1 系统总体程序流程图 本系统软件设计采用C语言进行编程,因为C语言具有更好的可移植性,再加上编写所占用的行数比较少,而且比较方便。系统程序设计流程图如图3.1所示。 开始程序初始化NY判断是否是电延时子程序源开关打开Y延时子程序判断有无按钮开关电平的变化调节音乐播放曲目结束图3.1 系统程序设计流程图 10 N 基于单片机的电子音乐门铃设计 3.2 单片机发声设计 一般来说,单片机不能够像其他专业乐器那样奏出多种优美的旋律,即不包括相应幅度的谐振频率。单片机演奏的音乐基本都是单音频率。所以单片机演奏的音乐比较简单,只需能知道“音调”和“节拍”两个概念便可。节拍表示一个音符唱多长的时间而音调表示一个音符唱多高的频率。

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com