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

📄 main.c

📁 AD9850.rar
💻 C
字号:
#include"12864_serial.h"
#include"AD9850.h"

unsigned char DATA[5];
unsigned long frequency=1000000,frequency_buf=0,phasic=0,phasic_buf=0;
unsigned char keycode=10;
//unsigned int  t_count;
bit	INC_1K=0;
bit INC_100HZ=0;
bit F_P=0;
bit CANCEL=0;
bit CONFIRM=0;
bit INC_1M=0;

#include"key.h"
//bit POINTER=0;
void timer0() interrupt 1 
{
   TR0=0;
   TH0=-1000/256;
   TL0=-1000%256;

      frequency_to_phase( frequency, DATA);

      phasic_to_phase( phasic, DATA);
   
      WRITE_AD9850(DATA);

      AD9850_DISPLAY( frequency, phasic);
   
 }  
 main()
 { 	unsigned char i;
   lcd_init();
   welcome();
   init_dds();
   TMOD=0x01;
   TH0=-1000/256;
   TL0=-1000%256;
//   t_count=0;
   EA=1;
   ET0=1;
   TR0=1;
   
   while(1)
  {	 
     INC_1K=0;
     INC_100HZ=0;
     CANCEL=0;
     CONFIRM=0;
	 INC_1M=0;
    convert();
	 if(F_P==0)             //F_P=0为改变频率
	   { 
	      phasic_buf=0;     //把相位缓存器清0
	      if(keycode!=10)	//keycode不为10,为数字键按下
	       { 
		     while(keyscan());
		     frequency_buf=frequency_buf*10+keycode;//频率累加
			 // send_command(0x80);
		     // send_data(frequency_buf);
		    // while(keyscan()!=0 );
		     keycode=10; //把数字键值清0以便继续输入
		    }
		    else if ((CONFIRM==1)&&(frequency_buf<55000000)&&(frequency_buf!=0)) 
		          {	 while(keyscan());
				    frequency=frequency_buf;//当没有数字键按下且确定键按下时,把频率缓存器赋给频率寄存器
					frequency_buf=0;
				  	CONFIRM=0;//确定键清0
					TR0=1;// 输出和显示
					 }
		         else if(CANCEL==1)
			       { while(keyscan());    
				     frequency_buf=0;//取消键为1清频率缓存器
					 CANCEL=0;//取消键清0 
			     	}
	     }
       else{ 
	         frequency_buf=0; //当F_P=1时为相位输入
	          if(keycode!=10)	//有数字键按下
	            { while(keyscan());
			     phasic_buf=phasic_buf*10+keycode;//输入的累加
			        //while(keyscan()!=0 );
			      keycode=10;	//轻数字键
			     }
		        else if ((CONFIRM==1)&&(phasic_buf<360))
		                { while(keyscan());
						  phasic=phasic_buf; //确定键赋值给相位寄存器
						  phasic_buf=0;
					   	  CONFIRM=0;  //清确定键
						  TR0=1;//开定时中断显示相位
						  }
		               else	 if(CANCEL==1)
			                { while(keyscan()); 
							  phasic_buf=0;	 //清相位
							  CANCEL=0; //取消键清0
							  }
	         }
   if(INC_1K==1)//频率递增1K
	  {	while(keyscan());
	    INC_1K=0;
		if(frequency<55000000)
	   	  frequency+=1000; 
		  TR0=1;

	   }
	if(INC_100HZ==1)//频率递增100HZ
	   { while(keyscan());
	     INC_100HZ=0;
		 if(frequency<55000000)
		   frequency+=100;
		   TR0=1;	
	    } 
	  if(INC_1M==1)//频率递增1M
	  {	while(keyscan());
	    INC_1M=0;
		if(frequency<55000000)
	   	  frequency+=1000000; 
		  TR0=1;

	   }
   	 //frequency_to_phase( frequency, DATA);

    // phasic_to_phase( phasic, DATA);

    // WRITE_AD9850(DATA);

    // AD9850_DISPLAY( frequency, phasic);
	for(i=0;i<100;i++);
   
   }
   
	
  }


⌨️ 快捷键说明

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