2021年电赛模块化程序总结

文章目录

    • 1、ADC0804
    • 2、LCD1602
    • 3、AD9854

1、ADC0804

集成A/D转换器品种繁多,选用时应综合考虑各种因素选取集成芯片。一般逐次比较型A/D转换器用的比较多,ADC0804就是这类单片集成A/D转换器。ADC0804是一款8位、单通道、低价格A/D转换器,主要特点是:模数转换时间大约100us;方便TTL或CMOS标准接口;可以满足差分电压输入;具有参考电压输入端;内含时钟发生器;单电源工作时(0~5)V输入电压范围是0~5V;不需要调零等等。ADC0804是一款早期的AD转换器,而且因其价格低廉而在要求不高的场合得到广泛应用。

  • 芯片参数
    ——工作电压:+5V,即VCC=+5V。
    ——模拟转换电压范围:0~+5V,即0≤Vin≤+5V。
    ——分辨率:8位,即分辨率为1/28=1/256,转换值介于0~255之间。
    ——转换时间:100us(fCK=640KHz时)。
    ——转换误差:±1LSB。
    ——参考电压:2.5V,即Vref/2=2.5V。

  • 各引脚的作用
    ——Vin(+)、Vin(-):两个模拟信号输入端,可以接收单极性、双极性和差模输入信号。
    ——DB0-DB7:具有三态特性数字信号输出端,输出结果为八位二进制结果。
    ——CLKIN:时钟信号输入端。
    ——CLKR:内部时钟发生器的外接电阻端,与CLK端配合可由芯片自身产生时钟脉冲,其频率计算方式是:fck=1/(1.1RC)。
    ——CS:片选信号输入端,低电平有效。
    ——WR:写信号输入端,低电平启动AD转换。
    ——RD:读信号输入端,低电平输出端有效。
    ——INTR:转换完毕中断提供端,AD转换结束后,低电平表示本次转换已完成。
    ——VREF/2:参考电平输入,决定量化单位。
    ——VCC:芯片电源5V输入。
    ——AGND:模拟电源地线。
    ——DGND:数字电源地线。

  • ADC0804典型接法2021年电赛模块化程序总结_第1张图片
    ADC0804相关函数
    ADC0804.c

#include"ADC0804.h"

void ADC0804_Delay100us(void)   
{
    unsigned char a,b;
    for(b=1;b>0;b--)
        for(a=43;a>0;a--);
}

/************************************
* 函数名称:ADC0804_Start()
* 函数功能:启动ADC0804转换
* 输入参数:无
* 返回参数:无
************************************/
void ADC0804_Start()
{
   ADC0804_CS_L;
   ADC0804_WR_L;
   ADC0804_Delay;
   ADC0804_WR_H;
   while(ADC0804_INT);
   ADC0804_CS_H;
} 

/************************************
* 函数名称:ADC0804_ReadData()
* 函数功能:读取ADC0804数据
* 输入参数:无
* 返回参数:电压原始数据值
************************************/
uchar ADC0804_ReadData()
{
  uchar temp_data;
  ADC0804_DATA=0xFF;
  ADC0804_CS_L;
  ADC0804_RD_L;
  ADC0804_Delay;
  temp_data=ADC0804_DATA;
  ADC0804_RD_H;
  ADC0804_CS_H;
  return(temp_data);
}
/************************************
* 函数名称:ADC0804_GetVoltage(uchar V)
* 函数功能:获取ADC0804的采集的电压
* 输入参数:参考电压
* 返回参数:电压值*10
************************************/
uint ADC0804_GetVoltage(uchar V)
{
  uint temp_V,dat;
  ADC0804_Start();
  dat=ADC0804_ReadData()*10;
  temp_V=dat/(0xFF/V);
  return(temp_V);	

}

ADC0804.h

#ifndef _ADC0804_H_
#define _ADC0804_H_
#include 
#define uchar unsigned char
#define uint  unsigned int
sbit ADC0804_CS=P2^3;
sbit ADC0804_RD=P2^4;
sbit ADC0804_WR=P2^5;
sbit ADC0804_INT=P2^6;
#define  ADC0804_CS_H   ADC0804_CS=1
#define  ADC0804_CS_L   ADC0804_CS=0
#define	 ADC0804_RD_H   ADC0804_RD=1
#define	 ADC0804_RD_L   ADC0804_RD=0
#define  ADC0804_WR_H   ADC0804_WR=1
#define  ADC0804_WR_L   ADC0804_WR=0
#define  ADC0804_DATA   P1
#define  ADC0804_Delay 	ADC0804_Delay100us()

void ADC0804_Start();
uchar ADC0804_ReadData();
uint ADC0804_GetVoltage(uchar V);
#endif

2、LCD1602

LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。它是由字符型液晶显示屏(LCD)、控制驱动主电路HD44780及其扩展驱动电路HD44100,以及少量电阻、电容元件和结构件等装配在PCB板上而组成。
2021年电赛模块化程序总结_第2张图片
2021年电赛模块化程序总结_第3张图片

LCD1602.c

/******************************************
 通用型1602液晶显示函数

 ************************************************/ 
#include "LCD1602.H"
#define LCD1602_DATA P0
sbit LCD1602_RS=P2^0; //数据命令选择端(4):L为命令;H为数据
sbit LCD1602_RW=P2^1; //读写选择端(5):L为写模式;H为读模式
sbit LCD1602_EN=P2^2; //使能信号(6):高脉冲完成数据指令读写
#define LCD1602_RS_L LCD1602_RS=0
#define LCD1602_RS_H LCD1602_RS=1
#define LCD1602_RW_L LCD1602_RW=0
#define LCD1602_RW_H LCD1602_RW=1
#define LCD1602_EN_L LCD1602_EN=0
#define LCD1602_EN_H LCD1602_EN=1
/*********************************
延时50微妙
********************************/
void LCD1602_Delayus()
{
    unsigned char a,b;
    for(b=1;b>0;b--)
    for(a=22;a>0;a--);
}
/********************************
延时10毫秒
********************************/
void LCD1602_Delayms()
{
    unsigned int i,j;
	for(i=10;i>0;i--)
	for(j=113;j>0;j--);
}
/******************************
1602写命令函数
*****************************/
void LCD1602_WriteCmd(uchar cmd)
{	
    LCD1602_DATA=cmd;
	LCD1602_RW_L;
	LCD1602_RS_L;//RS拉低,选择写命令	
	
	LCD1602_EN_H;//恢复初始化
	LCD1602_Delayus();   //短暂延时
	LCD1602_EN_L;//使能端上升沿完成操作
	LCD1602_Delayus();   //短暂延时
}

