倒数计时器.docx
- 文档编号:25872382
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:12
- 大小:657.97KB
倒数计时器.docx
《倒数计时器.docx》由会员分享,可在线阅读,更多相关《倒数计时器.docx(12页珍藏版)》请在冰豆网上搜索。
倒数计时器
一、系统概述
1.内容摘要
(1)引言
随着社会发展的不断进步,人们对智能化仪器的需求也越来越明显,作为即将毕业于福建师范大学闽南科技学院计算机系的我来说,必须将自己课堂上的所学与社会对人才的需求量做一个理智的分析,并且充分利用所学,好好定位自己的实践能力,团队协作能力,正好这份期末的课程设计让我达到了强化自身能力的目的,实际开发过程中,发现日常看起来很普通的一件物品,原来各个都凝聚了人类智慧的结晶,即使只是一个普普通通的倒数计时器,在开发过程中自身学到了很多东西,也充分的认识了自己,以前常认为做事要求的是个人能力,在这次开发过程中,我真正认识到了团队的概念,原来明确的分工,带来的将是意想不到的效果,
这里,也谢谢我的组员:
XXXXX还有我的指导老师:
XXX。
(2)关键字
可调音乐倒数计时器
Protuse仿真
51单片机
定时/计数器中断
LCD显示技术
2.需求分析
(1)系统简介
利用单片机结合LCD显示器设计一个倒数计时器,可以放在家中使用,例如煮方便面、煮开水或小睡片刻等,做一小段时间计时。
当倒数计时为0时,则发出一段音乐,通知倒数终了,该做重要的事情了。
(2)系统要求
文字型LCD(16*2)显示目前倒数的时间;显示格式为“分分:
秒秒”;具有11个按键操作来设置现在想要倒数的时间;一旦按键后则开始倒数计时,当计时为零则发出一阵音乐,
程序执行后工作指示灯LED闪动,按下操作键K0~K5
分别实现:
+10s、+1min、+5min、+10min、+20min、+60min;B0~B4分别实现:
-10s、-1min、-5min、-20min、-60min;其余2个操作键(开始/暂停、停止)根据其具体标式实现各自工作
二、系统硬件
1.电路设计
(1)概述
系统的电路设计由组员(XXX,XXX完成),由11个功能键来完成对时间的设置,由两个功能键来完成系统的运行与结束操作,最后由一个喇叭发出一段音乐提示用户,各引脚的连接如图所示。
(2)电路图
现给出系统的总电路图如下:
三、系统软件设计
1.总体设计
(1)设计思想:
程序开始时使用一个while(true)循环扫描11个功能键,若有键按下,则执行相应功能,(例如:
若按下K1,则相应将LCD上的显示时间数加10s),当按下开始/暂停时,程序开始倒计时,倒计时过程中,当再一次按下开始/暂停时,程序暂停,此时可根据用户需求重新设定倒数时间,当重新按下开始时,程序重新进入计时,若按下停止键,系统重新置位,显示00:
00。
(2)系统流程图
(附:
各模块对应代码
main.c:
主程序模块
LCD1602.c:
LCD显示模块及功能键定义
DATA.h:
歌曲乐谱
SoundPlay.h:
喇叭的初始化及音乐输出)
2.关键模块设计
(1)说明
程序分为LCD显示模块、主程序模块、音乐提示模块、我负责的是功能键主程序模块,说明:
程序的各功能键采用循环扫描方式判断是否有键按下,LCD显示以及音乐提示部分采用T1工作模式1的中断方式。
(2)程序算法
功能键定:
sbitK0=P1^0;
sbitK1=P1^2;
sbitK2=P1^3;
sbitK3=P1^4;
sbitK4=P1^5;
sbitK5=P1^1;
sbitstart=P1^6;
sbitstop=P1^7;
sbitB0=P3^0;
sbitB1=P3^1;
sbitB2=P3^2;
sbitB3=P3^4;
sbitB4=P3^5;
定时/计数器器初值:
TH1=0xcf;
TL1=0x2c;
当计数器计数个数达到400时,既过了1s,相应的LCD显示值改变
有了如上的定义,在主函数中,使用while循环判断是否有功能键按下,代码如下:
While(true){
if(!
B0){
while(!
B0);
if(DAT>=10)
DAT-=10;
}
//当B0按下,意味着减10秒,首先判断当前的时间数是否大于10秒,若大于,则将时间减少10秒,若小于,则不进行该操作。
}
if(!
start)
{
while(!
start);
if(flg==0){flg=1;TR1=1;
//flg=1,代表程序开始,并选通T1
}
else{
flg=2;
}
}
if(flg==1&&time>400)
{
DAT--;
disp(DAT);
time=0;
if(!
DAT){InitialSound();Play(tab[1],0,3,360);flg=0;}//如果时间到,将响起一首音乐//0-2首歌可选
}
以下为主程序调用LCD显示的算法:
LCD_Write(0,0x80);//显示在第一行
for(i=0;i<12;i++){LCD_Write(1,*ch++);}//显示字符于第一行
DAT=0;
LCD_Write(0,0xCD);
LCD_Write(1,0x3A);//显示:
冒号
四、附录
1.参考文献
(1)微型计算机控制计数第二版(潘新民、王艳芳编著)
(2)单片机原理及应用教程第二版(赵全利、肖兴达主编)
2.感想与体会
(1)感想
实际开发中,遇到了诸多的问题,由于硬件及汇编的基础知识并不牢固,导致设计过程中处处碰壁,后安排组员花了近一个月的时间仔细专研单片机计数的原理及应用,才渐渐的掌握了该课程设计的初步思想。
(2)收获
整个程序设计过程中,让我慢慢掌握了各硬件接口的作用,也让我领悟到中断在实际设计中的应用之广泛。
程序设计的每个步骤都需要细细揣摩,我们也出现过诸多问题,在一次又一次的意见交流中,我们最终克服了困难。
课程的设计结束了,不过未来的时间里,我们会近一步的完善它的功能。
(3)程序缺陷
由于设计之初未认真考虑复位键(停止键)的问题,只是简单的将其清零,所以程序在运行过程中,需先暂停,然后再按下停止键进行复位,LCD上的显示才会清0;若在计时过程中,未先按下暂停,直接按停止键,LCD的显示上会出现问题。
(4)主程序清单(main.c)
/*
*/
#include
#include
#include
charflg=0;
inttime=0;
intDAT;
voiddisp(intdat)//显示数据部分
{
LCD_Write(0,0xCB);//显示地址,显示在第二行,从第B开始
LCD_Write(1,0x30+(dat/60)/10);
LCD_Write(1,0x30+(dat/60)%10);//获得并显示分钟数
LCD_Write(0,0xCE);
LCD_Write(1,0x30+(dat%60)/10);
LCD_Write(1,0x30+(dat%60)%10);//获得并显示秒钟数
}
voidmain(void)
{
chari;char*ch="mnkjxy";//第一行要显示的信息
LCD_Initial();//1602初始化
Init();//掉定时器子函数,要定时1s
//InitialSound();//播放音乐初始化
LCD_Write(0,0x80);//显示在第一行
for(i=0;i<12;i++){LCD_Write(1,*ch++);}//显示字符于第一行
DAT=0;
LCD_Write(0,0xCD);
LCD_Write(1,0x3A);//显示:
冒号
while
(1)
{
if(!
B0){
while(!
B0);
if(DAT>=10)
DAT-=10;flg=0;
}
if(!
B1){
while(!
B1);
if(DAT>=60)
DAT-=60;flg=0;
}
if(!
B2){
while(!
B2);
if(DAT>=300)
DAT-=300;flg=0;
}
if(!
B3){
while(!
B3);
if(DAT>=1200)
DAT-=1200;flg=0;
}
if(!
K0){
while(!
K0);
DAT+=10;flg=0;
}
if(!
K1)//按下K1,加上1分钟
{
while(!
K1);
DAT+=60;flg=0;
}
if(!
K2)//按下K2加上5分钟,即加上300min
{
while(!
K2);
DAT+=300;flg=0;
}
if(!
K3)//按下K2加上10分钟,即加上600min
{
while(!
K3);
DAT+=600;flg=0;
}
if(!
K4)//按下K2加上20分钟,即加上1200min
{
while(!
K4);
DAT+=1200;flg=0;
}
if(!
start)
{
while(!
start);
if(flg==0){flg=1;TR1=1;
}
else{
flg=2;
}
}
if(flg==2){TR1=0;flg=0;}
if(!
stop)
{
while(!
stop);
DAT=0;
}
if(flg==1&&time>400)//最小单位为second
{
DAT--;
disp(DAT);
time=0;
if(!
DAT){InitialSound();Play(tab[1],0,3,360);flg=0;}//如果时间到,将响起一首音乐//0-2首歌可选
}
disp(DAT);
}
}
voidtimer()interrupt3using0//T1定时
{
TH1=0xcf;
TL1=0x2c;
time++;
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 倒数 计时器