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;
        }
    }
}

你可能感兴趣的:(C51,c语言,物联网)