标题: 电子琴的制作 [打印本页]

作者: 覃观儒    时间: 2018-6-29 15:24
标题: 电子琴的制作
程序如下 :
#include <AT89X51.H>
unsigned char key,KTH0,KTL0;
sbit sp=P1^0;
unsigned int code tab[]={64021,64103,64260,64400,   
                          64524,64580,64684,64777,
                          64820,64898,64968,65030,
                          65058,65110,65157,65178};

void t0(void) interrupt 1 using 0
{
  TH0=KTH0;
  TL0=KTL0;
  P1_0=~P1_0;
}

//??????
void ys()
{unsigned char aaa,bbb;
for(aaa=200;aaa>0;aaa--)
  for(bbb=0;bbb<20;bbb++);
}
void main(void)
{key=0;TMOD=0X01;EA=1;ET0=1;
while(1)
{
  P2=0x7f;
  if(P2!=0x7f)
  {
   ys();
   while(P2!=0x7f)
    {
  switch(P2)
      {case 0x77:key=7;break;
    case 0x7b:key=4;break;
       case 0x7d:key=1;break;
    case 0x7e:key=0;break;
      }
     P0=~key;
  KTH0=tab[key]/256;
     KTL0=tab[key]%256;
  TR0=1;
    }
   }
  P2=0xbf;
  if(P2!=0xbf)
  {
   ys();
   if(P2!=0xbf)
    {
  switch(P2)
   {case 0xb7:key=8;break;
    case 0xbb:key=5;break;
           case 0xbd:key=2;break;
    case 0xbe:key=13;break;
          }
     P0=~key;
  KTH0=tab[key]/256;
     KTL0=tab[key]%256;
  TR0=1;
    }
   }
  P2=0xdf;
  if(P2!=0xdf)
  {
   ys();
   if(P2!=0xdf)
    {
  switch(P2)
   {case 0xd7:key=9;break;
    case 0xdb:key=6;break;
           case 0xdd:key=3;break;
    case 0xde:key=14;break;
          }
     P0=~key;
  KTH0=tab[key]/256;
     KTL0=tab[key]%256;
  TR0=1;
    }
   }
  P2=0xef;
  if(P2!=0xef)
{
   ys();
   if(P2!=0xef)
    {
  switch(P2)
   {case 0xe7:key=10;break;
    case 0xeb:key=11;break;
           case 0xed:key=12;break;
    case 0xee:key=15;break;
          }
     P0=~key;
  KTH0=tab[key]/256;
     KTL0=tab[key]%256;
  TR0=1;
    }
   }   
}
}
#include <AT89X51.H>
unsigned char key,KTH0,KTL0;
sbit sp=P1^0;
unsigned int code tab[]={64021,64103,64260,64400,   
                          64524,64580,64684,64777,
                          64820,64898,64968,65030,
                          65058,65110,65157,65178};

void t0(void) interrupt 1 using 0
{
  TH0=KTH0;
  TL0=KTL0;
  P1_0=~P1_0;
}

//??????
void ys()
{unsigned char aaa,bbb;
for(aaa=200;aaa>0;aaa--)
  for(bbb=0;bbb<20;bbb++);
}
void main(void)
{key=0;TMOD=0X01;EA=1;ET0=1;
while(1)
{
  P2=0x7f;
  if(P2!=0x7f)
  {
   ys();
   while(P2!=0x7f)
    {
  switch(P2)
      {case 0x77:key=7;break;
    case 0x7b:key=4;break;
       case 0x7d:key=1;break;
    case 0x7e:key=0;break;
      }
     P0=~key;
  KTH0=tab[key]/256;
     KTL0=tab[key]%256;
  TR0=1;
    }
   }
  P2=0xbf;
  if(P2!=0xbf)
  {
   ys();
   if(P2!=0xbf)
    {
  switch(P2)
   {case 0xb7:key=8;break;
    case 0xbb:key=5;break;
           case 0xbd:key=2;break;
    case 0xbe:key=13;break;
          }
     P0=~key;
  KTH0=tab[key]/256;
     KTL0=tab[key]%256;
  TR0=1;
    }
   }
  P2=0xdf;
  if(P2!=0xdf)
  {
   ys();
   if(P2!=0xdf)
    {
  switch(P2)
   {case 0xd7:key=9;break;
    case 0xdb:key=6;break;
           case 0xdd:key=3;break;
    case 0xde:key=14;break;
          }
     P0=~key;
  KTH0=tab[key]/256;
     KTL0=tab[key]%256;
  TR0=1;
    }
   }
  P2=0xef;
  if(P2!=0xef)
{
   ys();
   if(P2!=0xef)
    {
  switch(P2)
   {case 0xe7:key=10;break;
    case 0xeb:key=11;break;
           case 0xed:key=12;break;
    case 0xee:key=15;break;
          }
     P0=~key;
  KTH0=tab[key]/256;
     KTL0=tab[key]%256;
  TR0=1;
    }
   }   
}
}
#include <AT89X51.H>
unsigned char key,KTH0,KTL0;
sbit sp=P1^0;
unsigned int code tab[]={64021,64103,64260,64400,   
                          64524,64580,64684,64777,
                          64820,64898,64968,65030,
                          65058,65110,65157,65178};

void t0(void) interrupt 1 using 0
{
  TH0=KTH0;
  TL0=KTL0;
  P1_0=~P1_0;
}

//??????
void ys()
{unsigned char aaa,bbb;
for(aaa=200;aaa>0;aaa--)
  for(bbb=0;bbb<20;bbb++);
}
void main(void)
{key=0;TMOD=0X01;EA=1;ET0=1;
while(1)
{
  P2=0x7f;
  if(P2!=0x7f)
  {
   ys();
   while(P2!=0x7f)
    {
  switch(P2)
      {case 0x77:key=7;break;
    case 0x7b:key=4;break;
       case 0x7d:key=1;break;
    case 0x7e:key=0;break;
      }
     P0=~key;
  KTH0=tab[key]/256;
     KTL0=tab[key]%256;
  TR0=1;
    }
   }
  P2=0xbf;
  if(P2!=0xbf)
  {
   ys();
   if(P2!=0xbf)
    {
  switch(P2)
   {case 0xb7:key=8;break;
    case 0xbb:key=5;break;
           case 0xbd:key=2;break;
    case 0xbe:key=13;break;
          }
     P0=~key;
  KTH0=tab[key]/256;
     KTL0=tab[key]%256;
  TR0=1;
    }
   }
  P2=0xdf;
  if(P2!=0xdf)
  {
   ys();
   if(P2!=0xdf)
    {
  switch(P2)
   {case 0xd7:key=9;break;
    case 0xdb:key=6;break;
           case 0xdd:key=3;break;
    case 0xde:key=14;break;
          }
     P0=~key;
  KTH0=tab[key]/256;
     KTL0=tab[key]%256;
  TR0=1;
    }
   }
  P2=0xef;
  if(P2!=0xef)
{
   ys();
   if(P2!=0xef)
    {
  switch(P2)
   {case 0xe7:key=10;break;
    case 0xeb:key=11;break;
           case 0xed:key=12;break;
    case 0xee:key=15;break;
          }
     P0=~key;
  KTH0=tab[key]/256;
     KTL0=tab[key]%256;
  TR0=1;
    }
   }   
}
}







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1