void LCD1602_MoveCursor(uchar dir)
{	
   uchar temp_dir;
   temp_dir=0x10+dir*4;
   LCD1602_WriteCmd(temp_dir);
}
void LCD1602_MoveScreen(uchar dir)
{	
   uchar temp_dir;
   temp_dir=0x18+dir*4;
   LCD1602_WriteCmd(temp_dir);
}
/*****************************
1602写数据函数
*****************************/
void LCD1602_WriteData(uchar dat)
{	  
      LCD1602_DATA=dat;
	  LCD1602_RW_L;
	  LCD1602_RS_H; //RS拉高选择写数据
	  LCD1602_EN_H; //使能端上升沿完成操作
	  LCD1602_Delayus() ;
	  LCD1602_EN_L; //使能端恢复初始化
}

/*****************************
1602写数据函数
*****************************/
uchar LCD1602_ReadStatus()
{	  
      LCD1602_DATA=0xFF;
	  LCD1602_RS_L; //RS拉高选择写数据
	  LCD1602_RW_H; //使能端上升沿完成操作
	  LCD1602_Delayus() ;
	  LCD1602_EN_H;
	  LCD1602_EN_L; //使能端恢复初始化
	  LCD1602_Delayus() ;
	  while(LCD1602_DATA&0x80);
	  return(LCD1602_DATA);
}
/*****************************
1602写数据函数
*****************************/
uchar LCD1602_ReadData()
{	  
      
	  LCD1602_RS_H; //RS拉高选择写数据
	  LCD1602_RW_H; //使能端上升沿完成操作
	  LCD1602_Delayus() ;
	  LCD1602_EN_H;
	  LCD1602_EN_L; //使能端恢复初始化
	  LCD1602_Delayus() ;
	  return(LCD1602_DATA);
}
/*********************************
1602 液晶初始化函数
********************************/
void LCD1602_Init(uchar d,uchar c,uchar b)
{
	uchar temp_cmd;
	temp_cmd=0x08+d*4+c*2+b;
	LCD1602_EN_L;//拉低使能信号端
	LCD1602_Delayms();
	LCD1602_WriteCmd(0x38);//显示模式设置:设置16x2显示,5x7点阵,8位数据接口
	LCD1602_Delayms();
	LCD1602_WriteCmd(0x38);
	LCD1602_Delayms();
	LCD1602_WriteCmd(0x38);
	LCD1602_Delayms();
	LCD1602_WriteCmd(0x38);
	LCD1602_WriteCmd(temp_cmd);/*0 0 0 0 1 D C B 
	                  		D=1开显示、D=0关显示
			 		  		C=1显光标、C=0关光标
			 				B=1开闪烁、B=0关闪烁*/ 
	LCD1602_WriteCmd(0x06);//写一个字符后地址指针自动加1
	LCD1602_WriteCmd(0x01);//显示清屏

	
}
/********************************************************************
* 名称 : LCD1602_DisplayChar(uchar hang,uchar lie,char sign)
* 功能 : 改变液晶中某位的值,如果要让第一行,第五个字符显示"b" 
         调用该函数如LCD1602_DisplayCharI(1,5,b的ascii码)
		 或LCD1602_DisplayChar(1,5,'b')
* 输入 : 行列坐标和需要显示字符的ASCII码值
* 输出 : 无
***********************************************************************/
void LCD1602_DisplayChar(uchar hang,uchar lie,uchar ascii) 

{
	uchar temp_addr=0;
	if(hang == 1) temp_addr = 0x80;	//第一行开始地址
	if(hang == 2) temp_addr = 0xc0;	//第二行开始地址
	temp_addr = temp_addr + lie - 1;
	
	LCD1602_WriteCmd(temp_addr); //写入地址命令
    LCD1602_WriteData(ascii);	 //写入数据
}
/********************************************************************
* 名称 : LCD1602_DisplayString(uchar hang,uchar lie,uchar *sign)
* 功能 : 改变液晶中某位的值,如果要让第一行,第五个字符开始显示"ab cd ef" ,
         调用该函数如LCD1602_DisplayString(1,5,"ab cd ef;")
* 输入 : 行,列,需要输入1602的数据
* 输出 : 无
***********************************************************************/
void LCD1602_DisplayString(uchar hang,uchar lie,uchar *str)
{
	uchar temp_addr=0;
	if(hang == 1) temp_addr = 0x80;//第一行开始地址
	if(hang == 2) temp_addr = 0xc0;//第二行开始地址
	temp_addr = temp_addr + lie - 1;
	
	LCD1602_WriteCmd(temp_addr);	  //写入开始位地址
	while(1)
	{
		if(*str == '\0')break; //检测到空字符时跳出循环	
		LCD1602_WriteData(*str);//写入数据
		str++;				  //指针变量自加
	}
}
void LCD1602_PrintHZ(unsigned char sta,unsigned char *hz)
{
	unsigned char i,tempH,tempL,temp_addr;
	tempH=0;
	for(i=0;i<8;i++)
	{
	 tempH=hz[i*2]>>5;
	 tempL=hz[i*2]&0x1f;
	 LCD1602_WriteCmd(0x40+i);
	 LCD1602_WriteData(tempH);
	 LCD1602_WriteCmd(0x48+i);
	 LCD1602_WriteData(tempL);
	 tempH=hz[i*2+1]>>5;
	 tempL=hz[i*2+1]&0x1f;
	 LCD1602_WriteCmd(0x56+i);
	 LCD1602_WriteData(tempH);
	 LCD1602_WriteCmd(0x64+i);
	 LCD1602_WriteData(tempL);
	}
		for(i=8;i<16;i++)
	{
	 tempH=hz[i*2]>>5;
	 tempL=hz[i*2]&0x1f;
	 LCD1602_WriteCmd(0x72+i);
	 LCD1602_WriteData(tempH);
	 LCD1602_WriteCmd(0x80+i);
	 LCD1602_WriteData(tempL);
	 tempH=hz[i*2+1]>>5;
	 tempL=hz[i*2+1]&0x1f;
	 LCD1602_WriteCmd(0x88+i);
	 LCD1602_WriteData(tempH);
	 LCD1602_WriteCmd(0x92+i);
	 LCD1602_WriteData(tempL);
	}
	
     LCD1602_DisplayChar(1,sta,0x00);
     LCD1602_DisplayChar(1,sta+1,0x01); //固定位置 单引号内可以写任意的数字或字母
	 LCD1602_DisplayChar(1,sta+2,0x02);
	 LCD1602_DisplayChar(1,sta+3,0x03);
	 LCD1602_DisplayChar(2,sta,0x04);
     LCD1602_DisplayChar(2,sta+1,0x05); //固定位置 单引号内可以写任意的数字或字母
	 LCD1602_DisplayChar(2,sta+2,0x06);
	 LCD1602_DisplayChar(2,sta+3,0x07);

}

