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

📄 4x4 key.txt

📁 4x4判健程序
💻 TXT
字号:
#include"reg51.h"
#include <intrins.h>
#define uchar   unsigned char
#define uint    unsigned int
void  key();
void    debar();
void    read_key();
 extern uchar   comp;             //定义全局变量
  uchar code tab[]={0xe7,0xd7,0xb7,0x77,0xeb,0xdb,0xbb,0x7b,0xed,0xdd,0xbd,0x7d,0xee,0xde,0xbe,0x7e};
  uchar code tab1[]={0x09,0x7d,0x07,0x15,0x71,0x91,0x81,0x3d,0x01,0x11,0x21,0xc1,0x8b,0x45,0x83,0xa3};

/***********************
    10ms秒延时
***********************/
void  delay_10us()
{   _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
} 

void    delay_10ms()
{   int i;  
    for(i=0;i<1000;i++)
       {   delay_10us();
       }   
}


/***********************
         判键
***********************/

void  key()
{   uchar temp,asm; 
    P1=0x0f;
    comp=0x0f;
    temp=P1&comp;
    
    P1=0xf0;
    comp=0xf0;
    asm=P1&comp;
    comp=temp|asm;
    if(comp==0xff)
        {   key();
        }  
    else 
        {   debar();
        }
}



/***************************
         消抖程序
***************************/
void    debar()
{   delay_10ms(); 
    if(comp==0xff)
        {   key();
        }
    else
        {   read_key();
        }          
}


/*************************
      读键并显示出键码
*************************/  
void    read_key()
{   uint i,number;
    for(i=0;i<16;i++)
        {   if(comp==tab[i])
             number=i;
             SBUF=tab1[number];   
        }   
}         

⌨️ 快捷键说明

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