欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

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

單片機矩陣鍵盤的控制

作者:李俊軒   來源:本站原創   點擊數:  更新時間:2013年07月18日   【字體:

本來感覺矩陣鍵盤很簡單的,沒有想到編了一個程序,編了一個下午,哎,難怪有人說,如果技術和科學有你理想那么容易,那它就不是科學了。在參考http://www.raoushi.com/mcuteach/226.html 后終于把矩陣鍵盤里的16個按鍵控制數碼管顯示0至16的效果實現了出來,呵呵,功夫不負有心人,雖然編了好久,好累,好困。但還是一個字,值!下面看下程序吧,如果各位高手看到了我程序有所不足的,麻煩指點。

下面是我的程序:#include<reg52.h>
unsigned char temp;
char x;
unsigned char number[]={     
0x3f,
0x06,
0x5b,
0x4f,
0x66,
0x6d,
0x7d,
0x07,
0x7f,
0x6f,
0x77,
0x7c,
0x39,
0x5e,
0x79,
0x71
};        //¶¨ÒåÊý×é0ÖÁ15
void delay()
{
 int i,j;
 for(i=5;i<0;i--)
 for(j=120;j<0;j--);
}        //ÑÓʱ³ÌÐò 
void main()

 P1 = 0x00;     //³ÌÐò¿ªÊ¼Ê±ÊýÂë¹Ü²»ÏÔʾ
 while(1)
 {
 P3 = 0x7f;     //ʹ°´¼üS1ÖÁS4ÏÔʾ0ÖÁ3
 temp = P3;
 temp = temp & 0x0f;
 while(temp != 0x0f)
 {
  delay();
   temp = P3;
  temp = temp & 0x0f;
 
  while(temp != 0x0f)
  { 
   temp = P3;
   switch(temp)
   {
    case 0x7e:x=0;
     break;
    case 0x7d:x=1;
     break;
    case 0x7b:x=2;
     break;
    case 0x77:x=3;
     break;
   }
   while(temp!=0x0f)   //Ìø³ö
   {
    temp=P3;
    temp=temp&0x0f;
   }
    P1 = number[x];

  }
  
 }


//cond

 P3 = 0xbf;       //ʹ°´¼üS5ÖÁS8ÏÔʾ4ÖÁ7
 temp = P3;
 temp = temp & 0x0f;
 while(temp != 0x0f)
 {
  delay();
   temp = P3;
  temp = temp & 0x0f;
 
  while(temp != 0x0f)
  { 
   temp = P3;
   switch(temp)
   {
    case 0xbe:x=4;
     break;
    case 0xbd:x=5;
     break;
    case 0xbb:x=6;
     break;
    case 0xb7:x=7;
     break;
   }
   while(temp!=0x0f)  //Ìø³ö
   {
    temp=P3;
    temp=temp&0x0f;
   }
   
    P1 = number[x];
  }
  }

//thirth

P3 = 0xdf;       //ʹS9ÖÁS12ÏÔʾ8ÖÁb
 temp = P3;
 temp = temp & 0x0f;
 while(temp != 0x0f)
 {
  delay();
   temp = P3;
  temp = temp & 0x0f;
 
  while(temp != 0x0f)
  { 
   temp = P3;
   switch(temp)
   {
    case 0xde:x=8;
     break;
    case 0xdd:x=9;
     break;
    case 0xdb:x=10;
     break;
    case 0xd7:x=11;
     break;
   }
   while(temp!=0x0f)    //Ìø³ö
   {
    temp=P3;
    temp=temp&0x0f;
   }
   
    P1 = number[x];

  }
  
 }

//four
P3 = 0xef;         //ʹS13ÖÁS16ÏÔʾCÖÁF
 temp = P3;
 temp = temp & 0x0f;
 while(temp != 0x0f)
 {
  delay();
   temp = P3;
  temp = temp & 0x0f;
 
  while(temp != 0x0f)
  { 
   temp = P3;
   switch(temp)
   {
    case 0xee:x=12;
     break;
    case 0xed:x=13;
     break;
    case 0xeb:x=14;
     break;
    case 0xe7:x=15;
     break;
   }
   while(temp!= 0x0f)
   {
    temp = P3;
    temp = temp&0x0f;
   }
   while(temp!=0x0f)        //Ìø³ö
   {
    temp=P3;
    temp=temp&0x0f;
   }
    P1 = number[x];

  }
  
 }
 }
}
感覺好長,如果厲害點的話,應該可以做編得更短的,有時間只有再把它完善了。

關閉窗口

相關文章