首先在proteus中点击P放置器件,输入DIPSW来放置1个插件形式的按键,将按键连接在P3的IO口上:
编写程序,通过读取P3的值,赋给P2,来获取按键的输入效果:
#include <REGX52.H>
int main()
{
int i = 0;
while(1)
{
P2_0 = ~P3_0;
}
return 0;
通过按键来控制来控制P1^0口的LED亮灭,增加了消抖和松手检测:
程序示例:
#include <REGX52.H>
sbit LED = P1^0;
sbit KEY = P1^1;
void Delay10ms() //@12.000MHz 延时10毫秒
{
unsigned char i, j;
i = 20;
j = 113;
do
{
while (--j);
} while (--i);
}
int main()
{
while(1)
{
P2 = ~P3; //使用P3_IO口按键来控制P2_IO口的LED灯
if(KEY == 0)
Delay10ms(); //按键消抖
if(KEY == 0)
LED = ~LED; //LED状态取反
while(KEY == 0); //松手检测
}
return 0;
}