PLL-LMX2325 C程序,用于锁相环频率控制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PLL-LMX2325 C程序,用于锁相环频率控制
#include
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--)
{
BDA TA=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--)
{
BDA TA=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);
窗体底端