• 大小: 62KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: C/C++
  • 标签: 51单片机  电子琴  

资源简介

基于51单片机c语言电子琴程序 并用protues 仿真 按键发音

资源截图

代码片段和文件信息

#include  
#include
#include
#include
#define PA XBYTE[0xff7c]
#define PB XBYTE[0xff7d]
#define PC XBYTE[0xff7e]
#define CTRL XBYTE[0xff7f]
void delay(unsigned int z) ;
void display( int *a) ;
void function1 (void) ;
void duolaameng (void);
unsigned char table[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};
unsigned int pin[]={64580646846477764820648986498565030650586511065157651786521765265 65290};
unsigned int syin[8]={ 0};
sbit P20=P2^0;
sbit P21=P2^1;
sbit P17=P1^7;
int yincnt=0i;
unsigned poe;

main()
{  EA=1;
TMOD=0x01;
ET0=1;
PT0=1;
CTRL=0x89;
while(1)
{function1();
duolaameng();
}
}  
void function1 (void)
{ poe=PC;
   switch(poe)
   
  {
  case  0xfe:yin=1;  
                  break;
  case  0xfd:yin=2;  
  break;
  case  0xfb:yin=3;  
  break;
  case  0xf7:yin=4;  
  break;
  case  0xef:yin=5;   
  break;
  case  0xdf:yin=6;  
 ;break;
  case  0xbf:yin=7;
  break;
  case  0x7f:yin=8;   
  break; }
if(poe!=0xff)   
  { if (yin==1) { 
         TH0=pin[yin-1]/256;
TL0=pin[yin-1]%256;
  while(poe==0xfe)
  {delay(20);
   TR0=1;
delay(2);
poe=PC;
display(syin);
  }
  TR0=0;
  
                  }
  if (yin==2){ 
      TH0=pin[yin-1]/256;
TL0=pin[yin-1]%256;
  while(poe==0xfd)
  {
   TR0=1;
delay(1);
poe=PC;
display(syin);
  }
  TR0=0;
  
  }
  if (yin==3) {
TH0=pin[yin-1]/256;
TL0=pin[yin-1]%256;
  while(poe==0xfb)
  {
   TR0=1;
delay(1);
poe=PC;
display(syin);
  }
  TR0=0;
  

  }
  if (yin==4)  {
TH0=pin[yin-1]/256;
TL0=pin[yin-1]%256;
  while(poe==0xf7)
  {
   TR0=1;
delay(1);
poe=PC;
display(syin);
  }
  TR0=0;
  
  }
  if (yin==5)  {
TH0=pin[yin-1]/256;
TL0=pin[yin-1]%256;
  while(poe==0xef)
  
  {
   TR0=1;
delay(1);
poe=PC;
display(syin);
  }
  TR0=0;
  
  }
 if (yin==6)  {
TH0=pin[yin-1]/256;
TL0=pin[yin-1]%256;
  while(poe==0xdf)
  {
   TR0=1;
delay(1);
poe=PC;
display(syin);
  }
  TR0=0;
  
  }
  if (yin==7) {
TH0=pin[yin-1]/256;
TL0=pin[yin-1]%256;
  while(poe==0xbf)
  {
   TR0=1;
delay(1);
poe=PC;
display(syin);
  }
  TR0=0;
  
  }
 if (yin==8)  {
TH0=pin[yin-1]/256;
TL0=pin[yin-1]%256;
  while(poe==0x7f)
  {
   TR0=1;
delay(1);
poe=PC;
display(syin);
  }
  TR0=0;
 
    }  for (i=7;i>0;i--)
     syin[i]=syin[i-1];
syin[0]=yin;
    //if (cnt==8)
//cnt=0;
  } P21=1;display(syin);
  }
  
void display( int *a)
   { unsigned char wei=0xfe;
       int i;
 f

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4968  2009-09-02 21:02  基于51单片机电子琴\2.PWI

     文件       5482  2009-07-16 07:15  基于51单片机电子琴\shiyan2.c

     文件       4501  2009-07-16 07:14  基于51单片机电子琴\shiyan2.hex

     文件         47  2009-07-16 07:14  基于51单片机电子琴\shiyan2.lnp

     文件      18708  2009-07-16 07:14  基于51单片机电子琴\shiyan2.M51

     文件        167  2009-09-04 18:09  基于51单片机电子琴\shiyan2.plg

     文件       2178  2009-07-09 21:16  基于51单片机电子琴\shiyan2.Uv2

     文件          0  2009-07-09 19:08  基于51单片机电子琴\shiyan2_Uv2.Bak

     文件       6376  2005-03-22 15:22  基于51单片机电子琴\STARTUP.A51

     文件      14049  2009-07-16 07:14  基于51单片机电子琴\STARTUP.LST

     文件        758  2009-07-16 07:14  基于51单片机电子琴\STARTUP.OBJ

     文件      19446  2009-07-16 07:14  基于51单片机电子琴\shiyan2.LST

     文件      17686  2009-07-16 07:14  基于51单片机电子琴\shiyan2.OBJ

     文件      15827  2009-07-16 07:14  基于51单片机电子琴\shiyan2

     文件     122797  2009-07-11 11:35  基于51单片机电子琴\Last Loaded 2.DBK

     文件     121637  2009-07-16 07:15  基于51单片机电子琴\2.DSN

    .......      1532  2009-07-23 14:31  基于51单片机电子琴\shiyan2_Opt.Bak

     文件       1082  2009-07-23 14:33  基于51单片机电子琴\shiyan2.Opt

     目录          0  2009-07-15 16:01  基于51单片机电子琴

----------- ---------  ---------- -----  ----

               357241                    19


评论

共有 条评论