void LCD1602_DefineCGRAM(uchar *sign)
{
 uchar i,j,k,temp_addr;
 k=0;temp_addr=0x40;
 for(j=0;j<8;j++)
 {	for(i=0;i<8;i++)
	{
		LCD1602_WriteCmd(temp_addr+i);
		LCD1602_WriteData(sign[k]);
		k++;		
	}
	temp_addr=temp_addr+8;
 }
}

LCD1602.h

#ifndef _LCD1602_H_
#define _LCD1602_H_
#include
#define uchar unsigned char
#define uint  unsigned int
extern void LCD1602_WriteCmd(uchar cmd);
extern void LCD1602_WriteData(uchar dat);
extern void LCD1602_Init(uchar d,uchar c,uchar b);
extern uchar LCD1602_ReadStatus();
extern uchar LCD1602_ReadData();
extern void LCD1602_DefineCGRAM(uchar *sign);
extern void LCD1602_MoveScreen(uchar dir);
extern void LCD1602_MoveCursor(uchar dir);
extern void LCD1602_DisplayChar(uchar hang,uchar lie,uchar ascii);
extern void LCD1602_DisplayString(uchar hang,uchar lie,uchar *str);
extern void LCD1602_PrintHZ(unsigned char sta,unsigned char *hz);
#endif

3、AD9854

AD9854数字合成器是高集成度的器件,它采用先进的DDS技术,片内整合了两路高速、高性能正交D/A转换器通过数字化编程可以输出I、Q两路合成信号。在高稳定度时钟的驱动下,AD9854将产生一高稳定的频率、相位、幅度可编程的正弦和余弦信号,作为本振用于通信,雷达等方面。AD9854的DDS核具有48位的频率分辨率(在300M系统时钟下,频率分辨率可达1uHZ)。输出17位相位截断保证了良好的无杂散动态范围指标。AD9854允许输出的信号频率高达150MHZ,而数字调制输出频率可达100MHZ。通过内部高速比较器正弦波转换为方波输出,可用作方便的时钟发生器

8051版AD9854.c

#include 
#include 
#include 
#include 
//**********************以下为系统时钟以及其相关变量设置**************************/
/* 
  此处根据自己的需要设置系统时钟以及与其相关的因子,一次需且只需开启一个   
  CLK_Set为时钟倍频设置,可设置4~20倍倍频,但最大不能超过300MHZ
  Freq_mult_ulong和Freq_mult_doulle均为2的48次方除以系统时钟,一个为长整形,一个为双精度型
*/
// #define CLK_Set 7
// const ulong  Freq_mult_ulong  = 1340357;
// const double Freq_mult_doulle = 1340357.032;

//#define CLK_Set 9
//const ulong  Freq_mult_ulong  = 1042500;		 
//const double Freq_mult_doulle = 1042499.9137431;

// #define CLK_Set 8
// const ulong  Freq_mult_ulong  = 1172812;
// const double Freq_mult_doulle = 2932031.403;

#define CLK_Set 10
const ulong  Freq_mult_ulong  = 938250;
const double Freq_mult_doulle = 938249.9224;

uchar FreqWord[6];              //6个字节频率控制字

//**************************修改硬件时要修改的部分********************************/
 #define AD9854_DataBus P3
 #define AD9854_AdrBus  P1
 sbit AD9854_RST   = P2^0;    		//控制信号引脚
 sbit AD9854_SP    = P2^1;
 sbit AD9854_OSK   = P2^2; 			//osk
 sbit AD9854_UDCLK = P2^4; 
 sbit AD9854_WR    = P1^6;
 sbit AD9854_FDATA = P2^6;       //fsk/bpsk/hold
 sbit AD9854_RD    = P2^7;
  		


//====================================================================================
//函数名称:void AD9854_WR_Byte(uchar addr,uchar dat)
//函数功能:AD9854并行口写入数据
//入口参数:addr     6位地址
//         dat      写入的数据
//出口参数:无
//====================================================================================
void AD9854_WR_Byte(uchar addr,uchar dat)
{
	AD9854_AdrBus  = (addr&0x3f) | (P1&0xc0);
	AD9854_DataBus = dat;
	AD9854_WR      = 0;
	AD9854_WR      = 1;	
}

//====================================================================================
//函数名称:void AD9854_Init(void)
//函数功能:AD9854初始化
//入口参数:无
//出口参数:无
//====================================================================================
void AD9854_Init(void)
{
	AD9854_WR=1;//将读、写控制端口设为无效
	AD9854_RD=1;
	AD9854_UDCLK=0;
	AD9854_RST=1;                 //复位AD9854
	DelayMs(10);
	AD9854_RST=0;
  AD9854_SP = 1;
	
	//AD9854_WR_Byte(0x1d,0x10);	           //关闭比较器
	AD9854_WR_Byte(0x1d,0x00);	           //开启比较器
	AD9854_WR_Byte(0x1e,CLK_Set);	   //设置系统时钟倍频            
	AD9854_WR_Byte(0x1f,0x00);	   //设置系统为模式0,由外部更新
	AD9854_WR_Byte(0x20,0x60);	   //设置为可调节幅度,取消插值补偿

	AD9854_UDCLK=1;               //更新AD9854输出
  AD9854_UDCLK=0;
}

