找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1228|回复: 0
收起左侧

电子琴的制作

[复制链接]
ID:361803 发表于 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;
    }
   }   
}
}


回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表