这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » xuwenyuan MCU DIY 进程帖 ---按键

共2条 1/1 1 跳转至

xuwenyuan MCU DIY 进程帖 ---按键

菜鸟
2011-11-28 20:39:01     打赏
期待板子的到来,虽然已被签收了,依然期待。。。。
 
言归正传,发布一下我的最新进程,源码。。。。


#include<reg52.h>
sbit p0=P1^0;
sbit p1=P1^1;
sbit p2=P1^2;
sbit p3=P1^3;
void delay(char a)
{

 char b=255,c=5;
 while(a--)
  while(b--)
   while(c--);
}
void main()
{
   char d=0,c=0,b=0,a=0;
 char e=0xff;
 P3=0xff;
 while(1)
 {
  e=P3&0x0f;
  if(e!=0x0f)
  {
    delay(1);
    e=P3&0x0f;
  }
  switch(e)
  {
   case 0x0e:
     if(a==2)a=0;
     p0=a;
     a++;
     break;
   case 0x0d:
     if(b==2)b=0;
     p1=b;
     b++;
     break;
   case 0x0b:
     if(c==2)c=0;
     p2=c;
     c++;
     break;
   case 0x07:
     if(d==2)d=0;
     p3=d;
     d++;
     break;
  }
 }
}







关键词: xuwenyuan     进程     按键    

菜鸟
2011-11-28 20:40:49     打赏
2楼
///************矩阵键盘***************/

#include<reg52.h>
sbit p0=P1^0;
sbit p1=P1^1;
sbit p2=P1^2;
sbit p3=P1^3;
sbit p4=P1^4;
sbit p5=P1^5;
sbit p6=P1^6;
sbit p7=P1^7;
void delay(char a)
{

 char b=255,c=2;
 while(a--)
  while(b--)
   while(c--);
}
void main()
{
   char a,b,e=0xff;
 while(1)
 {
  P3=0xf0;
  a=P3;
  a=a&0xf0;
  if(a!=0xf0)
  {
   delay(1);
   if(a!=0xf0)
   {
    a=P3&0xf0;
    a=a|0x0f;
    P3=a;
    b=P3;
    b=b&0x0f;
    a=a&0xf0;
    e=b+a;
   }
  }
  switch(e)
  {
   case 0xee://1110  1110  //第一列  
     p0=1;
     break;
   case 0xed://1110  1101
     p0=0;
     break;
   case 0xeb://1110  1011
     p1=1;
     break;
   case 0xe7://1110  0111
     p1=0;
     break;
   case 0xde://1101  1110  //第二列 
     p2=1;
     break;
   case 0xdd://1101  1101
     p2=0;
     break;
   case 0xdb://1101  1011
     p3=1;
     break;
   case 0xd7://1101  0111
     p3=0;
     break;
   case 0xbe://1011  1110  //第三列  
     p4=1;
     break;
   case 0xbd://1011  1101
     p4=0;
     break;
   case 0xbb://1011  1011
     p5=1;
     break;
   case 0xb7://1011  0111
     p5=0;
     break;
   case 0x7e://0111  1110  //第四列  
     p6=1;
     break;
   case 0x7d://0111  1101
     p6=0;
     break;
   case 0x7b://0111  1011
     p7=1;
     break;
   case 0x77://0111  0111
     p7=0;
     break;
  }
 }
}


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]