[多功能时钟流程图.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[多功能时钟流程图

多功能时钟流程图 功能确认 时钟功能: 时钟显示小时和分钟 用户可以通过按键调整时钟的时间 无论当前时钟是否在前台显示,时钟始终是运行的。 定时闹铃功能: 用户可以通过按键设置闹铃时间(小时和分钟),设置完成后可以按确定键退出设置。 当系统时钟的时间等于预设的闹铃时间时,系统蜂鸣器响5秒钟。 用户可以设置两个闹铃。 秒表功能: 用户可以通过按键进入秒表功能,也可以退出秒表状态。 秒表高2位显示秒,低2位显示百分之一秒。 可以通过按键暂停、(继续)运行秒表,可以通过按键对秒表清零。 状态分析及模块分割 根据以上的分析,系统共有三个大的功能:时钟、设置定时、秒表,各个功能之间可以通过按键来切换,且各个功能内部仍需要使用按键来处理,故可以考虑将系统定义为三个状态(status):时钟状态、设置定时状态、秒表状态。显然,同一个按键在不同状态下的功能是不一样的。这样,在某种状态下,按下某个按键,代表唯一确定的含义。这种处理方法可以称为“状态—按键”法。 这样我们可以把程序对应地分成以下三个任务模块。 这个流程就可以作为主流程(main()函数),当然,A、B、C三框内部的流程仍有待于细化。 详细设计 A框内部要处理的事务见第一部分:功能确认。在此,为了完成时钟调整功能,我们可以定义Key_2为小时调整键,Key_3为分钟调整键,每次按下键,小时数或分钟数加1。当然,当用户没有按键的时候,我们还得经常保持显示屏上的时间刷新。 A框:时钟状态下的处理流程: B框要处理的功能是设置定时闹铃的事务,这里需要预设闹铃时间,同样可以定义Key_2为小时预设键,Key_3为分钟预设键,而Key_1则负责状态切换,当我们预设好时间之后,按下Key_1,就算完成了闹铃预设,让系统离开当前状态,转到秒表状态上去。 B框:设置闹铃状态下的处理流程: C框要处理的是秒表的功能,这里可以定义Key_2为启动/暂停键,Key_3为复位清零键,而Key_1依然负责状态切换,用户如果按下Key_1,就让系统离开秒表状态,转到时钟状态上去。 C框:设置秒表状态下的处理流程: 代码框架 全局定义: uchar code zixing[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uchar code ziwei[]={0x10,0x20,0x40,0x80}; uchar *h,*m; uchar hour=12,min=0,sec=0,h_ding,m_ding,count=0,ms_50,ms_10,miaobiao_sec; sbit dp=P0^7; sbit k1=P3^2; //3个按键定义 sbit k2=P3^3; sbit k3=P3^4; sbit sound=P2^3; //蜂鸣器定义 sfr ZIXING=0x80; //p0口输出字形 sfr ZIWEI=0xa0; //P2口输出字位 typedef enum //枚举类型:3种状态// { CLOCK, SET_RING1, MIAOBIAO_RUN, }STATE; STATE status; typedef struct //定时时间的数据结构// { uchar hour; uchar min; }DINGSHI_TIME; //C语言中的结构体知识 DINGSHI_TIME dingshi_time; #define NO_KEY -1 //定义一下方便使用 #define KEY_1 1 #define KEY_2 2 #define KEY_3 3 主程序: Main() { //一些初始化的工作,如状态赋初值,寄存器设置等 while(1) //程序循环 { switch(status) { case CLOCK: key_process_clock(); // 处理时钟状态下的按键和显示// break; case SET_RING1: key_process_set_dingshi(); //处理设置定时状态下的按键和显示// break; case MIAOBIAO_RUN: key_process_miaobiao_run(); //处理秒表状态下的按键和显示// break; } if( (hour==dingshi_time.hour) //定时响铃// (min==dingshi_time.min) (sec5)) ) sound=0; el

文档评论(0)

xiaoyi2013 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档