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

📄 4118c.c

📁 ADF4118带变频程序
💻 C
字号:
//2005.10.15, L??ODU
//*****************************
//***    L BAND PLL    ***
//***	ODU C 4.9GHz ???? p=32  pd=10M
//*****************************
#include <intrins.h>
#include "math.h"
#include "absacc.h"
#include "reg51.h"

#define LOW 0
#define HIGH 1
#define TRUE 	1
#define FALSE 	~TRUE

#define	uchar	unsigned	char    
#define	uint	unsigned	int 
#define	ulong	unsigned	long   	


sbit keyAdd=P1^7;     // 
sbit keyDec=P1^5;     // 
sbit CLK=P3^1;    //  ????
sbit KDATA=P3^0;   //  ????
sbit LE=P3^5;     //  ???? 
 
unsigned char REFCOUNT1=0x10;
unsigned char REFCOUNT2=0x00;
unsigned char REFCOUNT3=0x10;
unsigned char NCOUNT1=0x10;
unsigned char NCOUNT2=0x0a;
unsigned char NCOUNT3=0xa1;
unsigned char FUNCTION1=0x00;
unsigned char FUNCTION2=0x08;
unsigned char FUNCTION3=0xd2;

void delay(void)
{
	unsigned int i;
	for(i=0;i<100;i++);
}
/****************************************************************************
*    Prototype: void I_start(void);
*    Function: start I2C,start condition:when SCL=HIGH,SDA from HIGH to LOW
*	 I2C???????????,?????????,?????,??????
****************************************************************************/
void PLL_start( void ) {
	
		
	LE=LOW;	//0,START
	delay();
 }

/****************************************************************************
*    Prototype: void I_stop(void);
*    Function: stop I2C,stop condition:when SCL=HIGH,SDA from LOW to HIGH
****************************************************************************/
void PLL_stop( void ) {
	


	LE=HIGH;   //1,STOP
	delay();
}


/****************************************************************************
*    Prototype: bit I_clock(void);
*    Function: Provide CLK for I2C BUS,return SDA when CLK is HIGH,
*              the function can be used in data transmitting and receiving 
****************************************************************************/
void PLL_clock( void ) {
	CLK = LOW ;	
	delay();
	CLK = HIGH ;
	delay();
	_nop_();
	CLK = LOW ;	
	delay();
 }

/****************************************************************************
*    Prototype: bit I_send(byte I_data);
*    Function: send 8 bit data and ask an ACK signal
*              if receive ACK return 1(TRUE),or else return 0(FALSE) 
****************************************************************************/
void PLL_send( unsigned char I_data ) {
	unsigned char i ;
	// send 8 bit data
	for ( i=0 ; i<8 ; i++ ) 		//?8?
	{
		KDATA = (bit)( I_data & 0x80) ;	//?DATA?????1????
		I_data = I_data << 1 ;	//I_data??1?
		delay();
		PLL_clock() ;	//??DATA?
	}
}
/****************************************************************************
*    Prototype: bit I_send(byte I_data);
*    Function: send 8 bit data and ask an ACK signal
*              if receive ACK return 1(TRUE),or else return 0(FALSE) 
****************************************************************************/
void PLL_send5( unsigned char I_data ) {
	unsigned char i ;
	I_data = I_data << 3 ;	//I_data??1?
	// send 8 bit data
	for ( i=0 ; i<5 ; i++ ) 		//?8?
	{
		KDATA = (bit)( I_data & 0x80) ;	//?DATA?????1????
		I_data = I_data << 1 ;	//I_data??1?
		delay();
		PLL_clock() ;	//??DATA?
	}
}



