dela2000 发表于 2014-3-30 10:26:29

计时器按键锁定思路求助(附电路图)

配置说明:共5个定时器,以分钟计时,对应5个按键(S0~S4,轻触按键),每个按键对应相应两个数码管,每个按键两种状态:1->打开计时,0->关闭计时
过程:每个定时器计时需求为0~65分钟,按任意按键,启动相应计时器,在0~5分钟内,如果按下其他按键,对应应计时器不可启动,但可以关闭(也就是如果之前其他计时器已经计时过了5分钟,比如10分钟)
当然,在0~5分钟计时的定时器可以按键关闭。
我想的是在其中一个定时器启动五分钟,对按键做屏蔽处理,但是这样就无法关闭已开始计时器了
while(1)
    {
      unsigned char key_value;
      key_value = read_key() | MASK;
                switch(key_value)
                {
                        case 0x1e:   T = ~T;break;        //读取一次按键,将其状态反转0n-off(结构),1为开启,0为停止
                        case 0x1d:   T = ~T;break;
                        case 0x1b:   T = ~T;break;
                        case 0x17:   T = ~T;break;
                        case 0x0f:   T = ~T;break;
                }

上图说明一下:



attach://179695.pdf

sf49ers 发表于 2014-3-30 10:54:39

不要直接屏蔽按键。把定时器运行分成几个状态:关闭、运行、停止,根据按键和当前运行状态、时间确定状态转移图

dela2000 发表于 2014-4-3 16:25:24

sf49ers 发表于 2014-3-30 10:54
不要直接屏蔽按键。把定时器运行分成几个状态:关闭、运行、停止,根据按键和当前运行状态、时间确定状态转 ...

恩,按照你的思路,已经解决了~谢谢!
页: [1]
查看完整版本: 计时器按键锁定思路求助(附电路图)