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

📄 新建 文本文档.txt

📁 DDS 扫频
💻 TXT
字号:
#include<io.h>
#include"system.h"
void send(int a);
void write_fw(int fre,int pha);
int keyscan();
int main()
{
  int freq=100,keyvalue1=0,keyvalue2=0,keyvalue3=0;
  int vpp;
  int keyvalue=0xff;
  double temp;
  int led[10]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};
  int led1[10]={0x02,0x9e,0x24,0x0c,0x98,0x48,0x40,0x1e,0x00,0x08};
  
  IOWR(CON_WORD_BASE,0,0);
  write_fw(freq,0);
  
  while(1)
  {
    keyvalue=keyscan();
    if(keyvalue==0xa) 
    
    {
      while(1)
      {
     keyvalue=keyscan();
      if(keyvalue==0xb) break;  
       freq=freq+10000;
       usleep(20000);
       write_fw(freq,0);  
       if(freq>=200000)  freq=100;       
      }
    }
   }
  while(1)
  {
    freq=freq+10000;
    if (freq>200000) freq=100;
    write_fw(freq,0);
    usleep(20000);
  }
    
  IOWR(LED0_BASE,0,led[0]);
    IOWR(LED1_BASE,0,led[0]);
    IOWR(LED2_BASE,0,led[0]);
    IOWR(LED3_BASE,0,led[0]);
    IOWR(LED4_BASE,0,led[1]);
    IOWR(LED5_BASE,0,led[0]);
    IOWR(LED6_BASE,0,led[0]);
    IOWR(LED7_BASE,0,led[0]);
  while(1)
  {
    keyvalue1=keyscan();
    if(keyvalue1<0xa)
    {
      keyvalue2=keyvalue2*10+keyvalue1;
      keyvalue3=keyvalue2;
    }
    else if(keyvalue1==0xa)
    {
      IOWR(CON_WORD_BASE,0,0);
      write_fw(keyvalue2,0);
      keyvalue3=keyvalue2;
      keyvalue2=0;
    }
    else if(keyvalue1==0xb)
    {
      IOWR(CON_WORD_BASE,0,0);
      write_fw(keyvalue2*1000,0);
      keyvalue3=keyvalue2*1000;
      keyvalue2=0;
    }
    else if(keyvalue1==0xc)
    {
      IOWR(CON_WORD_BASE,0,0);
      write_fw(keyvalue2*1000000,0);
      keyvalue3=keyvalue2*1000000;
      keyvalue2=0;
    }
    else if(keyvalue1==0xd)
    {
      IOWR(CON_WORD_BASE,0,0);
      keyvalue3=keyvalue3+10000;
      keyvalue2=keyvalue3;
      write_fw(keyvalue2,0);
      keyvalue2=0;

    }
    
    else if(keyvalue1==0xe)
    {
      IOWR(CON_WORD_BASE,0,0);
      keyvalue3=keyvalue3-10000;
      keyvalue2=keyvalue3;
      write_fw(keyvalue2,0);
      keyvalue2=0;
    } 
    else if(keyvalue1==0xf)
    {
      
      vpp=IORD(PP_DATA_BASE,0);
      IOWR(RESET_BASE,0,1);
      usleep(100);
      IOWR(RESET_BASE,0,0);
      temp=vpp;temp=(temp-128)*100/3;
      vpp=temp;

    }
    if(keyvalue1==0xf){
      IOWR(LED0_BASE,0,led[0]);
      IOWR(LED1_BASE,0,led[0]);
      IOWR(LED2_BASE,0,led[0]);
      IOWR(LED3_BASE,0,led[0]);
      IOWR(LED4_BASE,0,led1[vpp%10000/1000]);
      IOWR(LED5_BASE,0,led[vpp%1000/100]);
      IOWR(LED6_BASE,0,led[vpp%100/10]);
      IOWR(LED7_BASE,0,led[vpp%10]);
    }
    else {
      IOWR(LED0_BASE,0,led[keyvalue3/10000000]);
      IOWR(LED1_BASE,0,led[keyvalue3%10000000/1000000]);
      IOWR(LED2_BASE,0,led[keyvalue3%1000000/100000]);
      IOWR(LED3_BASE,0,led[keyvalue3%100000/10000]);
      IOWR(LED4_BASE,0,led[keyvalue3%10000/1000]);
      IOWR(LED5_BASE,0,led[keyvalue3%1000/100]);
      IOWR(LED6_BASE,0,led[keyvalue3%100/10]);
      IOWR(LED7_BASE,0,led[keyvalue3%10]);
    }     
  }
}
void send(int a) 
{
  IOWR(FREQ_WORD_BASE,0,a); 
  IOWR(CON_WORD_BASE,0,1);
  IOWR(CON_WORD_BASE,0,0);
}
void write_fw(int fre,int pha)
{ 
  fre=fre*42.95;   
  send(pha<<3);
  send(fre>>24);
  send(fre>>16);
  send(fre>>8);
  send(fre);
  IOWR(CON_WORD_BASE,0,2);
  IOWR(CON_WORD_BASE,0,0); 
}
int keyscan()
{
  volatile int i,j,col,row;
  int key[4][4]={1,2,3,4,5,6,7,8,9,0,0xa,0xb,0xc,0xd,0xe,0xf};//键盘编码    
  while(1)
  {   
    IOWR(KEYBOARD_BASE,0,0);//选择所有行
    usleep(100000);
    if(IORD(KEYBOARD_BASE,0)!=15)//有键按下
    {
      usleep(100);
      while(IORD(KEYBOARD_BASE,0)==15)break;
      if(IORD(KEYBOARD_BASE,0)==15)break;
      row=1;
      for(i=0;i<4;i++)//行扫描
      {
        IOWR(KEYBOARD_BASE,0,~row);//选择行
        usleep(20);
        col=IORD(KEYBOARD_BASE,0);//读取列值
        if(col!=15)//有键按下
        {
          col=~col & 0xf;
          for(j=0;j<4;j++)
          {
            col>>=1;if(col==0)break;//转换列值
          }
          break;
        }
        row<<=1;//扫描下一行
      }      
      break;            
    }   
  } 
  while(IORD(KEYBOARD_BASE,0)!=15);//等待按键松开      
  return key[i][j];
}

⌨️ 快捷键说明

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