void main()
{
	uchar	KeyAddVar0,KeyDecVar0,NCOUNTvar0,NCOUNTvar1,NCOUNTvar2;
	ulong 	NCOUNTemp,NCOUNTemp1;
	NCOUNTemp=NCOUNT1;
	NCOUNTemp<<=8;
	NCOUNTemp+=NCOUNT2;
	NCOUNTemp<<=8;
	NCOUNTemp+=NCOUNT3;
    delay();
	delay();
	delay();
	PLL_start();
	PLL_send5(FUNCTION1);
	PLL_send(FUNCTION2);
	PLL_send(FUNCTION3);
	PLL_stop();
    delay();
	delay();
	delay();
	PLL_start();
	PLL_send5(REFCOUNT1);
	PLL_send(REFCOUNT2);
	PLL_send(REFCOUNT3);
	PLL_stop();
    delay();
	delay();
	delay();
	PLL_start();
	PLL_send5(NCOUNT1);
	PLL_send(NCOUNT2);
	PLL_send(NCOUNT3);
	PLL_stop();
	delay();
	delay();
	delay();
/*	PLL_start();
	PLL_send5(FUNCTION1);
	PLL_send(FUNCTION2);
	PLL_send(FUNCTION3 | 0x04);*/
	PLL_stop();
    delay();
	delay();
	delay();

	KeyAddVar0=0;
	KeyDecVar0=0;
	if(keyAdd)
	{
	  KeyAddVar0=1;
	}
	if(keyDec)
	{
	  KeyDecVar0=1;
	}
	while(1)
	{
		delay();
		if(keyAdd&&(KeyAddVar0==0))
		{
			delay();
			if(keyAdd)
			{
				KeyAddVar0=1;
				NCOUNTemp>>=2;
				NCOUNTemp++;
				NCOUNTemp<<=2;
				NCOUNTemp+=0x01;
				NCOUNTemp1=NCOUNTemp;
				NCOUNTvar2=NCOUNTemp1;
				NCOUNTemp1>>=8;
				NCOUNTvar1=NCOUNTemp1;
				NCOUNTemp1>>=8;
				NCOUNTvar0=NCOUNTemp1;
				delay();
				delay();
				delay();
				PLL_start();
				PLL_send5(FUNCTION1);
				PLL_send(FUNCTION2);
				PLL_send(FUNCTION3);
				PLL_stop();
				delay();
				delay();
				delay();
				PLL_start();
				PLL_send5(REFCOUNT1);
				PLL_send(REFCOUNT2);
				PLL_send(REFCOUNT3);
				PLL_stop();
				delay();
				delay();
				delay();
				PLL_start();
				PLL_send5(NCOUNTvar0);
				PLL_send(NCOUNTvar1);
				PLL_send(NCOUNTvar2);
				PLL_stop();
	            delay();
                delay();
				delay();
				/*PLL_start();
				PLL_send5(FUNCTION1);
				PLL_send(FUNCTION2);
				PLL_send(FUNCTION3 | 0x04);*/
				PLL_stop();
				delay();
			}
		}
		else if(!keyAdd)
		{
			KeyAddVar0=0;
		}
		
		if(keyDec&&(KeyDecVar0==0))
		{
			delay();
			if(keyDec)
			{
				KeyDecVar0=1;
				NCOUNTemp>>=2;
				NCOUNTemp--;
				NCOUNTemp<<=2;
				NCOUNTemp+=0x01;
				NCOUNTemp1=NCOUNTemp;
				NCOUNTvar2=NCOUNTemp1;
				NCOUNTemp1>>=8;
				NCOUNTvar1=NCOUNTemp1;
				NCOUNTemp1>>=8;
				NCOUNTvar0=NCOUNTemp1;
				delay();
				delay();
				delay();
				PLL_start();
				PLL_send5(FUNCTION1);
				PLL_send(FUNCTION2);
				PLL_send(FUNCTION3);
				PLL_stop();
				delay();
				delay();
				delay();
				PLL_start();
				PLL_send5(REFCOUNT1);
				PLL_send(REFCOUNT2);
				PLL_send(REFCOUNT3);
				PLL_stop();
				delay();
				delay();
				delay();
				PLL_start();
				PLL_send5(NCOUNTvar0);
				PLL_send(NCOUNTvar1);
				PLL_send(NCOUNTvar2);
				PLL_stop();	
				PLL_start();
				delay();
				delay();
				/*PLL_start();
				PLL_send5(FUNCTION1);
				PLL_send(FUNCTION2);
				PLL_send(FUNCTION3 | 0x04);*/
				PLL_stop();
				delay();
                delay();
			}
		}
		else if(!keyDec)
		{
			KeyDecVar0=0;
		}
		
	}



}



⌨️ 快捷键说明

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