//====================================================================================
//函数名称:void Freq_convert(long Freq)
//函数功能:正弦信号频率数据转换
//入口参数:Freq   需要转换的频率,取值从0~SYSCLK/2
//出口参数:无   但是影响全局变量FreqWord[6]的值
//说明:   该算法位多字节相乘算法,有公式FTW = (Desired Output Frequency × 2N)/SYSCLK
//         得到该算法,其中N=48,Desired Output Frequency 为所需要的频率,即Freq,SYSCLK
//         为可编程的系统时钟,FTW为48Bit的频率控制字,即FreqWord[6]
//====================================================================================
void Freq_convert(long Freq)   
{
	ulong FreqBuf;
	ulong Temp=Freq_mult_ulong;   	       

	uchar Array_Freq[4];			     //将输入频率因子分为四个字节
	Array_Freq[0]=(uchar)Freq;
	Array_Freq[1]=(uchar)(Freq>>8);
	Array_Freq[2]=(uchar)(Freq>>16);
	Array_Freq[3]=(uchar)(Freq>>24);

	FreqBuf=Temp*Array_Freq[0];                  
	FreqWord[0]=FreqBuf;    
	FreqBuf>>=8;

	FreqBuf+=(Temp*Array_Freq[1]);
	FreqWord[1]=FreqBuf;
	FreqBuf>>=8;

	FreqBuf+=(Temp*Array_Freq[2]);
	FreqWord[2]=FreqBuf;
	FreqBuf>>=8;

	FreqBuf+=(Temp*Array_Freq[3]);
	FreqWord[3]=FreqBuf;
	FreqBuf>>=8;

	FreqWord[4]=FreqBuf;
	FreqWord[5]=FreqBuf>>8;			
}  

//====================================================================================
//函数名称:void AD9854_SetSine(ulong Freq,uint Shape)
//函数功能:AD9854正弦波产生程序
//入口参数:Freq   频率设置,取值范围为0~(1/2)*SYSCLK
//         Shape  幅度设置. 为12 Bit,取值范围为(0~4095) ,取值越大,幅度越大 
//出口参数:无
//====================================================================================
void AD9854_SetSine(ulong Freq,uint Shape)
{
	uchar count;
	uchar Adress;

	Adress = 0x04;                        //选择频率控制字地址的初值

	Freq_convert(Freq);		           //频率转换

	for(count=6;count>0;)	          //写入6字节的频率控制字  
  {
		AD9854_WR_Byte(Adress++,FreqWord[--count]);
  }
	
	AD9854_WR_Byte(0x21,Shape>>8);	  //设置I通道幅度
	AD9854_WR_Byte(0x22,(uchar)(Shape&0xff));
	
	AD9854_WR_Byte(0x23,Shape>>8);	  //设置Q通道幅度
	AD9854_WR_Byte(0x24,(uchar)(Shape&0xff));

	AD9854_UDCLK=1;                    //更新AD9854输出
  AD9854_UDCLK=0;
}

8051版AD9854.h

#ifndef AD9854_H
#define AD9854_H
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
void AD9854_WR_Byte(uchar addr,uchar dat);
void AD9854_Init(void);
void Freq_convert(long Freq);
void AD9854_SetSine(ulong Freq,uint Shape);


#endif

stm32核心板AD9854.c

#include 
#include "AD9854.h"
#include "Delay.h"

//**********************以下为系统时钟以及其相关变量设置**************************/
/* 
  此处根据自己的需要设置系统时钟以及与其相关的因子,一次需且只需开启一个   
  CLK_Set为时钟倍频设置,可设置4~20倍倍频,但最大不能超过300MHZ
  Freq_mult_ulong和Freq_mult_doulle均为2的48次方除以系统时钟,一个为长整形,一个为双精度型
*/
//#define CLK_Set 7
//const u32  Freq_mult_ulong  = 1340357;
//const double Freq_mult_doulle = 1340357.032;

//#define CLK_Set 9
//const u32  Freq_mult_ulong  = 1042500;		 
//const double Freq_mult_doulle = 1042499.9137431;

// #define CLK_Set 8
// const u32  Freq_mult_ulong  = 1172812;
// const double Freq_mult_doulle = 1172812.403;

#define CLK_Set 10
const u32  Freq_mult_ulong  = 938250;
const double Freq_mult_doulle = 938249.9224;

u8 FreqWord[6];              //6个字节频率控制字

//====================================================================================
// 初始化程序区
//====================================================================================
//====================================================================================
// void GPIO_AD9854_Configuration(void)
// 函数功能: AD9854引脚配置函数
// 入口参数: 无
// 返回参数: 无
// 全局变量: 无
// 调用模块: RCC_APB2PeriphClockCmd(); GPIO_Init();
// 注意事项: 无
//====================================================================================
void GPIO_AD9854_Configuration(void)
{ 
	GPIO_InitTypeDef GPIO_InitStructure;

	// 使能IO口时钟
	RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOC |
							RCC_APB2Periph_GPIOB, ENABLE);   
	// 地址端口
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 |	GPIO_Pin_2 | GPIO_Pin_3 
								| GPIO_Pin_4 | GPIO_Pin_5 ; 
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;;		// 推挽输出
	GPIO_Init(GPIOA, &GPIO_InitStructure);
	// 数据端口
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 |	GPIO_Pin_10 | GPIO_Pin_11 
								| GPIO_Pin_12 | GPIO_Pin_13 |	GPIO_Pin_14 | GPIO_Pin_15; 
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;;		// 推挽输出
	GPIO_Init(GPIOB, &GPIO_InitStructure); 
	// 控制端口
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8  | GPIO_Pin_9  |	GPIO_Pin_10 | GPIO_Pin_11 
								| GPIO_Pin_12 | GPIO_Pin_13 |	GPIO_Pin_14; 
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;;		// 推挽输出
	GPIO_Init(GPIOC, &GPIO_InitStructure);
}

