关于电平触发和边沿触发的不同

 记得以前上大学时,老师讲到下降沿触发时,怎么也分不清下降沿触发与低电平触发有什么区别,乍看,它们似乎是一样的,比如键盘扫描程序扫描键盘是否按下:

某事件设为低电平触发【采用周期时间扫描方式查询触发条件是否成立】,初始化时为高电平即事件未触发,当电平突然改变为低电平,之后扫描程序执行到了这里扫描,则发现变为低电平故执行触发;

某事件设为下降沿触发【采用周期时间扫描方式查询触发条件是否成立】,初始化时为高电平即事件未触发,当电平突然改变为低电平,之后扫描程序执行到了这里扫描,则发现变为低电平故执行触发;

  看上面结果是不是一样的!

  但是,大家千万别忘了一个重要的东西,那就是时间是一直在走的,不会永远定格在某一刻,特别是单片机、计算机,它们只要没给它们指令让他们停止,那么它们就一直在运行,同样键盘扫描程序也一直在周期性地扫描键盘!当下一个扫描周期到了时,你就会发现它们两种触发方式所导致的结果完全是不一样的。

  同样拿键盘扫描做实例,比如一个简单的键盘扫描程序设计,它实现一个键盘对应一个指示灯,当键盘按下一次时(假设按键按下时送人低电平、松开时送入高电平)对应的指示灯状态改变一次,即如果原来是熄灭的,当键盘第一次按下时将使它点亮,当键盘再次按下时它将熄灭,再按下时点亮,再按下时熄灭如此循环。这里我们采用键盘周期性扫描的方法查询按键是否按下:

1、在第1次扫描到键盘按下时,结果如前面我们说的一样,不论是低电平触发还是下降沿触发结果都会触发事件,这里触发时即指示灯点亮。然后程序继续运行……

2、当程序继续运行到第2次扫描键盘时按键还没放开,结果就不一样了。

 低电平触发:触发条件依然为低电平,即触发条件成立,那么执行事件,即指示灯状态改变,此时指示灯由亮变灭

 下降沿触发:触发条件依然为低电平,与下降沿触发条件不成立,那么不执行事件,即指示灯维持原来的亮的状态。

3、当程序继续运行到第3次扫描键盘时按键还没放开,结果:

     低电平触发:触发条件依然为低电平,即触发条件成立,那么执行事件,即指示灯状态改变,此时指示灯由灭变亮

     下降沿触发:触发条件依然为低电平,与下降沿触发条件不成立,那么不执行事件,即指示灯维持原来的亮的状态。

  以上就是最典型的低电平触发与下降沿触发的区别,希望大家能从上面的例子里理解、掌握低电平触发和下降沿触发,并在实际学习和工作中能够灵活运用合适的触发方式。

posted @ 2015-11-17 11:07  Magnum Programm Life  阅读(795)  评论(0编辑  收藏  举报