状态机设计:抢答系统实现方案
状态机设计:抢答系统实现方案
该抢答系统包含以下功能:
- 显示倒计时时间,单位为0.1s,保留1位小数;显示第一位抢答者ID号(从1开始,0表示无抢答者)
- 抢答开始后,如倒计时未结束前有违规抢答者,则记录第一违规抢答者ID号;
- 倒计时为0结束后有抢答者,则记录第一抢答者ID号,抢答有效;
- 设置 S2 为抢答启动/重启键,每次按下后即启动抢答前的5s倒计时
- S0/S1/S3/S4 键由4位参赛者进行抢答操作,对应ID号为S0/S1/S3/S4;
- 在启动抢答前的 5s 倒计时期间,如果检测到S0/S1/S3/S4键中有抢答动作,则立即停止倒计时,并显示第一违规抢答者ID号,同时通过指示灯闪烁3s进行提醒;
- 倒计时结束后,如果检测到 S0/S1/S3/S4键中有抢答动作,则立即显示第一抢答者ID号,同时点亮指示灯表示抢答有效,直到启动下一次抢答时熄灭;
- 支持查阅功能,通过开关K0~K3显示某位参赛者从倒计时结束开始抢答到按下抢答键的时间,时间精度1ms。
状态机设计如下:
- 状态1:等待抢答启动
- 当S2按下后,进入状态2
- 状态2:抢答前的5s倒计时
- 显示倒计时时间,单位为0.1s,保留1位小数
- 如果S0/S1/S3/S4键有抢答动作,则立即进入状态4
- 如果倒计时结束,进入状态3
- 状态3:倒计时结束,等待抢答
- 如果S0/S1/S3/S4键有抢答动作,则记录第一抢答者ID号,点亮指示灯,进入状态5
- 否则,进入状态1
- 状态4:违规抢答
- 记录第一违规抢答者ID号,闪烁指示灯3s,进入状态1
- 状态5:抢答有效
- 持续点亮指示灯,支持查阅功能
- 如果K0~K3开关打开,则显示某位参赛者从倒计时结束开始抢答到按下抢答键的时间,时间精度1ms
- 如果S0/S1/S3/S4键有抢答动作,则记录第一抢答者ID号,进入状态6
- 状态6:抢答结束
- 熄灭指示灯,进入状态1
状态转换说明
- 状态2和状态3之间的转换可以通过定时器完成
- 状态4和状态5之间的转换可以通过闪烁指示灯3s完成
- 状态5和状态6之间的转换可以通过按下S2键完成
总结
该状态机设计实现了抢答系统的基本功能,并考虑了违规抢答、抢答有效性判断和时间精度要求,能够满足实际应用场景需求。
原文地址: https://www.cveoy.top/t/topic/nChG 著作权归作者所有。请勿转载和采集!