第1页共6页Key_1Key_1Key_1程序开始A:时钟状态(默认)B:设置闹铃状态C:秒表状态(处理时钟状态下的所有事务)(处理设置闹铃状态下的所有事务)(处理秒表状态下的所有事务)编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共6页多功能时钟流程图一.功能确认时钟功能:1
时钟显示小时和分钟2
用户可以通过按键调整时钟的时间3
无论当前时钟是否在前台显示,时钟始终是运行的
定时闹铃功能:1
用户可以通过按键设置闹铃时间(小时和分钟),设置完成后可以按确定键退出设置
当系统时钟的时间等于预设的闹铃时间时,系统蜂鸣器响5秒钟
用户可以设置两个闹铃
秒表功能:1
用户可以通过按键进入秒表功能,也可以退出秒表状态
秒表高2位显示秒,低2位显示百分之一秒
可以通过按键暂停、(继续)运行秒表,可以通过按键对秒表清零
二.状态分析及模块分割根据以上的分析,系统共有三个大的功能:时钟、设置定时、秒表,各个功能之间可以通过按键来切换,且各个功能内部仍需要使用按键来处理,故可以考虑将系统定义为三个状态(status):时钟状态、设置定时状态、秒表状态
显然,同一个按键在不同状态下的功能是不一样的
这样,在某种状态下,按下某个按键,代表唯一确定的含义
这种处理方法可以称为“状态—按键”法
这样我们可以把程序对应地分成以下三个任务模块
这个流程就可以作为主流程(main()函数),当然,A、B、C三框内部的流程第2页共6页第1页共6页分析用户按下了什么键
切换到设置闹铃状态,显示ON01Key_1键:时钟调校:小时数加1Key_2键:时钟调校:分钟数加1Key_3键:结束分析用户按下了什么键
切换到秒表状态调用秒表显示Key_1键:闹铃预设:小时数加1Key_2键:闹铃预设:分钟数加1Key_3键:结束显示ON01或者预设的闹铃时间没有按键:编