//====================================================================================
// AD9854驱动区
//====================================================================================
//====================================================================================
//函数名称:void AD9854_WR_Byte(uchar addr,uchar dat)
//函数功能:AD9854并行口写入数据
//入口参数:addr     6位地址
//         dat      写入的数据														
//出口参数:无
//====================================================================================
void AD9854_WR_Byte(u8 addr,u8 dat)
{
	u16 Tmp;
	
	Tmp =  GPIO_ReadOutputData(GPIOA);
	GPIO_Write(GPIOA, (u16)(addr&0x3f) | (Tmp & 0xFFC0));		// ADDER  	
	Tmp =  GPIO_ReadOutputData(GPIOB);
 	GPIO_Write(GPIOB, (u16)(dat<<8) | (Tmp & 0x00FF));		  // DATA
	AD9854_WR_Clr;
	AD9854_WR_Set;
}

//====================================================================================
//函数名称:void AD9854_Init(void)
//函数功能:AD9854初始化
//入口参数:无
//出口参数:无
//====================================================================================
void AD9854_Init(void)
{
	AD9854_WR_Set;                 // 将读、写控制端口设为无效
	AD9854_RD_Set;
	AD9854_UDCLK_Clr;
	AD9854_RST_Set;                // 复位AD9854
	Delay_10us (10);
	AD9854_RST_Clr;
	AD9854_SP_Set;


// 	AD9854_WR_Byte(0x1d,0x10);	   // 关闭比较器
	AD9854_WR_Byte(0x1d,0x00);	 // 开启比较器
	AD9854_WR_Byte(0x1e,CLK_Set);	 // 设置系统时钟倍频            
	AD9854_WR_Byte(0x1f,0x01);	   // 设置系统为模式0,由外部更新
	AD9854_WR_Byte(0x20,0x60);	   // 设置为可调节幅度,取消插值补偿,关闭Sinc效应

	AD9854_UDCLK_Set;              // 更新AD9854输出
	AD9854_UDCLK_Clr;
}

//====================================================================================
//函数名称:void Freq_convert(long Freq)
//函数功能:正弦信号频率数据转换
//入口参数:Freq   需要转换的频率,取值从0~SYSCLK/2
//出口参数:无   但是影响全局变量FreqWord[6]的值
//说明:   该算法位多字节相乘算法,有公式FTW = (Desired Output Frequency × 2N)/SYSCLK
//         得到该算法,其中N=48,Desired Output Frequency 为所需要的频率,即Freq,SYSCLK
//         为可编程的系统时钟,FTW为48Bit的频率控制字,即FreqWord[6]
//====================================================================================
void Freq_convert(long Freq)   
{	
  u32 FreqBuf;
  u32 Temp=Freq_mult_ulong;   	       

	u8 Array_Freq[4];			     //将输入频率因子分为四个字节
	Array_Freq[0]=(u8) Freq;
	Array_Freq[1]=(u8)(Freq>>8);
	Array_Freq[2]=(u8)(Freq>>16);
	Array_Freq[3]=(u8)(Freq>>24);

	FreqBuf=Temp*Array_Freq[0];                  
	FreqWord[0]=FreqBuf;    
	FreqBuf>>=8;

	FreqBuf+=(Temp*Array_Freq[1]);
	FreqWord[1]=FreqBuf;
	FreqBuf>>=8;

	FreqBuf+=(Temp*Array_Freq[2]);
	FreqWord[2]=FreqBuf;
	FreqBuf>>=8;

	FreqBuf+=(Temp*Array_Freq[3]);
	FreqWord[3]=FreqBuf;
	FreqBuf>>=8;

	FreqWord[4]=FreqBuf;
	FreqWord[5]=FreqBuf>>8;	
}  

//====================================================================================
//函数名称:void AD9854_SetSine(ulong Freq,uint Shape)
//函数功能:AD9854正弦波产生程序
//入口参数:Freq   频率设置,取值范围为0~(1/2)*SYSCLK
//         Shape  幅度设置. 为12 Bit,取值范围为(0~4095) ,取值越大,幅度越大 
//出口参数:无
//====================================================================================
void AD9854_SetSine(u32 Freq,u16 Shape)
{
	u8 count;
	u8 Adress;

	Adress = 0x04;                      //选择频率控制字地址的初值

	Freq_convert(Freq);		              //频率转换

	for(count=6;count>0;)	              //写入6字节的频率控制字  
  {
		AD9854_WR_Byte(Adress++,FreqWord[--count]);
  }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
	
	AD9854_WR_Byte(0x21,(Shape>>8) & 0x00FF);	    		//设置I通道幅度
	AD9854_WR_Byte(0x22,(Shape&0x00ff));
	
	AD9854_WR_Byte(0x23,(Shape>>8) & 0x00FF);	    //设置Q通道幅度
	AD9854_WR_Byte(0x24,(Shape&0x00ff));
	AD9854_UDCLK_Set;                   			//更新AD9854输出
	AD9854_UDCLK_Clr;

}

//====================================================================================
//函数名称:void Freq_doublt_convert(double Freq)
//函数功能:正弦信号频率数据转换
//入口参数:Freq   需要转换的频率,取值从0~SYSCLK/2
//出口参数:无   但是影响全局变量FreqWord[6]的值
//说明:   有公式FTW = (Desired Output Frequency × 2N)/SYSCLK得到该函数,
//         其中N=48,Desired Output Frequency 为所需要的频率,即Freq,SYSCLK
//         为可编程的系统时钟,FTW为48Bit的频率控制字,即FreqWord[6]
//注意:   该函数与上面函数的区别为该函数的入口参数为double,可使信号的频率更精确
//         谷雨建议在100HZ以下用本函数,在高于100HZ的情况下用函数void Freq_convert(long Freq)
//====================================================================================
//void Freq_double_convert(double Freq)   
//{
//	u32 Low32;
//	u16 High16;
//  double Temp=Freq_mult_doulle;   	            //23ca99为2的48次方除以120M
//	Freq*=(double)(Temp);
	1 0000 0000 0000 0000 0000 0000 0000 0000 = 4294967295
//	High16 = (int)(Freq/4294967295);                  //2^32 = 4294967295
//	Freq -= (double)High16*4294967295;
//	Low32 = (u32)Freq;

