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

  • 相关阅读:
    敏捷软件开发实践-Release Process/Release Plan(转)
    《敏捷软件开发-原则、方法与实践》-Robert C. Martin读书笔记(转)
    测试RESTful API利器-Postman
    backbone.js初探(转)
    JavaScript有关的10个怪癖和秘密(转)
    Restful Web Service初识
    JSTL标签库的使用
    JavaScript处理JSON
    绑定QQ登录 PHP OAuth详解(转)
    mysql if exist坑
  • 原文地址:https://www.cnblogs.com/luxiaolai/p/3219914.html
Copyright © 2011-2022 走看看