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

📄 key.c

📁 本设计主要由数字信号发生器和逻辑分析仪组成
💻 C
字号:
/* KEY.C */
#include <reg51.h>
#include "stdio.h"

extern void print(char,char *);
extern void delay(int);

extern char mess[];

unsigned char bitcount;
unsigned char  key_num;
unsigned char key_val;
unsigned char is_up;
unsigned char press;

int item;

void init_kb(void)
{
        IT1=1;
        EX1=1;
        IE1=0;
        bitcount=11;
        EA=1;
}
decode(char c)
{
           switch(c)
           {
               case 0x69 : key_num='1'; break;
               case 0x72 : key_num='2'; break;
               case 0x7a : key_num='3'; break;
               case 0x6b : key_num='4'; break;
               case 0x73 : key_num='5'; break;
               case 0x74 : key_num='6'; break;
               case 0x6c : key_num='7'; break;
               case 0x75 : key_num='8'; break;
               case 0x7d : key_num='9'; break;
               case 0x70 : key_num='0'; break;
               case 0x71 : key_num='.'; break;
               case 0x76 : key_num=1;   break;
               case 0x05 : key_num=2;   break;
               case 0x06 : key_num=3;   break;
               case 0x04 : key_num=4;   break;
               case 0x0c : key_num=5;   break;
               case 0x66 : key_num=6;   break;
               case 0x5a : key_num=7;   break;
               default: key_num=0;      break;

          }
}
void key() interrupt 2 using 2
{
        static unsigned char dat;
        press=1;
        if(bitcount<11 && bitcount>2)
        {
            dat=(dat>>1);
            if(P1&0x08)
               dat=dat|0x80;
         }
         if(--bitcount==0)
         {
             if(dat==0xf0)
                is_up=1;
             else
                key_val=dat;
             decode(key_val);
             bitcount=11;
          }

}
clr_key()
{
        key_val=0;
        key_num=0;
        press=0;
        is_up=0;
}


⌨️ 快捷键说明

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