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