zoukankan      html  css  js  c++  java
  • 51单片机实现单键重复按键检测

    /*****************************************************************************
    Copyright: 2013-07-27.version1.0
    File name: key.c
    Description: 自己做的单键识别实现重复按键功能
    Author:
    Version: version1.0
    Date: 2013.7.27
    History: 无
    *******************************************************/
    #include <reg51.h>
    sbit key=P0^0;
    int num=0;

    /*************************************************
    Function: delay_press()
    Description: 键按下时的延时的功能
    Calls: 无
    Called By: key_test()
    Table Accessed: 无
    Table Updated: 无
    Input: void
    Output: 无
    Return: 1->按下
         0->松开
    Others: 无
    *************************************************/
    int  delay_press(void)
    {
     int press=1;
     int i,j;
     for(i=0;i<255;i++)
      for(j=0;j<255;j++)
       press=1;
     press=0;
     return press;
    }

    /*************************************************
    Function: delay()
    Description: 延时的功能
    Calls: 无
    Called By: key_test()
    Table Accessed: 无
    Table Updated: 无
    Input: void
    Output: 无
    Return: void
    Others: 无
    *************************************************/
    void delay(void)
    {
     int i,j;
     for(j=0;j<25;j++)
      for(i=0;i<25;i++);
    }

    /*************************************************
    Function: key_test()
    Description: 单键识别功能
    Calls: delay()
    Called By: main()
    Table Accessed: 无
    Table Updated: 无
    Input: void
    Output: num,按键按一次num自加一
    Return: void
    Others: 无
    *************************************************/
    void key_test(void)
    {
     if(!key)
     {
      delay();
      if(!key)
      {
       num++;
       if(num>255)
       num=0; 
      }
     }while(delay_press()); 
    }
    /*************************************************
    Function: main()
    Description: 程序的主函数
    Calls: key_test()
    Called By: 无
    Table Accessed: 无
    Table Updated: 无
    Input: void
    Output: 无
    Return: void
    Others: 无
    *************************************************/
    void main(void)
    {
     //int i;
     while(1)
     {
      key_test();
      P2=~num; 
     }
    }

  • 相关阅读:
    【分治】动态点分治 ([ZJOI2007]捉迷藏)
    【图论】Tarjan 割点(割顶)
    selenium (五) ActionChains
    selenium (四) WebDriverWait 与 expected_conditions
    selenium (三) 下拉框选项操作
    selenium (二) 浏览器的基本操作
    selenium (一) webdriver 元素定位方法
    selenium 常见问题
    locust 实战:完成用户登录并下单的流程
    MyEclipse 工具过期后,重新激活方法
  • 原文地址:https://www.cnblogs.com/luxiaolai/p/3219914.html
Copyright © 2011-2022 走看看