跑步机控制模块的工作流程如图2.1所示,需要注意的是,这个模块也仅仅对用户的输入以及对用户做出反馈,并不涉及对电动机等控制。
图2.1 跑步机控制模块的工作流程图
设计跑步机控制模块时需要考虑如下几个方面的内容。
(1)需要一个提供用户输入的通道以供选择当前的跑步机状态。
(2)需要一个数字显示通道用于显示当前的跑步机速度以及跑步机工作状态。
(3)需要一个良好的算法来区分长时间按键和短时间按键。
(4)需要设计合适的单片机软件。
在PIC单片机应用系统中,常常需要区别一个按键是长时间被按下还是短时间被按下,其有两种检测原理。
(1)使用一个硬件定时器。在第一次检测到按键被按下时,去启动这个定时器,当定时器计数溢出之后去检查按键的状态,如果此时按键还处于被按下的状态,则表明按键被长时间按下了。需要注意的是,在启动定时器之前首先要判断按键是否已经松开,这种检测原理的关键是选择一个合适的定时器溢出时间间隔。缺点是要占用一个硬件定时器资源,优点是可以在该期间进行其他操作。
(2)使用一个软件定时器。在第一次检测到按键被按下时,将这个软件定时器的计数值增加,在多次检查到这个计数值的状态之后判断按键是否仍然被按下,如果被按下,则判断该按键为长时间被按下,否则为短时间被按下。该检测原理的关键同样是选择一个合适的定时器延时时长,缺点是在进行按键定时时不能进行其他操作,优点是不占用硬件定时器。