求定时时钟单片机有两个主程序课程设计的主程序流程图

&&&&&&&&&&
copyright&lwfree.cn 六维论文网 严禁转载 如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。51单片机课程设计--闹钟程序设计
您的位置: → 高等教育 →
51单片机课程设计--闹钟程序设计
沈阳航空航天大学 课 程 设 计 报 告 课程设计名称:微机系统综合课程设计课程设计题目: 闹钟程序设计 院(系):计算机学院专
计算机科学与技术班
名:指导教师:说明:结论(、良好、中等、及格、不及格)作为相关教环节考核必要依据;格式不符合要求;数据不实,不予通过。和电子数据必须作为实验现象重复的关键依据。 沈阳航空航天大学课程设计报告学术诚信声明本人声明:所呈交的报告(含电子版及数据文件)是我个人在导师指导下独立进行设计工作及取得的研究结果。尽我所知,除了文中特别加以标注或致谢中所罗列的内容以外,报告中不包含其他人己经发表或撰写过的研究结果,也不包含其它教育机构使用过的材料。与我一同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说明并表示了谢意。报告资料及实验数据若有不实之处,本人愿意接受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一切后果。 本人签名:
日 I沈阳航空航天大学课程设计报告沈阳航空航天大学课程设计任务书II沈阳航空航天大学课程设计报告 III沈阳航空航天大学课程设计报告目
录 学术诚信声明 ................................................................................................................... I1
总体设计 ............................................................................................................ 11.1
课程设计的内容和要求 ...................................................................................... 11.2
课程设计原理 ...................................................................................................... 11.3
课程设计思路 ...................................................................................................... 12
详细设计方案 ............................................................................................................ 22.1
实现方法 .............................................................................................................. 22.2模块设计 ............................................................................................................. 22.2.1 主程序流程图 ............................................................................................... 22.2.2 中断程序流程图 ........................................................................................... 32.2.2.1基本显示模块设计 ................................................................................... 32.2.2.2时间设定模块设计 ................................................................................... 32.2.2.3闹铃功能的实现 .................................................................................... 43
调试及结果分析 ........................................................................................................ 53.1
调试步骤及方法 .................................................................................................. 53.2
实验结果 .............................................................................................................. 5参考文献 .......................................................................................................................... 6附
录(源程序) ........................................................................................................ 7 IV沈阳航空航天大学课程设计报告1
总体设计方案1.1
课程设计的内容和要求本设计是定时闹钟的设计,由MCS51单片机芯片和LED数码管为核心,辅以必要的电路,构成的一个单片机电子定时闹钟。定时闹钟设计采用单片机来完成,用数码管显示“时”,“分”,“秒”。使用MCS51系列单片机,单片机结合七段显示器设计的简易定时闹铃时钟,可以设置现在的时间、闹钟定时的时间,可以设置两个闹钟,若时间到则用发光二极管显示。1.2
课程设计原理MCS51系列单片机内部有两个定时器,可以实现一定时间的定时,可以设置1秒的时长作为闹钟的单位时间,以此实现时钟的走时,单片机有32条I/O口线,5个中断源、一个全双工串行口等,可以通过数码管显示当前时间以及闹钟时间。1.3
课程设计思路本设计通过设置定时器,实现时长为1秒的定时,作为时钟的单位时间,实现时钟的走时,外部按键连接到P1口,实现对时钟及闹钟的设定。可以显示并设置两个的闹钟时间,开关功能如下:K1:秒调整;K2:分调整;K3:时调整;K4:秒归零;K5:时钟归零;K6:设置闹钟1;K7:按下显示闹钟设定时间,抬起显示时钟时间;K8:设置闹钟2。1沈阳航空航天大学课程设计报告2
详细设计方案2.1
实现方法电子闹钟应包括秒信号发生器、时间显示电路、按键电路以及闹铃指示电路等几部分。电子闹钟的系统框图如下所示:2.2模块设计2.2.1 主程序流程图 2沈阳航空航天大学课程设计报告2.2.2 中断程序流程图2.2.2.1基本显示模块设计基本显示模块设计的重点是由显示代码取得相应的段码,显示段码数据的并行发送,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。流程图如下: 2.2.2.2时间设定模块设计K1:秒调整;K2:分调整;K3:时调整。流程图如下: 3沈阳航空航天大学课程设计报告2.2.2.3闹铃功能的实现闹铃功能的实现涉及到两个方面:闹铃时间设定和是否闹铃判别与相应处理。闹铃时间设定模块的设计可参照时间设定模块,这里着重阐述闹铃判别与处理模块的设计问题。闹铃判别与闹铃处理的关键在于判别何时要进行闹铃。当时十位、时个位、分十位、分个位、秒十位、秒个位中任一位发生改变(进位)时,就必须进行闹铃判别。译码显示电路将“时”、“分”、“秒”计数器的输出送到七段显示译码驱动器译码驱动,通过六个七段LED显示器显示出来。闹铃电路根据计时系统的输出状态产生一脉冲信号,然后驱动发光二极管亮。流程图如下: 4沈阳航空航天大学课程设计报告3
调试及结果分析3.1
调试步骤及方法软件运行过程中,可以通过如下按键进行操作:K1:秒调整;K2:分调整;K3:时调整;K4:秒归零;K5:时钟归零;K6:设置闹钟1;K7:按下显示闹钟设定时间,抬起显示时钟时间;K8:设置闹钟2。3.2
实验结果程序运行时,显示时钟初始值00 00 00,闹钟初始值00 01 00,运行后,时钟正常走时,此时按下K7,显示闹钟时间,按下K6,显示闹钟1时间,可以通过K1、K2、K3对闹钟1进行设置,抬起K6,按下K8,对闹钟2进行设置,然后抬起K7显示时钟时间,当闹钟1或闹钟2时间到达后,发光二极管亮。5沈阳航空航天大学课程设计报告参考文献[1] 张毅刚.单片机原理及应用[M].哈尔滨:哈尔滨工业大学出版社,2008[2] 戴仙金.51单片机及其C语言程序开发实例[M].北京:清华大学出版社,2011[3] 黄惟公.单片机原理与应用技术[M].西安:西安电子科技大学出版社,20106沈阳航空航天大学课程设计报告附
录(源程序)#include&reg51.h&#include&absacc.h&#define uchar unsigned char#define uint unsigned int/*七段共阴管显示定义*/uchar codedispcode[ ]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,
0xBF,0x86,0xCB,0xCF,0xEF,0xED,0xFD,0x87,0xFF,0xDF};
/*定义并初始化变量*/uchar xdata *p=0x8004;uchar xdata *q=0x8002;uchar second=0;uchar minite=0;uchar hour=0;uchar second1=10;uchar minite1=0;uchar hour1=0;uchar second2=10;uchar minite2=0;7沈阳航空航天大学课程设计报告uchar hour2=0;uchar mstcnt=0;uchar tmp=1;uchar tmp1=1;sbit P1_0=P1^0;
// second 调整定义sbit P1_1=P1^1;
//minite调整定义sbit P1_2=P1^2;
//hour调整定义sbit P1_3=P1^3;sbit P1_4=P1^4;sbit P1_5=P1^5;sbit P1_6=P1^6;sbit P1_7=P1^7;sbit P2_0=P2^0;sbit P2_1=P2^1;unsigned char alarm_flag=0;
//闹钟定时到达标志变量 /*函数声明*/void delay(uchar k );
//延时子程序void time_pro( );
//时间处理子程序void display( );
//显示子程序void keyscan( );
//键盘扫描子程序void
alarm_judge(void);
//闹钟定时到达判定8沈阳航空航天大学课程设计报告void
beep1(void);
//闹钟响铃程序void
beep2(void);
//闹钟响铃程序void
show1(void);void
show2(void);
//闹钟设定显示void
beep1(void){P2_0=!P2_0;delay(1000);} void
beep2(void){P2_1=!P2_1;delay(1000);}/*****************************//*延时子程序*//****************************/void delay (uchar k) {while((k--)!=0)
{9沈阳航空航天大学课程设计报告for(j=0;j&125;j++)
{;}}}/**************************//*时间处理子程序*//**************************/void time_pro( void) {if(tmp=1) {if(second==60)
//秒钟设为60进制
{ second=0;minite++;if( minite==60)
//分钟设为60进制
{ minite=0;hour++;if(hour==24)//时钟设为24进制{hour=0; }}}10沈阳航空航天大学课程设计报告}}void time_pro1( void) {if(tmp1==1){if(second1==60){ second1=0;minite1++;if( minite1==60){ minite1=0;hour1++;if(hour1==24)//时钟设为24进制{hour1=0; }}}}}void time_pro2( void) {if(second2==60){ second2=0;minite2++;
//秒钟设为60进制
//分钟设为60进制
//秒钟设为60进制11沈阳航空航天大学课程设计报告if( minite2==60)
//分钟设为60进制{ minite2=0;hour2++;if(hour2==24)//时钟设为24进制{hour2=0; }}}}/*****************************//* 显示子程序*//*****************************/void display(){if(tmp=1){uchar code success[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,
//共阴的数码管段选.将值送给P2口 0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40,0x80,0x00};
//位选,0-5uchar code wema[]={0x20,0x10,0x08,0x04,0x02,0x01};位数码管 // while(1)
//做一个死循环,让程序永远在while下面的大括号里面运行。12沈阳航空航天大学课程设计报告 {
*q=wema[0];
uchar xdata *q=0x8002;*p=success[hour/10];delay(1);*q=wema[1];*p=success[hour%10];delay(1); *q=wema[2];
//位码*p=success[minite/10];delay(1);*q=wema[3];*p=success[minite%10];delay(1);*q=wema[4];
//位码*p=success[second/10];delay(1);*q=wema[5];*p=success[second%10];delay(1);
uchar xdata *q=0x8002;
uchar xdata *q=0x8002;13沈阳航空航天大学课程设计报告 } } }void display1(){if(tmp1==1){uchar code success1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,
//共阴的数码管段选.将值送给P2口 0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40,0x80,0x00};
//位选,0-5uchar code wema1[]={0x20,0x10,0x08,0x04,0x02,0x01};位数码管 // while(1) {
*q=wema1[0];
uchar xdata *q=0x8002;
//做一个死循环,让程序永远在while下面的大括号里面运行。 *p=success1[hour1/10]; delay(1); *q=wema1[1];
*p=success1[hour1%10];
*q=wema1[2];
uchar xdata *q=0x8002;14沈阳航空航天大学课程设计报告 }
*p=success1[minite1/10]; delay(1); *q=wema1[3];
*p=success1[minite1%10];
*q=wema1[4];
uchar xdata *q=0x8002;
*p=success1[second1/10]; delay(1); *q=wema1[5];
*p=success1[second1%10];
delay(1); }void display2(){uchar code success2[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,
//共阴的数码管段选.将值送给P2口 0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40,0x80,0x00};
//位选,0-5uchar code wema2[]={0x20,0x10,0x08,0x04,0x02,0x01};位数码管15沈阳航空航天大学课程设计报告 // while(1) {
*q=wema2[0];
uchar xdata *q=0x8002;
//做一个死循环,让程序永远在while下面的大括号里面运行。*p=success2[hour2/10];delay(1);*q=wema2[1];*p=success2[hour2%10];delay(1); *q=wema2[2];
//位码*p=success2[minite2/10];delay(1);*q=wema2[3];*p=success2[minite2%10];delay(1);*q=wema2[4];
//位码*p=success2[second2/10];delay(1);*q=wema2[5];
uchar xdata *q=0x8002;
uchar xdata *q=0x8002;16沈阳航空航天大学课程设计报告 }
*p=success2[second2%10];
delay(1);//******************闹钟判断函数****************************** void
alarm_judge(void){if(hour==hour1 && minite==minite1 && second==second1 )
//定时到达设定标志1 }else if(hour==hour2 && minite==minite2 && second==second2){ } void keyscan1 (void) {if(tmp1==1){if(P1_0==0)
//按键1秒的调整{17
}沈阳航空航天大学课程设计报告delay(100);if(P1_0==0){second1++;if(second1==60){second1=0;}}}if(P1_1==0){delay(100);if(P1_1==0){minite1++;if(minite1==60){minite1=0;}if(P1_2==0){delay(100);if(P1_2==0){
//按键2分的调整
//按键3小时的调整18沈阳航空航天大学课程设计报告hour1++;if(hour1==24){hour1=0; }}}}}void keyscan2 (void) {if(P1_0==0){delay(100);if(P1_0==0){second2++;if(second2==60){second2=0;}}}if(P1_1==0){delay(100);
//按键1秒的调整
//按键2分的调整19沈阳航空航天大学课程设计报告if(P1_1==0){minite2++;if(minite2==60){minite2=0;}
}if(P1_2==0)
//按键3小时的调整
{delay(100);if(P1_2==0){hour2++;if(hour2==24){hour2=0; }}}}/*******************************//*键盘扫描子程序*//*******************************/void keyscan (void) {if(tmp=1){20沈阳航空航天大学课程设计报告if(P1_3==0){second=0;minite=0;hour=0;}if(P1_4==0)
{second=0;}if(P1_0==0){delay(100);if(P1_0==0){second++;if(second==60){second=0;}}}if(P1_1==0){delay(100);
//按键1秒的调整
//按键2分的调整21沈阳航空航天大学课程设计报告if(P1_1==0){minite++;if(minite==60){minite=0;}
}if(P1_2==0)
//按键3小时的调整{delay(100);if(P1_2==0){hour++;if(hour==24){hour=0; }}}}}void timer0(void) interrupt 1 using 0
//定时器0方式1,50ms中断一次
{TH0=0x3c;TL0=0xb0;22沈阳航空航天大学课程设计报告TMOD=0x11;mstcnt++;if(mstcnt==20){second++;mstcnt=0;
//注意点。对计数单元的清零十分的重要,本次调试中就是
}}/*闹钟设定*/void show1(void){if(P1_5==0){ }void show2(void){
} keyscan1( );
//按键扫描
time_pro1( ); //时间处理
display1( ); //显示时间
tmp=1;23沈阳航空航天大学课程设计报告if(P1_7==0){ }/**************************//*主函数*//**************************/void main(void)
//初始化p1口,全设为1
} keyscan2( );
//按键扫描
time_pro2( ); //时间处理
display2( ); //显示时间
tmp1=1;P2=0x00;
//初始化p2口,全设为0
TMOD=0x11;
//time0为定时器,方式1TH0=0x3c;
//预置计数初值TL0=0xb0;EA=1;ET0=1;TR0=1;while (1) {24沈阳航空航天大学课程设计报告alarm_judge();if(P1_6==1){keyscan( );
//按键扫描time_pro( ); //时间处理display( ); //显示时间}show1();show2();}25沈阳航空航天大学课程设计报告 26
51单片机课程设计--闹钟程序设计相关文章
《》由www.zaidian.com(在点网)整理提供,版权归原作者、原出处所有。
Copyright &
All Rights Reserved.时钟计时器课程设计_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
时钟计时器课程设计
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩24页未读,
定制HR最喜欢的简历
你可能喜欢 上传我的文档
 下载
 收藏
粉丝量:25
该文档贡献者很忙,什么也没留下。
 下载此文档
LCD电子钟的设计单片机课程设计
下载积分:1000
内容提示:LCD电子钟的设计单片机课程设计
文档格式:DOC|
浏览次数:380|
上传日期: 21:51:13|
文档星级:
全文阅读已结束,如果下载本文需要使用
 1000 积分
下载此文档
该用户还上传了这些文档
LCD电子钟的设计单片机课程设计
关注微信公众号周热销排行
用户评论(0)
在此可输入您对该资料的评论~
添加成功至
资料评价:

我要回帖

更多关于 单片机时钟程序流程图 的文章

 

随机推荐