//	FreqWord[0]=Low32;	     
//	FreqWord[1]=Low32>>8;
//	FreqWord[2]=Low32>>16;
//	FreqWord[3]=Low32>>24;
//	FreqWord[4]=High16;
//	FreqWord[5]=High16>>8;			
//} 

//====================================================================================
//函数名称:void AD9854_SetSine_double(double Freq,uint Shape)
//函数功能:AD9854正弦波产生程序
//入口参数:Freq   频率设置,取值范围为0~1/2*SYSCLK
//         Shape  幅度设置. 为12 Bit,取值范围为(0~4095) 
//出口参数:无
//====================================================================================
//void AD9854_SetSine_double(double Freq,u16 Shape)
//{
//	u8 count=0;
//	u8 Adress;

//	Adress=0x04;						     //选择频率控制字1地址的初值

//	Freq_double_convert(Freq);		           //频率转换
//	 
//	for(count=6;count>0;)	                    //写入6字节的频率控制字  
//  {
//		AD9854_WR_Byte(Adress++,FreqWord[--count]);
//  }
//	
//	AD9854_WR_Byte(0x21,Shape>>8);	  //设置I通道幅度
//	AD9854_WR_Byte(0x22,(u8)(Shape&0xff));
//	
//	AD9854_WR_Byte(0x23,Shape>>8);	  //设置Q通道幅度
//	AD9854_WR_Byte(0x24,(u8)(Shape&0xff));

//	AD9854_UDCLK_Set;                    //更新AD9854输出
//  AD9854_UDCLK_Clr;
//}

//====================================================================================
//函数名称:void AD9854_InitFSK(void)
//函数功能:AD9854的FSK初始化
//入口参数:无
//出口参数:无
//====================================================================================
//void AD9854_InitFSK(void)
//{
//	AD9854_WR_Set;                        //将读、写控制端口设为无效
//  AD9854_RD_Clr;
//  AD9854_UDCLK_Clr;
//  AD9854_RST_Set;                        //复位AD9854
//  Delay_1ms(1);	
//  AD9854_RST_Clr;
//  AD9854_SP_Set;

//	AD9854_WR_Byte(0x1d,0x10);	       //关闭比较器
//	AD9854_WR_Byte(0x1e,CLK_Set);	   //设置系统时钟倍频
//	AD9854_WR_Byte(0x1f,0x02);	       //设置系统为模式1,由外部更新
//	AD9854_WR_Byte(0x20,0x60);	      //设置为可调节幅度,取消插值补偿

//	AD9854_UDCLK_Set;                  //更新AD9854输出
//  AD9854_UDCLK_Clr;
//}

//====================================================================================
//函数名称:void AD9854_SetFSK(ulong Freq1,ulong Freq2)
//函数功能:AD9854的FSK设置
//入口参数:Freq1   FSK频率1   
//         Freq2   FSK频率2
//出口参数:无
//====================================================================================
//void AD9854_SetFSK(u32 Freq1,u32 Freq2)
//{
//  u8 count=6;
//	u8 Adress1,Adress2;

//	const u16 Shape=4000;	      //幅度设置. 为12 Bit,取值范围为(0~4095)
//	
//	Adress1=0x04;				 //选择频率控制字1地址的初值
//	Adress2=0x0a;				 //选择频率控制字2地址的初值
//	
//	Freq_convert(Freq1);               //频率转换1
//	
//	for(count=6;count>0;)	          //写入6字节的频率控制字  
//  {
//		AD9854_WR_Byte(Adress1++,FreqWord[--count]);
//  }
//	
//	Freq_convert(Freq2);               //频率转换2

//	for(count=6;count>0;)	          //写入6字节的频率控制字  
//  {
//		AD9854_WR_Byte(Adress2++,FreqWord[--count]);
//  }

//	AD9854_WR_Byte(0x21,Shape>>8);	      //设置I通道幅度
//	AD9854_WR_Byte(0x22,(u8)(Shape&0xff));
//	
//	AD9854_WR_Byte(0x23,Shape>>8);	     //设置Q通道幅度
//	AD9854_WR_Byte(0x24,(u8)(Shape&0xff));

//	AD9854_UDCLK_Set;                    //更新AD9854输出
//  AD9854_UDCLK_Clr;		
//}

//====================================================================================
//函数名称:void AD9854_InitBPSK(void)
//函数功能:AD9854的BPSK初始化
//入口参数:无
//出口参数:无
//====================================================================================
//void AD9854_InitBPSK(void)
//{
//	AD9854_WR_Set;                    //将读、写控制端口设为无效
//	AD9854_RD_Clr;
//	AD9854_UDCLK_Clr;
//	AD9854_RST_Set;                   //复位AD9854
//  Delay_1ms(1);	
//	AD9854_RST_Clr;
//  AD9854_SP_Set;

//	AD9854_WR_Byte(0x1d,0x10);	       //关闭比较器
//	AD9854_WR_Byte(0x1e,CLK_Set);	   //设置系统时钟倍频
//	AD9854_WR_Byte(0x1f,0x08);	      //设置系统为模式4,由外部更新
//	AD9854_WR_Byte(0x20,0x60);	      //设置为可调节幅度,取消插值补偿

//	AD9854_UDCLK_Set;                //更新AD9854输出
//  AD9854_UDCLK_Clr;
//}

//====================================================================================
//函数名称:void AD9854_SetBPSK(uint Phase1,uint Phase2)
//函数功能:AD9854的BPSK设置
//入口参数:Phase1   调制相位1
//         Phase2	调制相位2
//出口参数:无
//说明:   相位为14Bit,取值从0~16383,谷雨建议在用本函数的时候将Phase1设置为0,
//         将Phase1设置为8192,180°相位
//====================================================================================
//void AD9854_SetBPSK(u16 Phase1,u16 Phase2)
//{
//	u8 count;

//	const u32 Freq=60000;
//  const u16 Shape=4000;

//	u8 Adress;
//	Adress=0x04;                           //选择频率控制字1地址的初值

