久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

輕松搞定獨立鍵盤控制與4*4行列式矩陣鍵盤掃描

作者:佚名   來源:本站原創   點擊數:  更新時間:2012年04月06日   【字體:

電路圖很簡單就不畫了,電路的接法是p1口接矩陣鍵盤,p3口接獨立鍵盤,8個led燈接在p0口上的.


 #include<reg52.h>
 #define uchar unsigned char
 #define uint unsigned int
 #define on 0
 #define off 1
 sbit led1=P0^0;
 sbit led2=P0^1;
 sbit led3=P0^2;
 sbit led4=P0^3;
 sbit led5=P0^4;
 sbit led6=P0^5;
 sbit led7=P0^6;
 sbit led8=P0^7;

 sbit key1=P3^0;
 sbit key2=P3^1;
 sbit key3=P3^2;
 sbit key4=P3^3;
 sbit key5=P3^4;
 sbit key6=P3^5;
 sbit key7=P3^6;
 sbit key8=P3^7;

 void delay_ms(uchar time)
 {
  uchar i,j;
  for(i=time;i>0;i--)
  {
   for(j=85;j>0;j++)
   {;}
  }
 }
 uchar scan_key()
 {
  //uchar i,j;
  //P3=0xff;
  if((P3&0xff)!=0xff)
  {
   delay_ms(30);
   if((P3&0xff)!=0xff)
   {
   
    if(key1==0)
    return(1);
    if(key2==0)
    return(2);
    if(key3==0)
    return(3);
    if(key4==0)
    return(4);
    if(key5==0)
    return(5);
    if(key6==0)
    return(6);
    if(key7==0)
    return(7);
    if(key8==0)
    return(8);
   }
  }
  return 0;
 }

 void main(void)
 {
  uchar key_value;
  key_value=scan_key();
  switch(key_value)
  {
   case 1:led1=on;break;
  case 2:led2=on;break;
  case 3:led3=on;break;
  case 4:led4=on;break;
  case 5:led5=on;break;
  case 6:led6=on;break;
  case 7:led7=on;break;
  case 8:led8=on;break;
  default:P0=0xff;
   }
 }

4*4行列式矩陣鍵盤

 #include<reg52.h>
 sbit led1 =P0^0  ;
 sbit led2 =P0^1  ;
 sbit led3 =P0^2  ;
 sbit led4 =P0^3  ;
 sbit led5 =P0^4  ;
 sbit led6 =P0^5  ;
 sbit led7 =P0^6  ;
 sbit led8 =P0^7  ;
 #define on 0
 #define off 1
 #define uchar unsigned char
 #define uint unsigned int

 void delay_ms(uint time)
 {
  uint i,j;
  for(i=time;i>0;i--)
  for(j=112;j>0;j--)
  {}
 }
 //d/*
 uchar s_scan(void)
 {
  uchar scan_code,temp;
  P1=0xf0;
  if((P1&0xf0)!=0x0f)
  {
   delay_ms(30);
   if((P1&0xf0)!=0xf0)
   {
    scan_code=0xfe;
    while((scan_code&0x10)!=0)
    {
     P1=scan_code;
     if((P1&0xf0)!=0xf0)
     {
      temp=(P1&0xf0)|0x0f;
      while((P1&0xf0)!=0xf0)
      return ((~scan_code)+(~temp));
     }
     else
      scan_code=(scan_code<<1)|0x01;
    }
   }
  }
  return 0;
 }
//*/
/*
 uchar s_scan(void)
 {
  uchar scanh,scanl;
  P1=0xf0;
  if((P1&0xf0)!=0xf0)
  {
   P1=0xf0;
   delay_ms(30);
   if((P1&0xf0)!=0xf0)
   { 
     P1=0xfe ;
     //P1=scanh;
    if((P1&0xf0)!=0xf0)
    {
     P1&=0xf0;
     if(P1==0xe0)
     return(1);
     if(P1==0xd0)
     return(2);
     if(P1==0xb0)
     return(3);
     if(P1==0x70)
     return(4);
    }
      P1=0xfd;
    if((P1&0xf0)!=0xf0)
    {
     P1&=0xf0;
     if(P1==0xe0)
     return(5);
     if(P1==0xd0)
     return(6);
     if(P1==0xb0)
     return(7);
     if(P1==0x70)
     return(8);
    }
     P1=0xfb;
    if((P1&0xf0)!=0xf0)
    {
     P1&=0xf0;
     if(P1==0xe0)
     return(9);
     if(P1==0xd0)
     return(10);
     if(P1==0xb0)
     return(11);
     if(P1==0x70)
     return(12);
    }  
      P1=0xf7;
    if((P1&0xf0)!=0xf0)
    {
     P1&=0xf0;
     if(P1==0xe0)
     return(13);
     if(P1==0xd0)
     return(14);
     if(P1==0xb0)
     return(15);
     if(P1==0x70)
     return(16);
    }
   }
  }
  return 0;
 }
 */
 void main(void)
 { 
 
  uchar key_code;
  while(1)
  {
   key_code=s_scan();
   if(key_code)
   P0=key_code;
 /*    
   delay_ms(300);
   led1=~led1;
   delay_ms(300);
  
   switch(key_code)
   {
    case 1:led1=on;break;
    case 2:led2=on;break;
    case 3:led3=on;break;
    case 4:led4=on;break;
    case 5:led5=on;break;
    case 6:led6=on;break;
    case 7:led7=on;break;
    case 8:led8=on;break;
    default:P0=0xff;
   }
  */
  }
 }
關閉窗口

相關文章

主站蜘蛛池模板: 色成人免费网站 | 黄色男女网站 | 亚洲一区播放 | 亚洲欧美在线视频 | 少妇一区在线观看 | 国产视频在线一区二区 | 国产精品久久久久久久久久久久久久 | 综合久久久 | www.国产91| 99热播精品 | 日韩精品在线一区 | 国产aaaaav久久久一区二区 | 九九热精品在线视频 | 99福利 | 欧美日韩国产一区二区 | 91视频在线 | 国产最新网址 | 日韩国产中文字幕 | 国产视频中文字幕 | 男人天堂视频在线观看 | 久久久久久综合 | 成人在线亚洲 | 日韩精品一区二区三区视频播放 | 欧美日韩中文字幕在线 | 亚洲乱码一区二区三区在线观看 | 国产日韩一区 | 亚洲欧美一区二区三区情侣bbw | 欧美日韩精品一区二区 | 国产在线中文字幕 | 亚州中文字幕 | 精品久久久久久久人人人人传媒 | 91看国产| av在线一区二区三区 | 中文字幕视频在线观看 | 欧美日韩成人在线 | 欧美久久大片 | 国产精品成av人在线视午夜片 | 亚洲永久 | 欧洲一级黄 | 福利片一区二区 | 成人国产午夜在线观看 |