资源描述:
《多功能时钟流程图.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、多功能时钟流程图1资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。多功能时钟流程图一.功能确认时钟功能:1.时钟显示小时和分钟2.用户能够经过按键调整时钟的时间3.无论当前时钟是否在前台显示,时钟始终是运行的。定时闹铃功能:1.2.3.用户能够经过按键设置闹铃时间(小时和分钟),设置完成后能够按确定键退出设置。当系统时钟的时间等于预设的闹铃时间时,系统蜂鸣器响5秒钟。用户能够设置两个闹铃。秒表功能:1.2.3.用户能够经过按键进入秒表功能,也能够退出秒表状态。秒表高2位显示秒,低2位显
2、示百分之一秒。能够经过按键暂停、(继续)运行秒表,能够经过按键对秒表清零。二.状态分析及模块分割根据以上的分析,系统共有三个大的功能:时钟、设置定时、秒表,各个功能之间能够经过按键来切换,且各个功能内部仍需要使用按键来处理,故能够考虑将系统定义为三个状态(status):时钟状态、设置定时状态、秒表状态。显然,同一2资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。个按键在不同状态下的功能是不一样的。这样,在某种状态下,按下某个按键,代表唯一确定的含义。这种处理方法能够称为”状态—按键”法。
3、这样我们能够把程序对应地分成以下三个任务模块。程序开始A:时钟状态(默(处理时钟状态下的所有Ke(处理设置闹铃状态下的B:设置闹铃状KeC:秒表状态(处理秒表状态下的所有Ke这个流程就能够作为主流程(main()函数),当然,A、B、C三框内部的流程仍有待于细化。三.详细设计A框内部要处理的事务见第一部分:功能确认。在此,为了完成时钟调整功能,我们能够定义Key_2为小时调整键,Key_3为分钟调整键,每次按下键,小时数或分钟数加1。当然,当用户没有按键的时候,我们还得经常保持显示屏上的时间刷新。A框
4、:时钟状态下的处理流程:3资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。分析用户按下了什Key_1Key_2Key_3没有按切换到设置时钟调校:时钟调校:刷新显示当结束B框要处理的功能是设置定时闹铃的事务,这里需要预设闹铃时间,同样能够定义Key_2为小时预设键,Key_3为分钟预设键,而Key_1则负责状态切换,当我们预设好时间之后,按下Key_1,就算完成了闹铃预设,让系统离开当前状态,转到秒表状态上去。B框:设置闹铃状态下的处理流程:分析用户按下了什Key_1Key_2Key_3没
5、有按切换到秒表闹铃预设:闹铃预设:显示ON01结束C框要处理的是秒表的功能,这里能够定义Key_2为启动/4资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。暂停键,Key_3为复位清零键,而Key_1依然负责状态切换,用户如果按下Key_1,就让系统离开秒表状态,转到时钟状态上去。C框:设置秒表状态下的处理流程:分析用户按Key_1Key_2Key_3没有按切换到时钟原来停,就秒表的所有显示秒表时结束四.代码框架全局定义:ucharcodezixing[]={0xc0,0xf9,0xa4,
6、0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};ucharcodeziwei[]={0x10,0x20,0x40,0x80};uchar*h,*m;ucharhour=12,min=0,sec=0,h_ding,m_ding,count=0,ms_50,ms_10,miaobiao_sec;5资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。sbitdp=P0^7;sbitk1=P3^2;//3个按键定义sbitk2=P3^3;sbitk3=P3^4;sbitsoun
7、d=P2^3;//蜂鸣器定义sfrZIXING=0x80;//p0口输出字形sfrZIWEI=0xa0;//P2口输出字位typedefenum//枚举类型:3种状态//{CLOCK,SET_RING1,MIAOBIAO_RUN,}STATE;STATEstatus;typedefstruct//定时时间的数据结构//{ucharhour;ucharmin;}DINGSHI_TIME;//C语言中的结构体知识DINGSHI_TIMEdingshi_time;#defineNO_KEY-1//定义一下方
8、便使用6