//	AD9854_WR_Byte(0x00,Phase1>>8);	           //设置相位1
//	AD9854_WR_Byte(0x01,(u8)(Phase1&0xff));
//	
//	AD9854_WR_Byte(0x02,Phase2>>8);	          //设置相位2
//	AD9854_WR_Byte(0x03,(u8)(Phase2&0xff));

//	Freq_convert(Freq);                            //频率转换

//	for(count=6;count>0;)	                         //写入6字节的频率控制字  
//  {
//		AD9854_WR_Byte(Adress++,FreqWord[--count]);
//  }

//	AD9854_WR_Byte(0x21,Shape>>8);	                  //设置I通道幅度
//	AD9854_WR_Byte(0x22,(u8)(Shape&0xff));
//	
//	AD9854_WR_Byte(0x23,Shape>>8);	               //设置Q通道幅度
//	AD9854_WR_Byte(0x24,(u8)(Shape&0xff));

//	AD9854_UDCLK_Set;                                //更新AD9854输出
//  AD9854_UDCLK_Clr;	
//}

//====================================================================================
//函数名称:void AD9854_InitOSK(void)
//函数功能:AD9854的OSK初始化
//入口参数:无
//出口参数:无
//====================================================================================
//void AD9854_InitOSK(void)
//{																				
//	AD9854_WR_Set;                           //将读、写控制端口设为无效
//	AD9854_RD_Clr;
//	AD9854_UDCLK_Clr;
//	AD9854_RST_Set;                          //复位AD9854
//  Delay_1ms(1);	
//	AD9854_RST_Clr;
//  AD9854_SP_Set;

//  AD9854_WR_Byte(0x1d,0x10);	           //关闭比较器
//	AD9854_WR_Byte(0x1e,CLK_Set);	       //设置系统时钟倍频
//	AD9854_WR_Byte(0x1f,0x00);	           //设置系统为模式0,由外部更新
//	AD9854_WR_Byte(0x20,0x70);	           //设置为可调节幅度,取消插值补偿,通断整形内部控制

//	AD9854_UDCLK_Set;                        //更新AD9854输出
//	AD9854_UDCLK_Clr;
//}

//====================================================================================
//函数名称:void AD9854_SetOSK(uchar RateShape)
//函数功能:AD9854的OSK设置
//入口参数: RateShape    OSK斜率,取值为4~255,小于4则无效
//出口参数:无
//====================================================================================
//void AD9854_SetOSK(u8 RateShape)
//{
//	u8 count;

//	const u32 Freq=60000;			 //设置载频
//  const u16  Shape=4000;			//幅度设置. 为12 Bit,取值范围为(0~4095)

//	u8 Adress;
//	Adress=0x04;               //选择频率控制字地址的初值

//	Freq_convert(Freq);                       //频率转换

//	for(count=6;count>0;)	                         //写入6字节的频率控制字  
//  {
//		AD9854_WR_Byte(Adress++,FreqWord[--count]);
//  }

//	AD9854_WR_Byte(0x21,Shape>>8);	                  //设置I通道幅度
//	AD9854_WR_Byte(0x22,(u8)(Shape&0xff));
//	
//	AD9854_WR_Byte(0x23,Shape>>8);	                  //设置Q通道幅度
//	AD9854_WR_Byte(0x24,(u8)(Shape&0xff));  	 


//  AD9854_WR_Byte(0x25,RateShape);				       //设置OSK斜率

//	AD9854_UDCLK_Set;                                //更新AD9854输出
//  AD9854_UDCLK_Clr;	
//}

//====================================================================================
//函数名称:void AD9854_InitAM(void)
//函数功能:AD9854的AM初始化
//入口参数:无
//出口参数:无
//====================================================================================
//void AD9854_InitAM(void)
//{
//	u8 count;

//	const u32 Freq=60000;			 //设置载频

//	u8  Adress;
//	Adress=0x04;      //选择频率控制字地址的初值
//	
//	AD9854_WR_Set;    //将读、写控制端口设为无效
//	AD9854_RD_Clr;
//	AD9854_UDCLK_Clr;
//	AD9854_RST_Set;     //复位AD9854
//  Delay_1ms(1);	
//	AD9854_RST_Clr;
//  AD9854_SP_Set;

//	AD9854_WR_Byte(0x1d,0x10);	                  //关闭比较器
//	AD9854_WR_Byte(0x1e,CLK_Set);	             //设置系统时钟倍频
//	AD9854_WR_Byte(0x1f,0x00);	                 //设置系统为模式0,由外部更新
//	AD9854_WR_Byte(0x20,0x60);	                  //设置为可调节幅度,取消插值补偿

//	Freq_convert(Freq);                            //频率转换

//	for(count=6;count>0;)	                         //写入6字节的频率控制字  
//  {
//		AD9854_WR_Byte(Adress++,FreqWord[--count]);
//  }

//	AD9854_UDCLK_Set;                             //更新AD9854输出
//	AD9854_UDCLK_Clr;
//}

//====================================================================================
//函数名称:void AD9854_SetAM(uchar Shape)
//函数功能:AD9854的AM设置
//入口参数:Shape   12Bit幅度,取值从0~4095   
//出口参数:无
//====================================================================================
//void AD9854_SetAM(u16 Shape)
//{
//	AD9854_WR_Byte(0x21,Shape>>8);	                  //设置I通道幅度
//	AD9854_WR_Byte(0x22,(u8)(Shape&0xff));
//	
//	AD9854_WR_Byte(0x23,Shape>>8);	                  //设置Q通道幅度
//	AD9854_WR_Byte(0x24,(u8)(Shape&0xff));

//	AD9854_UDCLK_Set;                                   //更新AD9854输出
//  AD9854_UDCLK_Clr;			
//}

