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

📄 lmx2325-test.c

📁 PLL-LMX2325 C程序,用于锁相环频率控制
💻 C
字号:
#include <stdio.h>
#include <AT892051.H>

sbit  KEY1=P1^2;
sbit  KEY2=P1^3;
sbit  KEY3=P1^4;

sbit  BCLK=P1^5;
sbit  BDATA=P1^6;
sbit  BLE=P1^7;


void d_send(unsigned long int BYT);
unsigned long int cal_shu(unsigned long int lasts);
void d_senda(int DBYT);
void delay(void);
void delay1(void);
//unsigned int crc16l(unsigned char *ptr,unsigned char len);

unsigned long int X;
//unsigned int crc;
char flag;
main()
{
	EA=0;
	SP=0x70;
	RS0=0;
	RS1=0;
	P1=0XDF;
    flag=0;
	delay1();
	delay1();
	d_senda(0x0101);
	delay1();
	delay1();
    X=8070;
    d_send(cal_shu(X));
    delay1();

    while(1)
    {
	 if (flag==1)
	   {
		d_send(cal_shu(X));
		flag=0;
       }
        
	 if (KEY1==0)
       {
		 delay();
		 delay();
         if (KEY1==0)
		  {
            X+=2;
            flag=1;
		  }
       } 
     if (KEY2==0)
	   {
	     delay();
	     delay();
         if (KEY2==0)
           {
		     X=8070;
		     flag=1;
           }
       }
	 if (KEY3==0)
	   {
	     delay();
	     delay();
         if (KEY3==0)
		   {
			 X-=2;
		     flag=1;
	       }
       }
    }
}

//**********延时约20ms********** 
void delay(void)
{
  unsigned char i;
  unsigned char l;
  for(i=15;i>=1;i--)
   {
     for(l=250;l>=1;l--);
   }
}

//**********延时约1s********** 

void delay1(void)
{
 unsigned char i;
 for(i=32;i>=1;i--)
 {
  delay();
 }
}

//********写16位数据子程序******** 
void d_senda(int DBYT)
{
  unsigned char i;
  BCLK=0;
  BLE=0;
  for(i=16;i>=1;i--)
   {
	BDATA=DBYT&0X8000;
    DBYT=DBYT<<1;
    BCLK=1;
    BCLK=0;
   }
  BLE=1;
}

//********写19位数据子程序******** 
void d_send(unsigned long int BYT)
{
  unsigned char i;
  unsigned long int S;
  BCLK=0;
  BLE=0;
  S=BYT;
  for(i=19;i>=1;i--)
   {
	BDATA=S&0X800000;
    S=S<<1;
    BCLK=1;
    BCLK=0;
   }
  BLE=1;
}

unsigned long int cal_shu(unsigned long int lasts)
{
  char intL;
  unsigned long int lonX;
  lonX=lasts>>6;
  intL=lasts&0x3f;
  lonX<<=7;
  lonX+=intL;
  lonX<<=6;
  return lonX;
}

/*unsigned int crc16l(unsigned char *ptr,unsigned char len)
{
 unsigned char i;
 while(len--)
  {
    for(i=0x80;i!=0;i>>1)
     {
       if((crc&0x8000)!=0) {crc<<=1;crc^=0x1021;}
       else crc<<=1;
       if((*ptr&i)!=0) crc^=0x1021;
      }
      ptr++;
   }
  return(crc);
}*/

⌨️ 快捷键说明

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