音乐提示定时器.docx
- 文档编号:6182302
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:23
- 大小:72.74KB
音乐提示定时器.docx
《音乐提示定时器.docx》由会员分享,可在线阅读,更多相关《音乐提示定时器.docx(23页珍藏版)》请在冰豆网上搜索。
音乐提示定时器
设计内容与设计要求
设计内容:
以51系列单片机为核心,以开发板为平台,设计一个音乐提示定时器,具备倒数计时、时间修改、音乐演奏等功能。
该定时器设置4个按键:
K1—设置倒数时间为60分钟,显示为“60”;K2—设置倒数计时时间为5分钟,显示为“05”;K3—设置倒数计时时间为10分钟,显示为“10”;K4—设置倒数计时时间为20分钟,显示为“20”。
一旦按键后则开始倒计时,当计时为0则演奏一曲音乐;内定倒数计时时间为5分钟,显示为05。
定时器可作为微电脑倒数计数器,做一小段时间计时,放在家中使用,例如煮泡面、煮开水或小睡片刻等;用于全自动洗衣机洗涤完毕音乐提示定时器。
设计任务包括控制系统硬件设计和应用程序设计。
设计要求:
1)确定系统设计方案;
2)进行系统的硬件设计;
3)完成必要元器件选择;
4)开发板焊接及测试
5)系统软件设计及调试;
6)系统联调及操作说明
7)写说明书
主要设计条件
1、MCS-51单片机实验操作台1台;
2、PC机及单片机调试软件,仿真软件proteus;
3、开发板1块;
4、制作工具1套;
5、系统设计所需的元器件。
说明书格式
目录
第1章、概述
第2章、系统总体方案设计
第3章硬件设计
第4章软件设计及调试
第5章系统联调及操作说明
第6章总结
参考文献
附录A系统硬件原理图
附录B程序清单
进度安排
设计时间分为二周
第一周
星期一、上午:
布置课题任务,课题介绍及讲课。
下午:
借阅有关资料,总体方案讨论。
星期二、分班级焊接开发板
星期三、确定总体方案,学习与设计相关内容。
星期四、各部分方案设计,各部分设计。
星期五、设计及上机调试。
星期六、设计并调试
第二周
星期一:
设计及上机调试。
星期二:
调试,中期检查。
星期三:
调试、写说明书。
星期四--星期五上午:
写说明书、完成电子版并打印成稿。
星期五下午:
答辩。
参考文献
1、王迎旭编.《单片机原理与应用》[M].机械工业出版社.
2、楼然苗编.《51系列单片机设计实例》[M].北京航空航天大学出版社.
3、黄勤编.《计算机硬件技术基础实验教程》[M].重庆大学出版社
4、刘乐善编.《微型计算机接口技术及应用》[M].华中科技大学出版社.
5、陈光东编.《单片微型计算机原理及接口技术》[M].华中科技大学出版社.
目录
第1章、概述………………………………………………1
第2章、系统总体方案设计………………………………2
第3章硬件设计…………………………………………5
第4章软件设计及调试…………………………………9
第5章系统联调及操作说明……………………………11
第6章总结………………………………………………12
参考文献
附录A系统硬件原理图
附录B程序清单
第1章概述
1、课程设计的要求
以51系列单片机为核心,以开发板为平台,设计一个音乐提示定时器,具备倒数计时、时间修改、音乐演奏等功能。
该定时器设置4个按键:
K1—设置倒数时间为60分钟,显示为“60”;K2—设置倒数计时时间为5分钟,显示为“05”;K3—设置倒数计时时间为10分钟,显示为“10”;K4—设置倒数计时时间为20分钟,显示为“20”。
一旦按键后则开始倒计时,当计时为0则演奏一曲音乐;内定倒数计时时间为5分钟,显示为“05-00”。
定时器可作为微电脑倒数计数器,做一小段时间计时,放在家中使用,例如煮泡面、煮开水或小睡片刻等;用于全自动洗衣机洗涤完毕音乐提示定时器。
设计任务包括控制系统硬件设计和应用程序设计。
2、课程设计的目的有:
(1)加深对基础知识的理解,进一步熟悉和掌握单片机的结构及工作原理。
(2)掌握单片机的接口技术及相关外围芯片的外特性,控制方法。
明确原理图中所使用的元器件功能及在图中的作用,各器件的工作过程及顺序。
(3)通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。
(4)通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
了解程序设计总体功能及结构,对各子模块的功能以及各子模块之间的关系有较详细的描述。
(5)通过完成一个包括电路设计和程序开发的完整过程,通过实际操作,将理论用于实践,提高对本课程的实际运用能力,在设计的过程中发现问题、解决问题,掌握更多的知识。
第2章系统总体方案设计
1、总体方案的选择
本课题要求以单片机为核心设计一个音乐提示定时器,具备倒数计时、时间设置、音乐演奏等功能。
设计K1为60分钟、K2为5分钟、K3为10分钟、K4为20分钟的按键,例如60分钟,显示为“60-00”,内定倒数计时时间为5分钟,显示为05-00(开机状态)。
一旦按键后则开始倒计时,当计时为0则演奏一曲音乐,而且可循环播放,可随时停止。
根据题目要求,音乐定时系统由核心处理模块、数码管显示模块、音乐模块、及倒计时模块等组成。
通过对P3口的查询,实现不同时间的设定和调整,系统晶振为11.0592MHz,利用单片机的RESET管脚作为系统开关。
利用定时器1设定倒计时时间。
进行总体设计前需先设计出各子功能模块的程序,并进行调试,各子模块调试成功后,再用一定的连接方法把各子程序连接起来,再次进行调试,直至正确可以实现总体功能为止。
通过计算某一音频周期(1/频率),然后将此周期除以2,即为半周期的时间。
利用单片机定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O口反相,然后重复计时此半周期时间再对I/O口反相,这样就能在此I/O口上得到此频率的脉冲,再结合中断延时程序,程序中节拍控制是通过调用延时子程序DELAY的次数来实现,产生音乐。
利用P3.4、P3.5、P3.6、P3.7管脚进行查询,对应开关K1、K2、K3、K4,分别启动不同的倒计时程序60分钟、5分钟、10分钟、20分钟,P0引脚作为显示输出连至LED显示器,P2.6为段选信号,P2.7为位选信号,控制不同位的数码管。
程序中使用定时器T0方式1来产生歌谱中各音符对应频率的音频脉冲,由P2.3输出。
确定了设计思路后,就可以具体设计了。
先编写程序,并用软件检验是否正确。
然后加入硬件进行调试。
调试是进行仿真调试,即用Proteus仿真软件,画出相应正确的电路原理图,运行仿真软件,看是否可以实现课题所要求的功能。
如果不可以,检查是电路的错还是程序连接出问题,进行修改,再次进入仿真环境调试。
2、系统方框图与工作原理
(1)系统设计框图如图所示:
系统设计框图
(2)基本工作原理
音乐的产生主要是通过单片机的I/O口输出高低不同的脉冲信号来控制蜂鸣器发音。
要想产生音频脉冲信号,需要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。
利用单片机定时器计时这个半个周期时间,每当计时到后就将输出脉冲的I/O口反相,然后重复计时此半周期时间再对I/O口反相,这样就能在此I/O口上得到此频率的脉冲。
通常,利用单片机的内部定时器0,工作在方式1下,改变计数初值TH0和TL0来产生不同频率。
对于音乐的节拍,每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍。
如果1拍为0.4S,1/4拍为0.1S,只要设定延迟时间就可求得节拍的时间。
假设1/4拍为1DELAY,那么1拍应为4DELAY,以此类推。
所以只要求得1/4拍的DELAY,其余的节拍就是它的倍数。
总而言之,一首乐曲是由音阶和节拍两大要素构成。
一首乐曲演奏的原理是:
不同音阶分别对应不同的频率,发出不同的音调,而节拍则控制发出音调时间的长短;若将乐曲的音调连续发出,并使其按相应的节拍变化,即可演奏一首乐曲。
根据这一特点,我们采用单片机辅以相应的接口来设计音乐播放器。
第3章硬件设计
1、单片机的选择
单片机/EA管脚始终接高电平,单片机复位方式采用按键电平触发复位,通过计算可知单片机频率为11.0592MHz时,计时误差最小,精度越高,因此内部时钟频率设为11.0592MHz。
AT89C52系列与MCS-51系列单片机相比,有两大优势:
第一,片内程序存储器采用闪速存储器,使程序的写入更方便;第二,提供了更小尺寸的芯片,使整个硬件电路的体积更小。
它以较小的体积、良好的性能价格比倍受青睐。
本次课程设计采用AT89C52单片机。
2、复位电路的设计
复位电路
根据应用的要求,复位操作有两种基本形式:
上电复位和上电或开关复位。
当AT89C52单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。
如果RST持续为高电平,单片机就处于循环复位状态。
上电复位要求接通电源后,自动实现复位操作。
电容C1和电阻R1对电源十5V来说构成微分电路。
上电后,保持RST一段高电平时间,由于单片机内的等效电阻的作用,不用图中电阻R1,也能达到上电复位的操作功能。
要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。
由于电容C1的充电和反相门的作用,使RST持续一段时间的高电平。
当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。
本系统的复位电路采用上电复位。
RET按键可以选择专门的复位按键,也可以选择轻触开关。
3、晶振电路的设计
晶振电路
单片机工作的时间基准是由时钟电路控制的。
在单片机的XTAL1和XTAL2两个管脚,接一只晶振及两只电容就构成了单片机的时钟电路。
电路中,电容器C2和C3对振荡频率有微调作用,通常的取值范围为30pF左右。
石英晶体选择11.0592MHz就可以。
4、动态显示电路
动态显示电路
首先介绍一下显示器的显示接口,按驱动方式分为静态显示和动态显示两种显示方式。
对于多为显示器,通常都是采用动态显示,既逐个地循环地点亮各位显示器。
这样虽然在任一时刻只有一位显示器被点亮,但是由于人眼具有视觉残留效应,看起来与全部点亮效果一样。
为了实现LED显示器的动态扫描,除了要给显示器提供段的输入之外,还有对显示器选择位的控制,这就是通常说的段控和位控。
因此,多位LED显示器接口电路需要使用地址锁存器74HC573,进行数据所存。
5、时间设定电路
6、音乐播放电路
鸣器有长声有短声两种,可以根据需要进行选择,通过软件编程控制。
在程序里可以设计不同的歌曲来通过播放器进行播放,所以,在这个设计里,是可以有不同的铃声的。
第4章软件设计及调试
1、系统软件设计方案的确定
根据设计要求,首先要确定软件设计方案,即确定该软件应该完成哪些功能;其次是规划这些功能需要分成多少个功能模块,以及每一个程序模块的具体任务是什么。
2、音乐定时常数的确定
产生音乐通过单片机的I/O口输出高低不同的脉冲信号来控制蜂鸣器发音。
利用AT89C52单片机的内部定时器0,工作在方式1下,改变计数初值TH0和TL0来产生不同的频率。
若单片机采用12MHz晶振,要产生频率为587Hz的音频脉冲时,其音频脉冲信号的周期T=1/587=1703.577us,约1704us,半周期的时间852us,因此只要今计数器计数=852us/1us=852,在每计数852次时将I/O口反相,就可得C调中音Re。
计数脉冲值与频率的关系如下:
N=Fi/2/Fr
式中:
N—计数值。
Fi—机器频率。
晶体振荡器为12MHz时,内部计时一次为1us,故其频率为1MHz。
Fr—想要产生的频率
所以定时常数(计数值T)的求法:
T=65536-N=65536-Fi/2/Fr
例如,设Fi=1MHz,求低音Do(262Hz)、中音Do(523Hz)和高音Do(1046Hz)的计数初值。
解:
T=65536-N=65536-Fi/2/Fr=65536-500000/Fr
低音Do的T=65536-500000/262=63628
中音Do的T=65536-500000/523=64580
高音Do的T=65536-500000/1046=65058
C调各音符频率与计数值T的关系
音符
频率(Hz)
半周期(ms)
简谱码T值定时值(H)
简谱码T值定时值(D)
低1Do
262
1.90
F894H
62628
低2Re
294
1.70
F95CH
63835
低3Mi
330
1.51
FA1AH
64021
低4Fa
349
1.43
FA6AH
64103
低5So
392
1.28
FB00H
64260
低6La
440
1.14
FB8CH
64400
低7Si
494
1.01
FC0EH
64524
中1Do
523
0.95
FC4AH
64580
中2Re
587
0.85
FCAEH
64684
中3Mi
659
0.76
FD08H
64777
中4Fa
698
0.72
FD30H
64820
中5So
784
0.64
FD80H
64896
中6La
880
0.57
FDC6H
64966
中7Si
988
0.51
FE02H
65030
高1Do
1046
0.47
FE2AH
65058
高2Re
1175
0.42
FE5CH
65110
高3Mi
1318
0.38
FE84H
65157
高4Fa
1397
0.36
FE98H
65178
高5So
1568
0.32
FEC0H
65217
高6La
1760
0.28
FEE8H
65252
高7Si
1967
0.25
FF06H
65283
第5章系统联调及操作说明
该定时器设置4个按键:
K1—设置倒数时间为60分钟,显示为“60”;K2—设置倒数计时时间为5分钟,显示为“05”;K3—设置倒数计时时间为10分钟,显示为“10”;K4—设置倒数计时时间为20分钟,显示为“20”。
一旦按键后则开始倒计时,当计时为0则演奏一曲音乐;内定倒数计时时间为5分钟,显示为“05-00”。
通过计算某一音频周期(1/频率),然后将此周期除以2,即为半周期的时间。
利用单片机定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O口反相,然后重复计时此半周期时间再对I/O口反相,这样就能在此I/O口上得到此频率的脉冲,再结合中断延时程序,程序中节拍控制是通过调用延时子程序DELAY的次数来实现,产生音乐。
利用P3.4、P3.5、P3.6、P3.7管脚进行查询,对应开关K1、K2、K3、K4,分别启动不同的倒计时程序60分钟、5分钟、10分钟、20分钟,P0引脚作为显示输出连至LED显示器,P2.6为段选信号,P2.7为位选信号,控制不同位的数码管。
程序中使用定时器T0方式1来产生歌谱中各音符对应频率的音频脉冲,由P2.3输出。
第6章总结
参考文献
1、《51系列单片机应用与实践教程》周向红编北航出版社
2、《单片机应用系统设计》何立民编北航出版社
3、《单片机原理及应用》王迎旭主编机械工业出版社
4、《51系列单片机设计实例》楼然苗等编北航出版社
5、《51单片机应用系统开发典型实例》戴家等编中国电力出版社
6、《单片微型计算机原理及接口技术》陈光东等编华中科技大学出版社
7、《单片机实用系统设计技术》房小翠编国防工业出版社
附录A:
系统硬件原理图
附录B:
程序清单
#include
#defineuintunsignedint
#defineucharunsignedchar
sbitdula=P2^6;//数码管段选
sbitwela=P2^7;//数码管位选
sbitk1=P3^4;
sbitk2=P3^5;
sbitk3=P3^6;
sbitk4=P3^7;
sbitbeep=P2^3;//讯响器控制脚
ucharnum,numx12,numx34,x1,x2,x3,x4,Count;
ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,//共阴极数码管段码表
0x39,0x5e,0x79,0x71};
unsignedcharcodeSONG[]={//祝你平安
0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,
0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,
0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x20,
0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x20,
0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10,
0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20,
0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x26,0x20,
0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,
0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10,
0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80,
0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x30,0x20,
0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x20,
0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x20,0x10,
0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00};
voiddelayms(uintx)//延时程序
{
unsignedinti,j;
for(i=0;i for(j=0;j<3;j++); } voiddisplay(ucharx1,ucharx2,ucharx3,ucharx4)//显示电路 { dula=1; P0=table[x1]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delayms (1); dula=1; P0=table[x2]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delayms (1); dula=1; P0=0x40; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delayms (1); dula=1; P0=table[x3]; dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; delayms (1); dula=1; P0=table[x4]; dula=0; P0=0xff; wela=1; P0=0xef; wela=0; delayms (1); } voidPlay_Song()//功能: 歌曲播放子程序i为播放哪一段曲目 { ucharTemp1,Temp2; uintAddr; Count=0;//中断计数器清0 Addr=0; while (1) { Temp1=SONG[Addr++]; if(Temp1==0xFF)//休止符 { TR0=0; delayms(100); } elseif(Temp1==0x00)//歌曲结束符 { return; } else { Temp2=SONG[Addr++]; TR0=1; while (1) { beep=~beep; delayms(Temp1); if(Temp2==Count) { Count=0; break; } } } } } voidmain() { TMOD=0x11;//设置定时器0,1为工作方式1 TH0=0xD8;//给定时器0,1设初值 TL0=0xEF; TH1=(65536-10000)/256; TL1=(65536-10000)%256; IE=0x88; while (1) { dula=1;//初始显示“05-00“ P0=0x3f; dula=0; P0=0xff; wela=1; P0=0xe6; wela=0; delayms (1); dula=1; P0=0x6d; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delayms (1); dula=1; P0=0x40; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delayms (1); if(k1==0)//设定60分钟 { delayms(10); if(k1==0) { while(! k1); numx12=59; numx34=59; } TR1=1;//开定时器1中断 while (1) { display(x1,x2,x3,x4); if(ET0==1) { while (1) { dula=1; P0=0x3f; dula=0; P0=0xff; wela=1; P0=0xe4;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 音乐 提示 定时器