//====================================================================================
//函数名称:void AD9854_InitRFSK(void)
//函数功能:AD9854的RFSK初始化
//入口参数:无
//出口参数:无
//====================================================================================
void AD9854_InitRFSK(void)
{
	AD9854_WR_Set;                      //将读、写控制端口设为无效
	AD9854_RD_Clr;
	AD9854_UDCLK_Clr;
	AD9854_RST_Set;                     //复位AD9854
	Delay_1ms(1);	
	AD9854_RST_Clr;
	AD9854_SP_Set;
	AD9854_FDATA_Clr;

	AD9854_WR_Byte(0x1d,0x10);	        //关闭比较器
	AD9854_WR_Byte(0x1e,CLK_Set);	      //设置系统时钟倍频
	AD9854_WR_Byte(0x1f,0x24);	        //设置系统为模式2,由外部更新,使能三角波扫频功能
	AD9854_WR_Byte(0x20,0x60);	        //设置为可调节幅度,取消插值补偿,关闭Sinc效应	

	AD9854_UDCLK_Set;                   //更新AD9854输出
  AD9854_UDCLK_Clr;
}

//====================================================================================
//函数名称:void AD9854_SetRFSK(void)
//函数功能:AD9854的RFSK设置
//入口参数:Freq_Low          RFSK低频率	   48Bit
//         Freq_High         RFSK高频率	   48Bit
//         Freq_Up_Down		 步进频率	   48Bit
//		     FreRate           斜率时钟控制  20Bit
//出口参数:无
//注:     每两个脉冲之间的时间周期用下式表示(FreRate +1)*(System Clock ),一个脉冲,
//         频率 上升或者下降 一个步进频率
//====================================================================================
void AD9854_SetRFSK(u32 Freq_Low,u32 Freq_High,u32 Freq_Up_Down,u32 FreRate)
{
	u8 count=6;
	u8 Adress1,Adress2,Adress3;
  const u16  Shape=3600;			   //幅度设置. 为12 Bit,取值范围为(0~4095)

	Adress1=0x04;		     //选择频率控制字地址的初值 
	Adress2=0x0a;
	Adress3=0x10;

	Freq_convert(Freq_Low);                             //频率1转换

	for(count=6;count>0;)	                         //写入6字节的频率控制字  
  {
		AD9854_WR_Byte(Adress1++,FreqWord[--count]);
  }

	Freq_convert(Freq_High);                             //频率2转换

	for(count=6;count>0;)	                         //写入6字节的频率控制字  
  {
		AD9854_WR_Byte(Adress2++,FreqWord[--count]);
  }

	Freq_convert(Freq_Up_Down);                             //步进频率转换

	for(count=6;count>0;)	                               //写入6字节的频率控制字  
  {
		AD9854_WR_Byte(Adress3++,FreqWord[--count]);
  }

	AD9854_WR_Byte(0x1a,(u8)((FreRate>>16)&0x0f));				   //设置斜升速率
	AD9854_WR_Byte(0x1b,(u8)(FreRate>>8));
	AD9854_WR_Byte(0x1c,(u8)FreRate);				    

	AD9854_WR_Byte(0x21,Shape>>8);	                  //设置I通道幅度
	AD9854_WR_Byte(0x22,(u8)(Shape&0xff));
	
	AD9854_WR_Byte(0x23,Shape>>8);	                  //设置Q通道幅度
	AD9854_WR_Byte(0x24,(u8)(Shape&0xff));

	AD9854_UDCLK_Set;                                //更新AD9854输出
  AD9854_UDCLK_Clr;	
}

stm32核心板版AD9854.h

/*--------------------------------------------------------------
头文件名:AD9854.h				  
文件描述:数据处理头文件
---------------------------------------------------------------*/
#ifndef _AD9854_H_
#define _AD9854_H_

#include 
//----------------------------------------------------------------
// AD9854_I/O控制线
//-----------------------------------------------------------------
#define AD9854_RD_Set (GPIO_SetBits(GPIOC,GPIO_Pin_8))         
#define AD9854_RD_Clr (GPIO_ResetBits(GPIOC,GPIO_Pin_8))

#define AD9854_WR_Set (GPIO_SetBits(GPIOC,GPIO_Pin_9))         
#define AD9854_WR_Clr (GPIO_ResetBits(GPIOC,GPIO_Pin_9))

#define AD9854_UDCLK_Set (GPIO_SetBits(GPIOC,GPIO_Pin_10))           
#define AD9854_UDCLK_Clr (GPIO_ResetBits(GPIOC,GPIO_Pin_10))

#define AD9854_RST_Set (GPIO_SetBits(GPIOC,GPIO_Pin_11))				   //开关电源板
#define AD9854_RST_Clr (GPIO_ResetBits(GPIOC,GPIO_Pin_11))

#define AD9854_SP_Set (GPIO_SetBits(GPIOC,GPIO_Pin_12))         
#define AD9854_SP_Clr (GPIO_ResetBits(GPIOC,GPIO_Pin_12))

#define AD9854_OSK_Set (GPIO_SetBits(GPIOC,GPIO_Pin_13))         
#define AD9854_OSK_Clr (GPIO_ResetBits(GPIOC,GPIO_Pin_13))

#define AD9854_FDATA_Set (GPIO_SetBits(GPIOC,GPIO_Pin_14))        //fsk/bpsk/hold  
#define AD9854_FDATA_Clr (GPIO_ResetBits(GPIOC,GPIO_Pin_14))


//**************************以下部分为函数定义********************************
extern void GPIO_AD9854_Configuration(void);						// AD9854_IO口初始化
static void AD9854_WR_Byte(u8 addr,u8 dat);	  
extern void AD9854_Init(void);						  
static void Freq_convert(long Freq);	         	  
extern void AD9854_SetSine(u32 Freq,u16 Shape);	  
static void Freq_double_convert(double Freq);		  
extern void AD9854_SetSine_double(double Freq,u16 Shape);
extern void AD9854_InitFSK(void);				
extern void AD9854_SetFSK(u32 Freq1,u32 Freq2);					  
extern void AD9854_InitBPSK(void);					  
extern void AD9854_SetBPSK(u16 Phase1,u16 Phase2);					
extern void AD9854_InitOSK(void);					 
extern void AD9854_SetOSK(u8 RateShape);					  
extern void AD9854_InitAM(void);					 
extern void AD9854_SetAM(u16 Shape);					
extern void AD9854_InitRFSK(void);					 
extern void AD9854_SetRFSK(u32 Freq_Low,u32 Freq_High,u32 Freq_Up_Down,u32 FreRate);				

#endif

你可能感兴趣的:(国电设,ADC0804,AD9854,LCD1602)