记得以前上大学时,老师讲到下降沿触发时,怎么也分不清下降沿触发与低电平触发有什么区别,乍看,它们似乎是一样的,比如键盘扫描程序扫描键盘是否按下:
某事件设为低电平触发【采用周期时间扫描方式查询触发条件是否成立】,初始化时为高电平即事件未触发,当电平突然改变为低电平,之后扫描程序执行到了这里扫描,则发现变为低电平故执行触发;
某事件设为下降沿触发【采用周期时间扫描方式查询触发条件是否成立】,初始化时为高电平即事件未触发,当电平突然改变为低电平,之后扫描程序执行到了这里扫描,则发现变为低电平故执行触发;
看上面结果是不是一样的!
但是,大家千万别忘了一个重要的东西,那就是时间是一直在走的,不会永远定格在某一刻,特别是单片机、计算机,它们只要没给它们指令让他们停止,那么它们就一直在运行,同样键盘扫描程序也一直在周期性地扫描键盘!当下一个扫描周期到了时,你就会发现它们两种触发方式所导致的结果完全是不一样的。
同样拿键盘扫描做实例,比如一个简单的键盘扫描程序设计,它实现一个键盘对应一个指示灯,当键盘按下一次时(假设按键按下时送人低电平、松开时送入高电平)对应的指示灯状态改变一次,即如果原来是熄灭的,当键盘第一次按下时将使它点亮,当键盘再次按下时它将熄灭,再按下时点亮,再按下时熄灭如此循环。这里我们采用键盘周期性扫描的方法查询按键是否按下:
1、在第1次扫描到键盘按下时,结果如前面我们说的一样,不论是低电平触发还是下降沿触发结果都会触发事件,这里触发时即指示灯点亮。然后程序继续运行……
2、当程序继续运行到第2次扫描键盘时按键还没放开,结果就不一样了。
低电平触发:触发条件依然为低电平,即触发条件成立,那么执行事件,即指示灯状态改变,此时指示灯由亮变灭;
下降沿触发:触发条件依然为低电平,与下降沿触发条件不成立,那么不执行事件,即指示灯维持原来的亮的状态。
3、当程序继续运行到第3次扫描键盘时按键还没放开,结果:
低电平触发:触发条件依然为低电平,即触发条件成立,那么执行事件,即指示灯状态改变,此时指示灯由灭变亮;
下降沿触发:触发条件依然为低电平,与下降沿触发条件不成立,那么不执行事件,即指示灯维持原来的亮的状态。
以上就是最典型的低电平触发与下降沿触发的区别,希望大家能从上面的例子里理解、掌握低电平触发和下降沿触发,并在实际学习和工作中能够灵活运用合适的触发方式。