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

📄 xinhao.c

📁 计算实用教程adadad9851实用教程
💻 C
📖 第 1 页 / 共 2 页
字号:
  //float abc=23.858257297405;//fosc=40.004480*4.5;

  //float abc=29.826472471;   //fosc=23.999750*6;

  float abc=2.8636145307;                  //fosc=25.000000*6;  除10

  ulong ku;
  abc=abc*frequence;
  ku=(ulong)(abc);

  FRE1_D=(uchar)((ku>>24)&0x000000ff);

  FRE1_C=(uchar)((ku>>16)&0x000000ff);

  FRE1_B=(uchar)((ku>>8)&0x000000ff);

  FRE1_A=(uchar)(ku&0x000000ff);

  //MODE=0x01;
}


void AD9851_FSK(ulong f1,ulong f2)
{
  float bc=2.8636145307;                  //fosc=25.000000*6;  除10
  ulong aku;
  bc=bc*f1;
  aku=(ulong)(bc);

  FRE1_D=(uchar)((aku>>24)&0x000000ff);

  FRE1_C=(uchar)((aku>>16)&0x000000ff);

  FRE1_B=(uchar)((aku>>8)&0x000000ff);

  FRE1_A=(uchar)(aku&0x000000ff);

  bc=2.8636145307;                  //fosc=25.000000*6;    除10
  bc=bc*f2;

  aku=(ulong)(bc);

  FRE2_D=(uchar)((aku>>24)&0x000000ff);

  FRE2_C=(uchar)((aku>>16)&0x000000ff);

  FRE2_B=(uchar)((aku>>8)&0x000000ff);

  FRE2_A=(uchar)(aku&0x000000ff);
  MODE=4; 
  }  

