查找相关资料,并使用单片机(型号不限)设计一个4*4键盘与四位数七段数码管组成的显示电路,要求按下的键

[复制链接]
查看11 | 回复0 | 2010-12-1 22:34:25 | 显示全部楼层 |阅读模式
数码管为共阳的  #include  unsigned char key;  char code tab[4][4]={{0xc0,0xf9,0xa4,0xb0},  {0x99,0x92,0x82,0xf8},  {0x80,0x90,0x88,0x83},  {0xc6, 0xa1,0x86, 0x8e} };  void delay(unsigned char a)  {  unsigned char i;  while(a--)  for(i=100;i>0;i--);  }  char ksan()  {  unsigned char hang,lie;  if(P1!=0x0f)  delay(5);  if(P1!=0x0f)  {  switch(P1&0x0f)  {  case 0x0e:hang=0;break;  case 0x0d:hang=1;break;  case 0x0b:hang=2;break;  case 7:hang=3;break;  }  P1=0xf0;  switch(P1&0xf0)  {  case 0xe0:lie=0;break;  case 0xd0:lie=1;break;  case 0xb0:lie=2;break;  case 0x70:lie=3;break;  }  P1=0x0f;  key=tab[hang][lie];  }  return (key);  }  void main()  {  P1=0x0f;  while(1)  {  ksan();  if(key!=0)  {  P2=key;  }  else  {  P2=0xff;  }  }  }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行