4*4键盘扫描C程序

来源:互联网 发布:达索plm软件 编辑:程序博客网 时间:2024/05/21 05:19

 4*4键盘扫描C程序

#include<reg52.h>
#define uchar unsigned char
 uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,
    0x92,0x82,0xF8,0x80,0x90,
    0x88,0x83,0xC6,0xA1,0x86,0x8E};
uchar temp,num;
void display(uchar);
void delay(uchar a)
{
  uchar b;
  for(;a>0;a--)
    for(b=200;b>0;b--);
}
void main()
{
  while(1)
  {
    P2=0x7f;
 temp=P2;
 temp&=0x0f;
 if(temp!=0x0f)
    {
 delay(50);
 if(temp!=0x0f)
 { 
   switch(temp)
   {
     case 0x07: num="0"; break;
     case 0x0b: num="1"; break;
  case 0x0d: num="2"; break;
     case 0x0e: num="3"; break;
       }
 }
 }
 P2=0xbf;
 temp=P2;
 temp&=0x0f;
 if(temp!=0x0f)
 {
 delay(50);
 if(temp!=0x0f)
 {
   switch(temp)
   {
     case 0x07: num="4"; break;
     case 0x0b: num="5"; break;
     case 0x0d: num="6"; break;
     case 0x0e: num="7"; break;
       }
    }
 }
 P2=0xdf;
 temp=P2;
 temp&=0x0f;
 if(temp!=0x0f)
 {
 delay(50);
 if(temp!=0x0f)
 {
   switch(temp)
   {
     case 0x07: num="8"; break;
     case 0x0b: num="9"; break;
     case 0x0d: num="10"; break;
     case 0x0e: num="11"; break;
       }
    }
 }
 P2=0xef;
 temp=P2;
 temp&=0x0f;
 if(temp!=0x0f)
 {
 delay(50);
 if(temp!=0x0f)
 {
   switch(temp)
   {
     case 0x07: num="12"; break;
     case 0x0b: num="13"; break;
  case 0x0d: num="14"; break;
     case 0x0e: num="15"; break;
       }
 }
 }
 display(num);
  }
}
void display(uchar i)
{
  P3=0xf0;
  P0=table[i];
}

原创粉丝点击