/*********参数输入显示程序**********/
void Input_Dis(void)
{
    EA=0;
    if(Step>10)
      { Chars_dis("=====================");
	Dis_line(5);
	Chars_dis(" Now you are setting:");
	Dis_line(6);
        if(Step==11)
          Chars_dis("1.Freq:              ");
	else if(Step==12)
	  Chars_dis("2.Ampl:              ");
	else if(Step==21||Step==41)
          Chars_dis("1.F_C :              ");
        else if(Step==31)
          Chars_dis("1.F_L :              ");
	else if(Step==42||Step==32)
	  Chars_dis("2.A_C :              ");
	else if(Step==22)
	  Chars_dis("2. Ma :              ");
	else if(Step==33)
	  Chars_dis("3.F_C :               ");
	//else if(Step==34)
	//  Chars_dis("4.FSK :              ");
	if(Point==0)
		{
			Datas_dis((Input_Temp/10),8,17,18);
 			Dis_line(7);
		}
	if(Point==1)
		{
			if((Input_Temp%10)==0)
				{
					Datas_dis((Input_Temp/10),8,17,17);
 					Dis_line(7);
				}
			if((Input_Temp%10)>0)
				{
					Datas_dis(Input_Temp,8,17,16);
 					Dis_line(7);
				}
		}
      }
      EA=1;
}
/************************************************/
/*********键值输入程序*************/
void int1(void) interrupt 2
{
   uchar Key_Temp=0,m_Key=0;
   uchar i;
   EA=0;         //防止其他中断进入
   Key_Temp=KEY;  //读取键值
   Delay(12000);    //软件去抖动
   m_Key=KEY;
   if(Key_Temp==m_Key)
   {
     i=Key_Temp;
     if((Step==2)&&(Key_Temp==11))        //AM调制深度
      {
        DEEP-=10;
        DA0832=2*DEEP;
        i=0;
        MODE=1;
       }
     if((Step==2)&&(Key_Temp==12))
       {DEEP+=10;
        DA0832=2*DEEP; 
        i=0;
        MODE=1;
       }
     if((Step==1)&&(Key_Temp==13))       //sin 步进
      {
      FREQ1+=1000;
      AD9851_DDS(FREQ1);
      MODE=1;
      i=0;
      }
     if((Step==1)&&(Key_Temp==14))
      {FREQ1-=1000;
       AD9851_DDS(FREQ1);
      MODE=1;
      i=0;
      }

     if(i<10)
       {
         if(Step>10)
           {
             if(Point==0)
               Input_Temp=Input_Temp*10+i*10;
	     if(Point==1)
	       Input_Temp=Input_Temp+i;
           }
         if(Step<10&&i>0&&i<7)
           {

                 Step=Step*10;
                 Step=Step+i;
             if(Step==1)
               {
                 FREQ1=1000000;
                 AMP1=3000;
                 C_V=AMP1;
                 MODE=1;
                 AD9851_DDS(FREQ1);
                 //AD600_WR(AMP1);
                 //信号选择
                 MD_SIN=0;
               }
            else if(Step==2)
               {
                 FREQ1=10000000;
                 AD9851_DDS(FREQ1);
                 DA0832=200;
                 MODE=1;
                 AMP1=1200;
                 C_V=AMP1;
                 //AD600_WR(AMP1);
                 FREQ2=100000;
                 DDS(FREQ2);
                 AMP2=2000;
            //     AMPL_WR(AMP2);
                 DEEP=100;         
                 //对信号的选择
                 XSK_AM=1;
                 MD_SIN=1;
               }
            else if(Step==3)
               {
                 FREQ1=2000000;
                 FREQ2=1000000;
                 FSK=500;
                 AMP1=3000;
                 // C_V=AMP1;
                 //AD600_WR(AMP1);
                AD9851_FSK(FREQ1,FREQ2);
                 //对信号的选择
                 MD_SIN=0;
                 MODE=4;
               }
             else if(Step==4)
               {
                  FREQ1=1000000;
                  if(ten_five)
                   {
                     AD9851_DDS(FREQ1-50000);
                     FIVE_TEN=1;
                   }
                  else
                   {
                     AD9851_DDS(FREQ1-100000);
                     FIVE_TEN=0;
                   }
                  MODE=0x02;
                 AMP1=3000;
                 C_V=AMP1;
                 //AD600_WR(AMP1);
                 //信号选择
                 MD_SIN=0;
               }
             else if(Step==43)
                {
                  if(ten_five==1)
                     ten_five=0;
                  else
                     ten_five=1;
                  if(ten_five==1)
                   {
                  //   AD9851_DDS(FREQ1-50000);
                     //CTR=0x03;
                     FIVE_TEN=1;
                   }
                  else
                   {
                   //  AD9851_DDS(FREQ1-100000);
                     //CTR=0x03;
                     FIVE_TEN=0;

                   }
                   MODE=0x02;
                  Step=4;
                }
             else if(Step==5)        //PSK
               {
                FREQ1=1000000;
             //   AD9851_DDS(FREQ1);
                MODE=0x05;
                AMP1=3000;
                C_V=AMP1;
              // DA0832=20;
                PSK_ASK=0;
               DDS(10000);
                //XSK_AM=0;
                MD_SIN=0;

               }
             else if(Step==6)   //ASK
               {
                FREQ1=1000000;
                AD9851_DDS(FREQ1);
                 MODE=0x03;
                AMP1=3000;

                C_V=AMP1;
               // AD600_WR(AMP1);
                PSK_ASK=1;
                //信号选择
                XSK_AM=0;
                MD_SIN=1;
               }
              Clear_Dian(0);
            }

       }
    if(i==10)                  //小数点
      {
        Point=1;
      }
    if(i==11&&(Step==11||Step==21||Step==31||Step==33||Step==41))      //*1K
      {
        Input_Temp=Input_Temp*1000;
      }
    if(i==12&&(Step==11||Step==21||Step==31||Step==33||Step==41))      //*1M
      {
        Input_Temp=Input_Temp*1000000;
      }
    if(i==15)                  //CLEAR
       {
         if(Step>10)
           {
             if(Point==0)
                Input_Temp=(Input_Temp-Input_Temp%100)/10;
	     if(Point==1)
               {
                 if(Input_Temp%10==0)
                   Point=0;
                 if(Input_Temp%10>0)
		   Input_Temp=Input_Temp-Input_Temp%10;
               }
	   }
       }
     if(i==16)                  //ESC
       {
         Point=0;
         Input_Temp=0;
         Step=Step/10;
         Clear_Dian(0);
       }
     if(i==17)                  //ENTER
       {

         Point=0;
         if(Step==11||Step==21)
           {
             FREQ1=Input_Temp;

             AD9851_DDS(FREQ1);
             MODE=1;
             }
         if(Step==31)
           {
              FREQ1=Input_Temp;
              AD9851_FSK(FREQ1,FREQ2);
           }
         if(Step==41)
           {
             FREQ1=Input_Temp;
             if(ten_five==1)
              AD9851_DDS(FREQ1-50000);
             if(ten_five==0)
              AD9851_DDS(FREQ1-100000);
             MODE=0x02;
           }
          if(Step==43)
          {if(ten_five==0)
             {FIVE_TEN=1;
              ten_five=1;
              }
           else if(ten_five==1)
              {FIVE_TEN=0;
               ten_five=1;
               }
           }   
     
         if(Step==12||Step==32||Step==42)
           {
             AMP1=(uint)(Input_Temp/10);
             C_V=AMP1;
             //AD600_WR(AMP1);
           }
         if(Step==22)
           {
             DEEP=(uchar)(Input_Temp/10);
             //OFFSET_WR(DEEP);
             AMP2=DEEP*20;
             //AMPL_WR(AMP2);
           }
         if(Step==33)
           {
             FREQ2=Input_Temp;
             AD9851_FSK(FREQ1,FREQ2);
           }
         //if(Step==34)
         //  {
         //    FSK=Input_Temp;
           //  AD9851_FSK(FREQ1,FREQ2,(FSK<<1));
         //
         //  }
         Clear_Dian(0);
         if(Step>10)
           Step=Step/10;
         Input_Temp=0;
      }
   }
   EA=1;       //开启中断
}
/***********************************************/
/************主函数部分************/
void main(void)
{
  Delay(1000);
  P1=0x00;
  ET_SIX=0;
  Init_Int();
  Init_Dian(6);
  Clear_Dian(0);
  Clear_Dian(1);
  Init_Dian(6);
  Clear_Dian(0);
  Clear_Dian(1);
  while(1)
    {
       if(Step==0)
        {
         Manu0_Dis();
         if(Step!=0)
            {
              Clear_Dian(0);

            }
        }
       if(Step==1||Step==11||Step==12)
        {
         Manu1_Dis();
        }
       if(Step==2||Step==21||Step==22)
        {
          Manu2_Dis();
        }
       if(Step==3||Step==31||Step==32||Step==33||Step==34)
        {
         Manu3_Dis();
        }
       if(Step==4||Step==41||Step==42||Step==43)
        {
         Manu4_Dis();
        }
       if(Step==5)
        {
          Manu5_Dis();
        }
       if(Step==6)
        {
          Manu6_Dis();
        }
       if(Step>6)
        {
         Input_Dis();
         // if(Step<7)
          //{
          //Clear_Dian(0);

//          }
        }
    //   if(Step>0&&Step<7)
        //AGC();
    }
 }


⌨️ 快捷键说明

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