专栏中心

EEPW首页 > 专栏 > 单片机4*4键盘的程序

单片机4*4键盘的程序

发布人:wuzhiwei0411 时间:2009-09-02 来源:工程师 发布文章

#include <AT89X51.H>
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
unsigned char temp;
unsigned char key;
unsigned char i,j;
void delay()
{
for(i=10;i>0;i--)
      for(j=500;j>0;j--);
}
void display()
{
   P2=table[key];
}
void main(void)
{
    while(1)
    {
     P1=0xfe;   
     temp=P1;
     temp=temp&0xf0;
     if (temp!=0xf0)
     {
      delay();
      temp=P1;
      temp=temp&0xf0;
      if (temp!=0xf0)
     {
     temp=P1;
      switch(temp)
       {
        case 0xee:
        key=0;
        break;
        case 0xde:
        key=1;
        break;
        case 0xbe:
        key=2;
        break;
        case 0x7e:
        key=3;
        break;
       }
     while(temp!=0xf0)
      {
       temp=P1;
       temp=temp&0xf0;
      }
     display();
  }
     }
     P1=0xfd;
     temp=P1;
     temp=temp&0xf0;
     if (temp!=0xf0)
     {
      delay();
      temp=P1;
      temp=temp&0xf0;
      if (temp!=0xf0)
     {
      temp=P1;
      switch(temp)
       {
        case 0xed:
        key=4;
        break;
        case 0xdd:
        key=5;
        break;
        case 0xbd:
        key=6;
        break;
        case 0x7d:
        key=7;
        break;
       }     
      while(temp!=0xf0)
       {
        temp=P1;
        temp=temp&0xf0;
       }
     while(temp!=0xf0)
      {
       temp=P1;
       temp=temp&0xf0;
      }
      display();
     }
     }
    P1=0xfb;
    temp=P1;
    temp=temp&0xf0;
    if (temp!=0xf0)
    {
     delay();
     temp=P1;
     temp=temp&0xf0;
     if (temp!=0xf0)
     {
      temp=P1;    
      switch(temp)
      {
       case 0xeb:
       key=8;
       break;
       case 0xdb:
       key=9;
       break;
       case 0xbb:
       key=10;
       break;
       case 0x7b:
       key=11;
       break;
      }
      while(temp!=0xf0)
      {
       temp=P1;
       temp=temp&0xf0;
      }
     display();
   }
   }
    P1=0xf7; 
    temp=P1;
    temp=temp&0xf0;
    if (temp!=0xf0)
     {
      delay();
      temp=P1;
      temp=temp&0xf0;
      if (temp!=0xf0)
       {
        temp=P1;      
        switch(temp)
        {
         case 0xe7:
         key=12;
         break;
         case 0xd7:
         key=13;
         break;
         case 0xb7:
         key=14;
         break;
         case 0x77:
         key=15;
         break;
        }
     while(temp!=0xf0)
      {
       temp=P1;
       temp=temp&0xf0;
      }
      display();
      }
      }
}
}

 

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

Diodes推出2.5Gbps MIPI D-PHY ReDriver™信号调节器

《嵌入式系统设计》7-嵌入式系统介绍软件部分(嵌入式系统软件特征到发展历程)

视频 2010-02-02

单片机系统常用软件抗干扰措施

iQOO 15 Ultra搭载第五代骁龙8至尊版打造性能Ultra

AMD推出第二代Kintex UltraScale+中端FPGA,助力智能高性能系统

【IEEE好文分享】7项正在悄悄让世界变得更好的技术

深度解读 | 索尼与TCL的战略合作布局

LED产业百花怒放ISE 2026,聚积科技驱动LED应用不设限

2025年第三季度,海底光电子市场增长32.5%,PTC’26彰显向网状网络架构转型趋势

英飞凌发布2026财年第一季度运营成果: 2026财年顺利开局

《嵌入式系统设计》6-作业1及嵌入式系统介绍(嵌入式实时系统分类到结束)

视频 2010-02-02

单片机系统加密中的动态反跟踪措施

单片机系统的动态加密技术

芯原增强版ISP8200-FS系列IP获ASIL B功能安全认证

2025年,全球平板出货量增长10%,市场增速接近放缓

《嵌入式系统设计》4-嵌入式系统介绍(嵌入式系统定义到Hunter ICC灌溉控制器)

视频 2010-02-02

《嵌入式系统设计》3-嵌入式系统与桌面系统

视频 2010-02-02

四字猜谜

Gao 2003-08-04

单片机系统的电磁兼容性设计

《嵌入式系统设计》5-嵌入式系统介绍(Hunter ICC灌溉控制器到嵌入式实时系统分类)

视频 2010-02-02
更多 培训课堂
更多 焦点
更多 视频

技术专区