⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 一个基于AD9954的430单片机编程
💻 C
📖 第 1 页 / 共 2 页
字号:
  MenuCur->sub=NULL;
  MenuCur->pre=&PSKMod;
  MenuCur->nxt=NULL;
  
  MenuCur=&STuneMod;
  MenuDisp();
/*------------------------------------------------------------------------------------------------------------*/
  
  while(1)
  {
    while(!KeyBuf);
    key=KeyBuf;
    KeyBuf=0;
    if(key==164)        //power
    {
//      cmdn=0;

      cmd[0]=0;
      cmd[1]=0;
      cmd[2]=0x24;
      AD9954PutCmd(CFR2,3,cmd);
      cmd[0]=0x02;
      cmd[1]=0x8F;
      cmd[2]=0x5C;
      cmd[3]=0x28;
      AD9954PutCmd(FTW0,4,cmd);
      for(n=4;n>0;n--) cmd[n+1]=cmd[n];
      cmd[1]=cmd[0];
      cmd[0]=FTW0;
      FYDPutHex(0x90,5,cmd);
      for(n=0;n<12;n++) cursor[n]=0x20;
      FYDPutWords(0x88,6,cursor);
//      modifycmd=0;
    }
/*
    else if(key==181)     //菜单
    {
      for(n=0;n<12;n++) cursor[n]=0x20;
      cursor[cmdn]=0x18;      
      FYDPutWords(0x88,6,cursor);
      modifycmd=1;
    }
    else if(key==157)     //OK
    {
      modifycmd=0;
      for(n=0;n<12;n++) cursor[n]=0x20;
      FYDPutWords(0x88,6,cursor);
      if(cmdn==0) AD9954PutCmd(cmd[0],5,&cmd[1]);
      else AD9954PutCmd(cmd[0],cmdn/2-1,&cmd[1]);
    }
*/
    else if(key==188)       //音量减
    {
      P5OUT&=~AD9954_PS1;
/*
      for(n=0;n<100;n++);
      P5OUT|=AD9954_IOUPDATE;
      for(n=0;n<100;n++);
      P5OUT&=~AD9954_IOUPDATE;
*/
    }
    else if(key==172)          //音量加
    {
      P5OUT|=AD9954_PS1;
/*
      for(n=0;n<100;n++);
      P5OUT|=AD9954_IOUPDATE;
      for(n=0;n<100;n++);
      P5OUT&=~AD9954_IOUPDATE;
*/
    }
    else if(key==252)       //频道下
    {
      P5OUT&=~AD9954_PS0;
/*
      for(n=0;n<100;n++);
      P5OUT|=AD9954_IOUPDATE;
      for(n=0;n<100;n++);
      P5OUT&=~AD9954_IOUPDATE;
*/
    }
    else if(key==236)          //频道上
    {
      P5OUT|=AD9954_PS0;
/*
      for(n=0;n<100;n++);
      P5OUT|=AD9954_IOUPDATE;
      for(n=0;n<100;n++);
      P5OUT&=~AD9954_IOUPDATE;
*/
    }
    else if(key==132)         //静音
    {
      cmd[0]=0x80;
      cmd[1]=0x00;
      cmd[2]=0x00;
      cmd[3]=0x00;
      AD9954PutCmd(CFR1,4,cmd);           //初始化成RAM控制频率
      for(n=0;n<200;n++);
    }
    else if(key==192)           //1
    {
      STune();
    }
    else if(key==160)           //2
    {
      FSK();
    }
    else if(key==224)           //3
    {
      PSK();
    }
    else if(key==144)           //4
    {
      FM();
    }
    else if(key==208)            //5
    {
      while(1)
      {
        for(n=0;n<200;n++);
        P5OUT|=AD9954_PS0;
        for(n=0;n<200;n++);
        P5OUT&=~AD9954_PS0;        
      }
/*
      cmd[0]=0x00;
      cmd[1]=0x00;
      cmd[2]=0x00;
      cmd[3]=0x00;
      cmd[4]=0x00;
      AD9954PutCmd(RSCW0,5,cmd);
      cmd[0]=0x00;
      cmd[1]=0x00;
      cmd[2]=0x01;
      cmd[3]=0x04;
      cmd[4]=0x00;
      AD9954PutCmd(RSCW1,5,cmd);
      cmd[0]=0x00;
      cmd[1]=0x00;
      cmd[2]=0x02;
      cmd[3]=0x08;
      cmd[4]=0x00;
      AD9954PutCmd(RSCW2,5,cmd);
      cmd[0]=0xFF;
      cmd[1]=0xFF;
      cmd[2]=0x7F;
      cmd[3]=0x03;
      cmd[4]=0x6C;
      AD9954PutCmd(RSCW3,5,cmd);
      
      P5OUT&=~AD9954_PS0;
      P5OUT&=~AD9954_PS1;
      cmd[0]=0x00;
      cmd[1]=0xA3;
      cmd[2]=0xD7;
      cmd[3]=0x0A;
      AD9954PutCmd(RAM,4,cmd);              //PS0=0,PS1=0
      P5OUT&=~AD9954_PS1;
      P5OUT|=AD9954_PS0;
      cmd[0]=0x00;
      cmd[1]=0x51;
      cmd[2]=0xEB;
      cmd[3]=0x85;
      AD9954PutCmd(RAM,4,cmd);              //PS0=1,PS1=0
      P5OUT&=~AD9954_PS0;
      P5OUT|=AD9954_PS1;
      cmd[0]=0x00;
      cmd[1]=0x10;
      cmd[2]=0x62;
      cmd[3]=0x4D;
      AD9954PutCmd(RAM,4,cmd);              //PS0=0,PS1=1

      P5OUT|=AD9954_PS1;
      P5OUT|=AD9954_PS0;
      while(0<(SPI0Sendn-SPI0Datn)&&(SPI0Sendn-SPI0Datn)<3);
      SPI0SendDat[SPI0Datn++]=AD9954_CS;
      SPI0SendDat[SPI0Datn++]=RAM;
      for(n=0x00;n<0x80;n++)
      {
        cmd[0]=0x00;
        cmd[1]=0x00;
        cmd[2]=((char *)FMTab3)[2*n+1];
        cmd[3]=((char *)FMTab3)[2*n];
        AD9954PutRam(cmd);
//        for(dt=0;dt<1000;dt++);
      }
      while(!(U0TCTL&TXEPT));
      P5OUT|=AD9954_IOUPDATE;
      for(n=0;n<100;n++);
      P5OUT&=~AD9954_IOUPDATE;
                    //PS0=1,PS1=1
*/
    }
/*
    else if(modifycmd)      //可以编辑命令
    {
      if(key==192)              //1
      {
        if(cmdn%2)
        {
          cmd[cmdn/2]&=0xF0;
          cmd[cmdn/2]+=0x01;
        }
        else
        {
          cmd[cmdn/2]&=0x0F;
          cmd[cmdn/2]+=0x10;
        }
      }
      else if(key==160)        //2
      {
        if(cmdn%2) 
        {
          cmd[cmdn/2]&=0xF0;
          cmd[cmdn/2]+=0x02;
        }
        else 
        {
          cmd[cmdn/2]&=0x0F;
          cmd[cmdn/2]+=0x20;
        }
      }
      else if(key==224)        //3
      {
        if(cmdn%2) 
        {
          cmd[cmdn/2]&=0xF0;
          cmd[cmdn/2]+=0x03;
        }
        else 
        {
          cmd[cmdn/2]&=0x0F;
          cmd[cmdn/2]+=0x30;
        }
      }
      else if(key==144)        //4
      {
        if(cmdn%2) 
        {
          cmd[cmdn/2]&=0xF0;
          cmd[cmdn/2]+=0x04;
        }
        else 
        {
          cmd[cmdn/2]&=0x0F;
          cmd[cmdn/2]+=0x40;
        }
      }
      else if(key==208)        //5
      {
        if(cmdn%2) 
        {
          cmd[cmdn/2]&=0xF0;
          cmd[cmdn/2]+=0x05;
        }
        else 
        {
          cmd[cmdn/2]&=0x0F;
          cmd[cmdn/2]+=0x50;
        }
      }
      else if(key==176)        //6
      {
        if(cmdn%2) 
        {
          cmd[cmdn/2]&=0xF0;
          cmd[cmdn/2]+=0x06;
        }
        else 
        {
          cmd[cmdn/2]&=0x0F;
          cmd[cmdn/2]+=0x60;
        }
      }
      else if(key==240)        //7
      {
        if(cmdn%2) 
        {
          cmd[cmdn/2]&=0xF0;
          cmd[cmdn/2]+=0x07;
        }
        else 
        {
          cmd[cmdn/2]&=0x0F;
          cmd[cmdn/2]+=0x70;
        }
      }
      else if(key==136)        //8
      {
        if(cmdn%2) 
        {
          cmd[cmdn/2]&=0xF0;
          cmd[cmdn/2]+=0x08;
        }
        else 
        {
          cmd[cmdn/2]&=0x0F;
          cmd[cmdn/2]+=0x80;
        }
      }
      else if(key==200)        //9
      {
        if(cmdn%2) 
        {
          cmd[cmdn/2]&=0xF0;
          cmd[cmdn/2]+=0x09;
        }
        else 
        {
          cmd[cmdn/2]&=0x0F;
          cmd[cmdn/2]+=0x90;
        }
      }
      else if(key==128)        //0
      {
        if(cmdn%2) 
        {
          cmd[cmdn/2]&=0xF0;
          cmd[cmdn/2]+=0x00;
        }
        else 
        {
          cmd[cmdn/2]&=0x0F;
          cmd[cmdn/2]+=0x00;
        }
      }
      else if(key==168)        //--/-     A
      {
        if(cmdn%2) 
        {
          cmd[cmdn/2]&=0xF0;
          cmd[cmdn/2]+=0x0A;
        }
        else 
        {
          cmd[cmdn/2]&=0x0F;
          cmd[cmdn/2]+=0xA0;
        }
      }
      else if(key==232)        //<-->   B
      {
        if(cmdn%2) 
        {
          cmd[cmdn/2]&=0xF0;
          cmd[cmdn/2]+=0x0B;
        }
        else 
        {
          cmd[cmdn/2]&=0x0F;
          cmd[cmdn/2]+=0xB0;
        }
      }
      else if(key==229)        //交换   C
      {
        if(cmdn%2) 
        {
          cmd[cmdn/2]&=0xF0;
          cmd[cmdn/2]+=0x0C;
        }
        else 
        {
          cmd[cmdn/2]&=0x0F;
          cmd[cmdn/2]+=0xC0;
        }
      }
      else if(key==197)        //画中画   D
      {
        if(cmdn%2) 
        {
          cmd[cmdn/2]&=0xF0;
          cmd[cmdn/2]+=0x0D;
        }
        else 
        {
          cmd[cmdn/2]&=0x0F;
          cmd[cmdn/2]+=0xD0;
        }
      }
      else if(key==149)        //正常     E
      {
        if(cmdn%2) 
        {
          cmd[cmdn/2]&=0xF0;
          cmd[cmdn/2]+=0x0E;
        }
        else 
        {
          cmd[cmdn/2]&=0x0F;
          cmd[cmdn/2]+=0xE0;
        }
      }
      else if(key==180)        //选台     F
      {
        if(cmdn%2) 
        {
          cmd[cmdn/2]&=0xF0;
          cmd[cmdn/2]+=0x0F;
        }
        else 
        {
          cmd[cmdn/2]&=0x0F;
          cmd[cmdn/2]+=0xF0;
        }
      }
      else if(key==253)         //左
      {
        if(cmdn==0) cmdn=10;
        else if(cmdn==1) cmdn=11;
        else cmdn-=2;
      }
      else if(key==237)         //右
      {
      }
      else if(key==244)
      {
        
      }
      else goto POINT0;
      if(cmdn==11) cmdn=0;
      else cmdn++;
      for(n=0;n<12;n++) cursor[n]=0x20;
      cursor[cmdn]=0x18;      
      FYDPutWords(0x88,6,cursor);
      FYDPutHex(0x90,6,cmd);
    }
*/
    else if(key==173)       //上
    {
      MenuPre();
    }
    else if(key==189)       //下
    {
      MenuNxt();
    }
/*
    else if(key==157)       //OK
    {
      MenuSub();
    }
    else if(key==156)       //屏显
    {
      MenuFar();
    }
*/
//  POINT0:
    FYDPutNum(0x85,(signed int)key);
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -