⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readkey.c

📁 采用PICC18编写的单片机源代码
💻 C
字号:
/**************************读取按键函数*********************
*                                                          
***********************************************************/
#include "key.h"
#include "port.h"
#include "main.h"
#include "delay1ms.h"
#include "DataType.h"
/*************************按键子程序初始化******************
*设置按键相关的端口为输入端口
***********************************************************/
void readkey_initial(void)
{
   PCFG3=0;
   PCFG2=0;
   PCFG1=1;
   PCFG0=1;    //AD通道选择(RE0、RE1、RE2数字通道)
   Tr_KEY0=1;
   Tr_KEY1=1;
   Tr_KEY2=1;
   Tr_KEY3=1;
}
/*************************读取按键0子函数*******************
*入口:  
*出口:按键按下返回TRUE,否则返回FALSE
*占用资源:无                   
**********************************************************/
bool readkey0(void)
{
   uint32 keyPluse;    //存储按键按下延时脉冲
   if(KEY0==1)    //按键未按下
   {
      return FALSE;
   }
   else   //按键按下
   {
      delay(100);   //按键防抖,延时100ms
      //delay(1);
      keyPluse=0;
      while(KEY0==0)    //等待按键抬起
      {
         keyPluse++;    //按键按下脉冲加1
         if(keyPluse>=ConKeyPluse)
         {
            return FALSE;
         }
      };
      return TRUE;
   }     
}
/*************************读取按键1子函数*******************
*入口:  
*出口:按键按下返回TRUE,否则返回FALSE
*占用资源:无                   
**********************************************************/
bool readkey1(void)
{
   uint32 keyPluse;    //存储按键按下延时脉冲
   if(KEY1==1)    //按键未按下
   {
      return FALSE;
   }
   else   //按键按下
   {
      delay(100);   //按键防抖,延时100ms
      //delay(1);
      keyPluse=0;
      while(KEY1==0)    //等待按键抬起
      {
         keyPluse++;    //按键按下脉冲加1
         if(keyPluse>=ConKeyPluse)
         {
            return FALSE;
         }
      };
      return TRUE;
   }     
}
/*************************读取按键2子函数*******************
*入口:  
*出口:按键按下返回TRUE,否则返回FALSE
*占用资源:无                   
**********************************************************/
bool readkey2(void)
{
   uint32 keyPluse;    //存储按键按下延时脉冲
   if(KEY2==1)    //按键未按下
   {
      return FALSE;
   }
   else   //按键按下
   {
      delay(100);   //按键防抖,延时100ms
      //delay(1);
      keyPluse=0;
      while(KEY2==0)    //等待按键抬起
      {
         keyPluse++;    //按键按下脉冲加1
         if(keyPluse>=ConKeyPluse)
         {
            return FALSE;
         }
      };
      return TRUE;
   }     
}
/*************************读取按键3子函数*******************
*入口:  
*出口:按键按下返回TRUE,否则返回FALSE
*占用资源:无                   
**********************************************************/
bool readkey3(void)
{
   uint32 keyPluse;    //存储按键按下延时脉冲
   if(KEY3==1)    //按键未按下
   {
      return FALSE;
   }
   else   //按键按下
   {
      delay(100);   //按键防抖,延时100ms
      //delay(1);
      keyPluse=0;
      while(KEY3==0)    //等待按键抬起
      {
         keyPluse++;    //按键按下脉冲加1
         if(keyPluse>=ConKeyPluse)
         {
            return FALSE;
         }
      };
      return TRUE;
   }     
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -