| 
  |||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe  | 
  
有沒(méi)有用過(guò)ADF4118的高手 | 
  
| 作者:archy 欄目:通信技術(shù) | 
各位大俠,我才接觸ADF4118。用51進(jìn)行控制,但為什么我的程序老是控制不了頻率呢?鎖不住。那位大俠幫我看一下 //***************************** //*** L BAND PLL *** //*** ODU C 4.9GHz 數(shù)字鎖定 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 sbit CLK=P3^1; // 時(shí)鐘信號(hào) sbit DATA=P3^0; // 數(shù)據(jù)信號(hào) sbit LE=P2^7; // 使能信號(hào) sbit key=P2^6; // unsigned CHAR REFCOUNT1=0x00; unsigned CHAR REFCOUNT2=0x01; unsigned CHAR REFCOUNT3=0x00; unsigned CHAR NCOUNT1=0x00; unsigned CHAR NCOUNT2=0x17; unsigned CHAR NCOUNT3=0x9d; unsigned CHAR FUNCTION1=0x00; unsigned CHAR FUNCTION2=0x00; unsigned CHAR FUNCTION3=0x93; 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是一種芯片間的通訊方式,采用兩條線進(jìn)行通訊,一條數(shù)據(jù)線,一條時(shí)鐘線。 ****************************************************************************/ void PLL_start( void ) { LE=LOW; //0,START } /**************************************************************************** * 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 } /**************************************************************************** * 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 ; CLK = HIGH ; _nop_(); CLK = LOW ; } /**************************************************************************** * 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++ ) //發(fā)8位 { DATA = (bit)( I_data & 0x80) ; //置DATA為最高位和1與的結(jié)果 I_data = I_data << 1 ; //I_data左移1位 PLL_clock() ; //發(fā)送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++ ) //發(fā)8位 { DATA = (bit)( I_data & 0x80) ; //置DATA為最高位和1與的結(jié)果 I_data = I_data << 1 ; //I_data左移1位 PLL_clock() ; //發(fā)送DATA值 } } void main(){ unsigned CHAR j; PLL_start(); PLL_send5(FUNCTION1); PLL_send(FUNCTION2); PLL_send(FUNCTION3); PLL_stop(); PLL_start(); PLL_send5(REFCOUNT1); PLL_send(REFCOUNT2); PLL_send(REFCOUNT3); PLL_stop(); PLL_start(); PLL_send5(NCOUNT1); PLL_send(NCOUNT2); PLL_send(NCOUNT3); PLL_stop(); key=0; PLL_start(); while(1) { delay(); if(key) { PLL_start(); PLL_send5(FUNCTION1); PLL_send(FUNCTION2); PLL_send(FUNCTION3); PLL_stop(); PLL_start(); PLL_send5(REFCOUNT1); PLL_send(REFCOUNT2); PLL_send(REFCOUNT3); PLL_stop(); PLL_start(); PLL_send5(NCOUNT1); PLL_send(NCOUNT2); PLL_send(NCOUNT3); PLL_stop(); PLL_start(); } } }  | 
  
  | 
    
 
  | 
  
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 | 
Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號(hào)  |