zoukankan      html  css  js  c++  java
  • C51 独立按键 个人笔记

    独立按键类似于一个开关,按下时开关闭合

    防抖

    硬件防抖

    软件防抖

    通过延时,滤掉抖动的部分

    电路图

    普中科技的开发板,独立按键电路图如下

    判断按键按下

    因此判断是否按下开关的方法是看引脚是否为低电平(按下则接地了)

    独立按键控制led和蜂鸣器代码

    #include <reg51.h>
    typedef unsigned int u16;		 
    typedef unsigned char u8;
    #define delaytime 500000
    sbit led = P0^0;
    sbit k1 = P1^0;
    sbit beep = P0^7;
    
    void delay(u16 i)
    {
    	while(i--);
    }
    void ring()
    {	
    	beep=~beep;
    	delay(200);	
    }
    void keypros()
    {
    	if(k1==0)	   //按键按下
    	{
    		delay(1000);		  //过十毫秒	 (防抖)
    		if(k1==0)	          //还是按下了
    		{
    			led = ~led;
    			
    		}
    		//	确保一次按键只调用一次keypros
    		while(!k1)
    		{
    			ring();
    		}   //按键按下时一直在此处循环,松开时离开,
    	}
    }
    void main(void)
    {
    	led = 0;  //led is off by default
    	while(1)
    	{
    	   keypros();
    	}
    }
    
  • 相关阅读:
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
  • 原文地址:https://www.cnblogs.com/YuQiao0303/p/9897194.html
Copyright © 2011-2022 走看看