基于单片机音乐提示定时器的设计与实现毕业作品.docx
- 文档编号:27344104
- 上传时间:2023-06-29
- 格式:DOCX
- 页数:19
- 大小:475.23KB
基于单片机音乐提示定时器的设计与实现毕业作品.docx
《基于单片机音乐提示定时器的设计与实现毕业作品.docx》由会员分享,可在线阅读,更多相关《基于单片机音乐提示定时器的设计与实现毕业作品.docx(19页珍藏版)》请在冰豆网上搜索。
基于单片机音乐提示定时器的设计与实现毕业作品
BIYESHEJI
(20届)
基于单片机的音乐提示定时器设计与实现
所在学院
专业班级
电子信息工程
学生姓名
指导教师
完成日期
基于单片机的音乐提示定时器设计与实现
摘要:
本设计是利用STC89C52单片机制作的一个音乐提示定时器。
它能够实现定时、音乐提示等功能。
系统由按键模块,显示模块,音乐提示模块,单片机模块和时钟模块构成。
在本设计中,定时时间可由按键开关控制。
完成时间设置后,系统进入倒计时状态,所有的时间数据都通过LCD1602显示器显示出来。
当达到定时时间时,蜂鸣器便会发出音乐提示音。
论文重点阐述了基于单片机对LCD显示器的控制,结构化设计方法和系统硬件的实现。
关键词:
单片机,LCD1602,定时器,音乐提示,按键控制
Thedesignandimplementationofamusic-remindertimerbasedonMCU
Abstract:
ThisdesignusestheSTC89C52MCUtoproductamusic-remindertimer.Itcanachievetiming,music-reminderandotherfunctions.Thesystemisformedbythekeymodule,displaymodule,music-remindermodule,microcontrollermoduleandtheclockmodule.Inthisdesign,timecanbesetbythekey-switch.Afterthetimesetting,thesystementersthecountdownstate,andallthetime-datacanbedisplayedthroughLCD1602monitor.Whenitreachtheappointedtime,thebuzzerwillplayamusicaltone.ThepaperfocusesontheLCDmonitorsystemcontroledbyMCU,structuraldesignmethodandthesystemhardware.
Keywords:
microcontroller,LCD1602,timers,music-reminder,buttoncontrol
第一章设计任务及系统方案
1.1设计任务
设计要求以单片机为核心,设计一个音乐提示定时器。
它能实现时间设置、倒计时、音乐提示等功能。
其中,定时的时间默认为2分钟,可通过按键随时调节;完成时间设置后便可进行倒计时。
每隔1秒,计数值减一并通过LCD1602显示剩余时间,当显示剩余时间为0时,开始播放提示音乐。
1.2系统方案
第一步是硬件的选择。
以STC89C52为主,加上时钟电路,复位电路,音乐提示电路,并由P0口输出,接入LCD1602显示器。
由P2.0、P2.1、P2.2分别作为LCD1602控制端。
另外需要三个开关S1-S3,分别从P3.0-P3.3依次输入,当按下S1时,进入设置状态;按下S2可将当前显示的数值加一;按下S3可将当前显示的数值减一。
当显示器显示的时间为零时,从P1.2输出不同频率的信号,使与之相接的蜂鸣器发出提示音。
第二步是程序的设计。
完成此次任务我们需要1s的定时模块,复位模块,倒计时模块,显示模块,音乐提示模块。
第三步是调试。
调试时采用硬件调试方法。
按照电路图,焊接好实际电路,并利用keil软件和烧写软件,将程序烧写到单片机上。
第二章系统硬件要求及工作原理
2.1系统硬件设计框图
图1系统框图
2.2基本工作原理
如图1所示,以单片机芯片为核心,并与晶振复位模块,音乐提示模块,显示模块,按键模块共同组成了音乐提示定时器的系统。
单片机接受按键电路、复位电路输入,并对输入做出反应。
通过芯片的内在操作,控制外部显示电路与音乐提示电路的工作情况。
第三章各单元硬件设计及说明
3.1单片机的选择
本次课程设计采用STC89C52单片机(引脚见图2)。
ST89C52系列有两大优势:
第一,片内程序存储器采用闪速存储器,使程序的写入更方便;第二,提供了更小尺寸的芯片,使整个硬件电路的体积更小。
它以较小的体积、良好的性能价格比倍受青睐。
图2STC89C52芯片
此单片机管脚介绍如下:
VSS(20脚):
接地
VCC(40脚):
主电源+5V
XTAL1(19脚):
接外部晶体的一端。
在片内它是振荡电路反相放大器的输入端。
XTAL2(18脚):
接外部晶体的另一端。
在片内它是一个振荡电路反相放大器的输出端,振荡电路的频率是晶体振荡频率。
RST(9脚):
单片机刚接上电源时,其内部各寄存器处于随机状态,在该脚输入24个时钟周期宽度以上的高电平将使单片机复位。
PSEN(29脚):
在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。
我们根据PSEN、ALE和XTAL2输出端是否有信号输出,可以判别89C52是否在工作。
ALE/PROG(30脚):
在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。
CPU在向片外存储器取指令期间,PSEN信号在12个时钟周期中两次生效。
EA/VPP(31脚):
当EA端输入高电平时,CPU从片内程序存储器地址0000H单元开始执行程序。
当地址超出4KB时,将自动执行片外程序存储器的程序。
当EA输入低电平时,CPU仅访问片外程序存储器。
输入/输出引脚:
(1)P0.0—P0.7(39脚—32脚)
(2)P1.0—P1.7(1脚—8脚)
(3)P2.0—P2.7(26脚—21脚)(4)P3.0—P3.7(10脚—17脚)
3.2显示器的选择
本设计采用显示器的是LCD1602(引脚见图3)。
LCD1602是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。
图3显示器LCD1602
1602采用标准的16脚接口,其中:
第1脚:
GND为电源地
第2脚:
VCC接5V电源正极
第3脚:
V0为液晶显示器对比度调整端
第4脚:
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5脚:
RW为读写信号线,高电平
(1)时进行读操作,低电平(0)时进行写操作。
第6脚:
E(或EN)端为使能(enable)端,高电平
(1)时读取信息,负跳变时执行指令。
第7~14脚:
D0~D7为8位双向数据端。
第15~16脚:
空脚或背灯电源。
15脚背光正极,16脚背光负极。
3.3电路设计
3.3.1复位电路
单片机的复位方式有两种,一种是上电自动复位,另一种是按键手动复位。
本设计采用的是按键手动复位方式(见图4)。
图4复位电路
3.3.2时钟电路的设计
单片机工作的时间基准是由时钟电路控制的。
STC89C52单片机虽然有内部振荡电路,但是要形成时钟,还必须得要有外部的附加电路(见图5)。
本次设计采用内部时钟方式,利用芯片内部的振荡电路,然后在单片机的XTAL1和XTAL2两个管脚,外接定时元件内部的振荡电路,以便产生自激振荡。
图5时钟电路
3.3.3显示电路设计
本设计采用的显示器是LCD1602,它可直接与STC89C52的P0端口相连(见图6)。
图6显示电路模块
3.3.4定时调整电路
定时调整电路的3个按钮分别接到P3.0-P3.2端口。
当S1键按下时,进入调整时间状态,初始化调整秒钟状态。
若按下S2键,则倒计时间加1秒;若按下S3,倒计时时间减一秒;接着按下S1键,可调整分钟状态,按下S2,倒计时间加1分钟,按下S3倒计时间减一分钟。
同理可调节时钟状态。
图7定时调整电路
3.3.5音乐提示电路
音乐电路由一个蜂鸣器构成,将蜂鸣器连至P1.2端口。
蜂鸣器的声音由输入方波的频率有关,因此可在程序里设计不同的频率的方波来控制音调。
图8音乐提示电路
第四章系统软件设计
4.1设计方法
本系统软件设计时采取的是结构化设计的方法,主要模块程序见附录3。
4.1.1结构化设计的基本思路
把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都在控制人们容易理解和处理的范围内。
4.1.2结构化设计采用的具体方法
(1)自顶而下
(2)逐步细化(3)模块化设计(4)结构化编码
以写文章为例,先设想整篇文章分成几个部分,然后再进一步考虑每一部分分成哪几节,每一节分哪几段,每一段应包含什么内容。
下面将本项目分成了四个小部分,分别是用于时间设置的按键模块,显示模块,倒计时模块和音乐模块,然后再具体对每个模块进行结构化编码。
图9本设计各模块
4.2主程序流程图
N
Y
图10主程序流程图
4.3显示模块流程图
图11显示模块流程图
4.4扫描按键模块流程图
图12按键模块流程图
4.5音乐提示模块流程图
图13音乐模块流程图
第五章调试
本设计采取的硬件调试的方法。
先利用keil软件将编写好的C程序编译成的*.hex文件,再利用烧写软件将*.hex文件烧写到单片机上。
调整按键输入,设置倒计时时间。
图14keil软件
图15STC烧写软件
第六章总结
通过这次的毕业设计,将学到的理论知识和实践动手能力融合在了一起,使得我更近一步熟练掌握了工程设计的方法,提高了工程设计能力、外文阅读能力、文献查阅能力、文字表达能力、实验研究能力和计算机应用能力等。
在焊接单片机最小系统和外围电路时,我体会到了原理图的规划要尽量的合理,否侧对于实物的焊接会变得麻烦。
在焊接音乐提示模块时,我按照网络上给的电路图,直接焊在电路板上,结果导致蜂鸣器声音很小,几乎听不见。
在老师的指导下,我回去又重新将电路图设计了一遍,然后再焊接新的电路,使得音乐提示音大了很多。
这次我成功的完成了毕业设计,使我变得更加自信。
这也启发我在今后的学习生涯中,遇到问题不能逃避,要尽力去分析失败的原因,然后解决它,这样才会有更大的收获。
参考文献
[1]张大明《单片机微机控制应用技术》[M].机械工业出版社,2006
[2]张毅坤《单片微型计算机原理及应用》[M].西安电子科技大学出版社,,2007
[3]曾一江《单片微机原理和接口技术》[M].科学出版社,2003
[4]冯德华超亮《单片机应用系统设计与产品开发》[M].人民邮电出版社,2004
[5]周润景徐宏伟丁莉《单片机电路设计、分析与制作》[M].机械工业出版社,2010
[6]李光第朱月秀《单片机基础》[M].北京航空航天大学出版社,2003
[7]郭天祥《新概念51但偏见C语言教程——入门、提高、开发、扩展全攻略》[M].电子工业出版社,2007
[8]V.Yu.Teplov,A.V.Anisimov.ThermostattingSystemUsingaSingle-ChipMicrocomputerandThermoelectricModulesBasedonthePeltierEffect[J],2002
附录1原理图
附录2实物图
附录3主要模块程序
1、定时1S模块
voidtimer0()interrupt1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
count++;
if(count==18)
{
count=0;
if(miao==60&&fen!
=0)
{miao--;
fen--;
}write_sfm(6,fen);
write_sfm(9,miao);
if(miao==0&&(shi||fen!
=0))
{
miao=59;
if(fen!
=0)
{
fen--;
}
if(fen==0&&shi!
=0)
{
fen=59;
shi--;
write_sfm(3,shi);
}write_sfm(6,fen);
}write_sfm(9,miao);
miao--;
if(miao==0&&fen==0&&shi==0)
{
write_sfm(9,miao);
TR0=0;
{music();}
}
}
2、音乐播放模块
music()
{
unsignedinti;
while
(1)
{
for(i=0;i<500;i++)
{
DelayUs2x(200);
DelayUs2x(200);
SPK=!
SPK;
}
for(i=0;i<500;i++)
{
DelayMs
(1);
SPK=!
SPK;
}
}
}
3、按键扫描模块
voidkeyscan()
{
if(s1==0)//按下S1
{
delay(5);
if(s1==0)
{s1num++;
while(!
s1);
if(s1num==1)//按下一次开关S1
{
TR0=0;//停止计时
write_com(0x80+0x40+9);
write_com(0x0f);//秒钟光标闪烁
}
}
if(s1num==2)//按下两次开关S1
{
write_com(0x80+0x40+6);//分钟光标闪烁
}
if(s1num==3)//按下三次开关S1
{
write_com(0x80+0x40+3);//时钟光标闪烁
}
if(s1num==4)
{//按下四次开关S1,停止闪烁,开始计时
s1num=0;
write_com(0x0c);
TR0=1;
}
}
if(s1num!
=0)//当S1按下时
{
if(s2==0)
{
delay(5);
if(s2==0)
{
while(!
s2);
if(s1num==1)//如果S1按下一次,按下S2,则秒钟加一
{
miao++;
if(miao==60)
miao=0;
write_sfm(9,miao);
write_com(0x80+0x40+9);
}
if(s1num==2)//如果S1按下两次,按下S2,则分钟加一
{
fen++;
if(fen==60)
fen=0;
write_sfm(6,fen);
write_com(0x80+0x40+6);
}
if(s1num==3)//如果S1按下三次,按下S2,则分钟加一
{
shi++;
if(shi==24)
shi=0;
write_sfm(3,shi);
write_com(0x80+0x40+3);
}
}
}
if(s3==0)
{
delay(5);
if(s3==0)
{
while(!
s3);
if(s1num==1)//如果S1按下一次,按下S3,则秒钟减一
{
if(miao==0)
{
miao=59;
write_sfm(10,miao);
write_com(0x80+0x40+10);
}*/
miao--;
if(miao==-1)
miao=59;
write_sfm(9,miao);
write_com(0x80+0x40+9);
}
if(s1num==2)//如果S1按下两次,按下S3,则分钟减一
{
fen--;
if(fen==-1)
fen=59;
write_sfm(6,fen);
write_com(0x80+0x40+6);
}
if(s1num==3)//如果S1按下三次,按下S3,则时钟减一
{
shi--;
if(shi==-1)
shi=23;
write_sfm(3,shi);
write_com(0x80+0x40+3);
}
}
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 音乐 提示 定时器 设计 实现 毕业 作品
![提示](https://static.bdocx.com/images/bang_tan.gif)