标题: 单片机矩阵按键 原理图+源代码 [打印本页]

作者: 千万11    时间: 2022-8-27 10:06
标题: 单片机矩阵按键 原理图+源代码
程序:
#include<at89x51.h>
unsigned char LED[]={0xC0,0xF9,0xA4,0xB0,0x99,
                     0x92,0x82,0xF8,0x80,0x90,
                     0x88,0x83,0xc6,0xa1,0x86,
                     0x8e,0x89,0xc7,0x8c,0xc1,
                     0xbf,0x7f,0xff};
void delay(void)
{
   unsigned char i;
   for(i=200;i>0;i--);
}
void main()
{
  unsigned char k,key;
  P0=0XFF;P2=1;P3=0XFF;
  while(1)
  {
    P2=0;
    P3=0XFE;k=P3;if(k==0xee){delay();key=0;}else{key=22;}
           if(k==0xde){delay();key=1;}
           if(k==0xbe){delay();key=2;}
           if(k==0x7e){delay();key=3;}
    P3=0XFd;k=P3;if(k==0xed){delay();key=4;}
           if(k==0xdd){delay();key=5;}
           if(k==0xbd){delay();key=6;}
           if(k==0x7d){delay();key=7;}
    P3=0XFb;k=P3;if(k==0xeb){delay();key=8;}
           if(k==0xdb){delay();key=9;}
           if(k==0xbb){delay();key=10;}
           if(k==0x7b){delay();key=11;}
    P3=0XF7;k=P3;if(k==0xe7){delay();key=12;}
           if(k==0xd7){delay();key=13;}
           if(k==0xb7){delay();key=14;}
           if(k==0x77){delay();key=15;}
                   P0=LED[key];
  }
}

仿真图:







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1