课程设计基于51单片机三首歌音乐门铃设计说明.docx
- 文档编号:28593609
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:14
- 大小:129.56KB
课程设计基于51单片机三首歌音乐门铃设计说明.docx
《课程设计基于51单片机三首歌音乐门铃设计说明.docx》由会员分享,可在线阅读,更多相关《课程设计基于51单片机三首歌音乐门铃设计说明.docx(14页珍藏版)》请在冰豆网上搜索。
课程设计基于51单片机三首歌音乐门铃设计说明
师学院
单片机原理与接口技术
课程设计报告
题目:
基于51单片机三首歌音乐门铃设计
学院:
物理与信息工程学院
专业:
09通信工程
学号:
姓名:
指导老师:
完成日期:
2012年5月18日
一、设计功能要求
传统的电子音乐门铃通常采用分立元件或专用的音乐IC制作。
本次设计用一个用STC89C52RC单片机设计的电子音乐门铃,仅需STC89C52RC单片机最小系统再加一片LM386做音频小功放驱动扬声器发声。
客人来访时,按一下按钮,门铃就会奏出优美的电子音乐声;再按一下,门铃又会奏出下一首电子音乐声音.共可以奏出六首不同旋律的歌曲。
二、主要技术指标
1、利用STC89C52单片机定时中断实现输出不同频率的方波,通过一个简单的驱动电路使扬声器发出音乐,并通过外中断T0控制音乐播放,每按一次T0播放一首不同的音乐,使其能够播放三首歌曲后又循环播放。
2、其电路是由:
STC89C52单片机最小系统电路和一个由电阻和音频小功放组成的驱动电路与扬声器再加上控制音乐播放的外中断T0。
3、音乐是由音符组成,不同的音符是由相应频率的振动产生。
产生不同的音频需要有不同固定周期的脉冲信号。
要产生音频脉冲,只要算出某一音频的周期T(1/f),然后将此周期T除以2,即为半周期的时间。
我们利用单片机的部定时器TO,使其工作在计数器模式MODEl下.初始化适当的计数值THO与TLO以计时这个半周期时间。
每当计时时间到后就将输出脉冲的P1.0口反相。
然后重复计时此半周期时间,再对P1.0口反相,就可在单片机Pl.0引脚上得到此频率的脉冲。
P1.0引脚脉冲接LM386作音频功放,然后辅出到扬声器,从而发出美妙的乐音。
例如设单片机晶振为12MHz,每计数一次用时1µs。
我们要产生f低音DO,其频率为392Hz,周期T=1/392=2551µs,半周期时间为1276µs。
因此计数器应每计数1276次时将P1.0口反相,即计数初值应设定为(THxTLx)=一1276=64260,就可得到低音D0。
P3.5口作为控制门铃的按钮,每按一次,产生的电子乐音就改变一次,按完3次,再重复循环。
3首歌曲分别为《爱情买卖》、《生日快乐》、《不倒翁》。
三、设计方案
电路仍以STC89C52为主要控制芯片,采用单片机最小系统和外围驱动电路推动扬声器发出声音,此电路更为简单,程序不复杂,通过外中断T0控制音乐的播放,并且三首歌曲能够循环播放。
音乐声音稳定、清晰。
减少了外围电路原件,节约了成本,电路基本框图如图1所示。
控制芯片STC89C52
电源电路
播放控制
振荡电路
简单驱动电路
扬声器
图1方案方框图
四、主要元器件功能介绍
1、STC89C52RC芯片
STC89C52RC有40个引脚,32个外部双向输入/输出(I/O)端口,同时含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,STC89C52RC可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
▲芯片封装与引脚功能
▲主要功能特性:
·兼容MCS51指令系统·8k可反复擦写(>1000次)FlashROM
·32个双向I/O口·256x8bit部RAM
·3个16位可编程定时/计数器中断·时钟频率0-24MHz
·2个串行中断·可编程UART串行通道
·2个外部中断源·共6个中断源
·2个读写中断口线·3级加密位
·低功耗空闲和掉电模式·软件设置睡眠和唤醒功能
2、LM386音频功率放大器
LM386是音频功率放大器,主要应用于低电压消费类产品。
为使外围元件最少,电压增益置为20。
但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至200。
输入端以地位参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场合。
▲LM386引脚图
▲主要特性
·静态功耗低,约为4mA,可用于电池供电。
·工作电压围宽,4-12Vor5-18V。
·外围元件少。
·电压增益可调,20-200。
·低失真度。
LM386电源电压4--12V,音频功率0.5w。
LM386音响功放是由NSC制造的,它的电源电压围非常宽,最高可使用到15V,消耗静态电流为4mA,当电源电压为12V时,在8欧姆的负载情况下,可提供几百mW的功率。
它的典型输入阻抗为50K。
五、系统硬件电路设计
1、硬件电路设计
图2电路原理图
系统以STC89C52RC单片机为核心,加上外围电源时钟电路、LM386功放电路与扬声器电路组成。
STC89C52RC是一种低功耗/低电压、高性能的8位单片机,部除CPU外,还包括128字节RAM,4个8位并行I/O口,5个中断优先级,2层中断嵌套中断,2个16位可编程定时计数器,片集成4K字节可改变程序Flash存储器,具有低功耗、速度快、程序擦写方便等优点,完全满足本系统设计需要。
系统通过P1.0连接功放电路从而驱动扬声器放出电子声乐,P3.5口连接门铃按键。
此电子音乐门铃的电路连接图如上图2所示。
六、系统软件设计
1、软件设计
软件的设计主要是对STC89C52RC单片机进行编程,音乐门铃的程序主要是对音符频率的转换,采用定时中断,延时等实现其设计指标,通过外中断T0控制音乐的播放。
程序框图如图3。
程序开始
将变量赋值
延时
pmusic=0x00?
计数
循环
No
Yes
图3程序框图
首先建立音乐,把音乐的音符找出,建立各个音符的定时常数T值表,如表1所示。
编写程序时我们把T值表按顺序建立在“TABLE”。
每个发音符使用1个字节,字节的高4位(简谱码)代表音符的高低,低4位(节拍码)代表音符的节拍。
如果l拍为0.4s,1/4拍就是0.1s,只要设定延迟时间就可求得节拍的时间。
假设1/4拍为1DELAY,则1拍应为4DELAY,以此类推。
所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数。
1/4拍的延时时间在此我们设为125ms,节拍码如表2所示。
音符节拍码编程时放在程序的最后面“SONGx”处。
T值表按顺序建立在“TABLE”如下:
table:
dw64260,64400,64524,64580
dw64684,64777,64820,64898
dw64968,65030,65058,65110
dw65157,65178,65217
三首歌曲简码节拍码编写如下:
song:
;第1首歌《爱情买卖》
db42h,44h,22h,14h,24h,44h,42h,52h,64h,04h
db52h,54h,42h,54h,52h,82h,82h,62h,62h,52h,64h,42h,44h,22h,14h,84h,62h,52h,62h,52h,44h,52h,54h,42h,52h,54h,62h
db52h,42h,22h,52h,44h,42h,44h,22h,14h,24h,42h,44h,52h,64h,52h,54h,42h,54h,52h,82h,82h,62h,62h,52h,64h
db42h,42h,42h,22h,14h,84h,62h,52h,62h,52h,48h,52h,54h,42h,52h,54h,62h,52h,42h,22h,52h,48h,62h,84h,82h,84h,82h
db92h,82h,62h,52h,48h,92h,0b2h,92h,82h,62h,52h,42h,22h,54h,52h,62,62h,54h,62h,84h,82h,84h,84h,92h,82h,62h,52h,44h,02h,22h,42h,22h,12h,54h,64h,44h,04h
db00h
song1:
;第2首歌《生日快乐》
db44h,54h,64h,44h
db44h,54h,64h,44h
db64h,74h,88h
db64h,74h,88h
db82h,92h,82h,72h,64h,44h
db82h,92h,82h,72h,64h,44h
db44h,84h,48h
db44h,14h,48h
db00h
song2:
;第3首歌《不倒翁》
db62h,82h,82h,62h,98h
db92h,0b2h,0b2h,82h,98h
db62h,82h,82h,52h,68h
db92h,0b2h,0b2h,82h,98h
db62h,82h,82h,62h,92h,92h,94h
db92h,0b2h,0b2h,92h,84h,94h
db0b8h,0b4h,04h
db00h
七、调试与性能分析:
1、硬件调试
2、软件调试
调试步骤和方法:
在WAVE平台上进行单片机系统程序设计、编辑、编译、调试,最后生成目标代码文件(*.hex)。
启动单片机,将生成的目标代码文件下载到单片机中去。
下载完成后按下T0,这时通过扬声器我们可以听到有音乐播放,再按一次T0可以听到单片机所播放的音乐换成了不同的歌曲。
当播放了三首不同的歌曲后,继续按下T0,单片机又开始播放第一首歌曲。
调试过程出现问题分析
歌曲听起来比较模糊不清晰,主要是设置延时不当,在源程序适当调节节拍延时重新编译下载,可解决问题。
歌曲没有间断,一直唱不停,主要是每首歌完后未加上能够识别歌曲已唱完的不发音标志“00h”
3、性能分析
参考文献
[1]段晨东编著.单片机原理与接口技术.:
清华大学,2008
[2]风强编著.单片机语言C51应用实战集锦.:
电子工业,2003
[3]家俊,滔编著.程序设计教程.:
机械工业,2004
附件:
org00h;主程序起始地址
jmpstart;跳动主程序
org0bh;timer0中断起始地址
jmptim0;跳至timer0在mode1
start:
MOVtmod,#00000001b;设timer0在mode1
MOVie,#10000010b;中断使能
p3.5,$;第一次按to?
calldelay1;消除抖动
jnbp3.5,$;to放开?
MOV31h,#00;按to次数计数指针初值为00h
start0:
MOV30h,#song;取简谱码指针(第1首)
next:
MOVa,30h
MOVdptr,#table
MOVca,a+dptr;至相关页码,高4位为音符的高低
MOVr2,a;低4位为音符的节拍
jzend0;检查简谱码是否已结束(有无00?
)
anla,#0fh;取节拍(低4位)
MOVr5,a;存入r5,节拍的时间
MOVa,r2
swapa
anla,#0fh;取音频值(高4位)
jnzsing;是否为0,是0则不发音
clrtr0
jmpd1
sing:
deca;因0不列入
MOV22h,a;存入(22h)
rla;乘2
MOVdptr,#table
MOVca,a+dptr;至table取码,取t的值
MOVth0,a;取到的高位字节存入th0
MOV21h,a;取到的高位字节存入(21h)
MOVa,22h;再载入取到的音符码
rla;乘2
inca;加1
MOVca,a+dptr;至table取相对的低位字节计数值
MOVtl0,a;取到的低位字节存入tl0
MOV20h,a;取到的低位字节存入(20h)
setbtr0;启动timer0
d1:
calldelay
inc30h;取简谱码指针加1
jmpnext
end0:
clrtr0;停止计数器
MOVa,31h;载入计次指针
xrla,#00h;是否按第1次?
jnzend1;不是则跳至end1
p3.5,$;按第2次?
calldelay1;消除抖动
jnbp3.5,$;放开否?
inc31h;计次地址(31h)加1
MOV30h,#song1;第2首歌指针
jmpnext
end1:
MOVa,31h;载入计次指针
xrla,#01h;是否按第2次?
jnzend2;不是则跳至end2
p3.5,$;按第3次?
calldelay1;消除抖动
jnbp3.5,$;放开否?
inc31h;计次地址(31h)加1
MOV30h,#song2;第3首歌指针
jmpnext
end2:
jmpstart;回到第1次位置
tim0:
pushacc;将a的值暂存于堆栈
pushpsw;将psw的值暂存于堆栈
setbrs0;设工作寄存器库1,rs0=1,rs1=0
clrrs1
MOVtl0,20h;重设计数值
MOVth0,21h
cplp1.1;将p11位反相
poppsw;至堆栈取回psw的值
popacc;至堆栈取回a的值
reti;返回主程序
delay:
MOVr7,#02;125秒
d2:
MOVr4,#125
d3:
MOVr3,#248
djnzr3,$
djnzr4,d3
djnzr7,d2
djnzr5,delay;决定节拍
ret
delay1:
MOVr4,#20
d4:
MOVr3,#248
djnzr3,$
djnzr4,d4
ret
org300h
table:
dw64260,64400,64524,64580
dw64684,64777,64820,64898
dw64968,65030,65058,65110
dw65157,65178,65217
song:
;第一首歌
db42h,44h,22h,14h,24h,44h,42h,52h,64h,04h
db52h,54h,42h,54h,52h,82h,82h,62h,62h,52h,64h,42h,44h,22h,14h,84h,62h,52h,62h,52h,44h,52h,54h,42h,52h,54h,62h
db52h,42h,22h,52h,44h,42h,44h,22h,14h,24h,42h,44h,52h,64h,52h,54h,42h,54h,52h,82h,82h,62h,62h,52h,64h
db42h,42h,42h,22h,14h,84h,62h,52h,62h,52h,48h,52h,54h,42h,52h,54h,62h,52h,42h,22h,52h,48h,62h,84h,82h,84h,82h
db92h,82h,62h,52h,48h,92h,0b2h,92h,82h,62h,52h,42h,22h,54h,52h,62h,62h,54h,62h,84h,82h,84h,84h,92h,82h,62h,52h,44h,02h,22h,42h,22h,12h,54h,64h,44h,04h
db00h
song1:
;第2首歌
;1
db44h,54h,64h,44h
db44h,54h,64h,44h
db64h,74h,88h
db64h,74h,88h
;2
db82h,92h,82h,72h,64h,44h
db82h,92h,82h,72h,64h,44h
db44h,84h,48h
db44h,14h,48h
db00h
song2:
;第3首歌
db62h,82h,82h,62h,98h
db92h,0b2h,0b2h,82h,98h
db62h,82h,82h,52h,68h
db92h,0b2h,0b2h,82h,98h
;2
db62h,82h,82h,62h,92h,92h,94h
db92h,0b2h,0b2h,92h,84h,94h
db0b8h,0b4h,04h
db00h
end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 基于 51 单片机 三首歌 音乐 门铃 设计 说明