首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

Timer撰文防弹跳程序代码

2013-11-26 
Timer撰写防弹跳程序代码防弹跳是避开机械开关产生弹跳的那10 至20 ms,即可达到防弹跳的效果当一台设备同

Timer撰写防弹跳程序代码
防弹跳是避开机械开关产生弹跳的那10 至20 ms,即可达到防弹跳的效果
当一台设备同时有很多个输入开关时,该如何使用一个Timer对所有开关做防弹跳,假如说有8个输入开关,该如何写程序,对Timer设定20~30ms的延迟时间,应用到所有输入上,通常大家都用嵌入式C++或8051撰写,很少人想过用VB写

[解决办法]
这个简单,你设置 8 个计数变量和 8 个标志变量就可以了。

Dim intCount(7) As Integer, blnPushed(7) As Boolean

另外,假定你可以通过一个 Get_Button_State 函数将 8 个按钮的当前状态写入变量 bytStatus。 

Dim bytStatus As Byte

比如你设置 Timer 的 Interval = 3 ms,在每次 Timer 事件时:


bytStaus = Get_Button_State()

For i = 0 To 7
    If bytStaus And 1 Then '检查状态变量最低位所表示的按钮状态,如果是按下
        If intCount(i) < 10 Then intCount(i) = intCount(i) + 1
        If intCount(i) = 10 Then blnPushed(i) = True '连续按下 30 ms 或以上,确认状态
    Else
        intCount(i) = 0       '检测到放开状态,重新计数
        blnPushed(i) = False
    End If
    BytStatus = BytStatus \ 2 '右移一位,以检查下一个按钮状态
Next i



[解决办法]
当然可以。

定时器事件的服务代码,是隔一段时间去检测一下各个按钮或开关的状态,只有连续 n 次检测均有效的才被认为是确定按下。

热点排行