系统软件设计
一、系统主程序设计
主程序流程图如下所示:
主程序流程图
其中系统初始化包括:单片机时钟分频器设置,液晶初始化,DDS初始化,AD转换初始化;在欢迎界面中显示:Welcome! Press <ENTER>;设置界面中显示:中心频率F:0 2 0 0 3 KHZ,扫频宽度W: 1 0 0 0 KHZ;Getch()表示读键盘的键值。
进入参数设置子程序完成中心频率及扫频宽度的设置。完成设置后进入数据处理程序:DataProcess(void),在处理完成将数据存入显示数组uchar xdata DisplayValue[100]和uchar xdata DisplayFre[100],其中数组采用内部扩展RAM进行存储[11]。在频谱读取界面中用户可以通过按<读取>键移动指针,在液晶上显示了指针对应频率及其频率的功率值。
二、DDS程序设计
在头文件AD9851.h中对AD9851引脚进行定义:
(1)sbit AD9851_bit_data =P1^3; //P1.1口接AD9851的D7脚/PIN25
(2)sbit AD9851_w_clk =P1^2; //P1.1口接AD9851的w_clk脚/PIN7
(3)sbit AD9851_fq_up =P1^1; //P1.1口接AD9851的fq_up脚/PIN8
(4)sbit AD9851_rest =P1^0; //P1.0口接AD9851的rest脚/PIN12
1. DDS初始化程序
在本系统中采用串口模式向DDS写数据。在AD9851数据文档中介绍了进入串口模式时要先向DDS写入xxxxx011。void AD9851Reset(void);进入串口模式初始化函数/
2. DDS写入程序
格式:void AD9851Write(unsigned char w0,double frequence)
参数:frequence为写入的频率;W0为0X01表示开六倍频,时钟频率为180MHz;0X00表示不开六倍频,时钟频率为30MHz。
DDS输出信 频率:
其中fc为累加器时钟频率,K为频率相位控制字,N为累加器位数。对于本系统AD9851的fc=
180MHz,N=32。
要输出对应频率则频率相位控制字:
频率转换成频率控制字程序段:
long int y;
double x; //变量
x=4294967295/180;
frequence=frequence/1000000;
frequence=frequence*x;
y=frequence; //y就是频率控制字
AD9851串口模式时序图
在上图5中通过40个时钟周期将频率相位控制字写入AD9851,其中W0-W31为频率控制字,W32为6倍频所能位,W33为逻辑0位(一直为0),W34为掉电模式位,W35-W39为相位控制字。40位数据后产生一个装载信 FQ_UD将数据使能。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!