C51---软件消抖
1.example
#include "reg52.h"
#include "intrins.h" //main.c(11): error C264: intrinsic '_nop_': declaration/activation error,添加这个头文件就可了sbit led1 = P3^7;//引脚位置,根据原理图可知
sbit key1 = P2^1;
sbit key2 = P2^0;void Delay50ms() //@11.0592MHz
{
unsigned char i, j, k;_nop_();
_nop_();
i = 3;
j = 26;
k = 223;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
//使用按键控制灯的亮灭---while循环
while(1){
//软件消抖:感觉被按下,不知道是人为还是抖动的情况下,可以先延时50ms
Delay50ms();
if(key1 == 0 ){
//给led一个低电平,灯亮
led1 = 0;
}
if(key2 == 0 )
{
//给led一个高电平,灯灭
led1 = 1;
}
}
}