独立按键的原理及代码实现
以下为按键的实物图:在按键未按下之前,距离远的两个管脚是相通的,按键按下之后,距离近的的两个管脚是相通的。
独立按键的原理:(准双向IO口就是内部有上拉电阻,P1,P2,P3口都是准双向IO口。P0口没有上拉电阻。)
图1 图2 图3
图1为独立按键的内部电路图,图2为按键按下和放开时的波形图,图3为硬件消抖电路图(这种方法的成本比较高,通常我们使用的是软件消抖)。
代码简单实现:
#include "reg52.h" typedef unsigned char u8; typedef unsigned int u16; sbit led=P2^0; sbit k1=P3^1; void delay(u16 i) { while(i--); } void keypros() { if(k1==0) { delay(1000); if(k1==0) { led=~led; } while(!k1); } } void main() { while(1) { keypros(); } }