📄 ad9851_driver.lst
字号:
C51 COMPILER V8.02 AD9851_DRIVER 01/14/2009 21:15:25 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE AD9851_DRIVER
OBJECT MODULE PLACED IN AD9851_driver.OBJ
COMPILER INVOKED BY: D:\单片机\C51\BIN\C51.EXE AD9851_driver.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<c8051f020.h>
2 #include "initial.h"
3 #define Data_Port_DDS P7
4 #define REF_clk 30000000.0//DDS参考时钟输入频率30M;
5 sbit W_clk=P0^0; /*上升沿有效*/
6 sbit FQ_UD=P0^1; /*上升沿有效*/
7 sbit DDS_RES=P0^2; /*低电平有效*/
8
9 void AD9851_Init(void)
10 {
11 1 FQ_UD=0;
12 1 DDS_RES=1; // /*重启AD9851
13 1 delay(100);
14 1 W_clk=0;
15 1 delay(50);
16 1 DDS_RES=0; // /*开始操作AD9851
17 1 }
18 ////////////////////////////////////////////////////
19 //计算发送的频率和相位值并发送给单片机
20 ///////////////////////////////////////////////////
21 void AD9851_DDS_Control(long Freq,float Phase)
22 {
23 1 long Freq_Data,d1; //////32位频率控制字
24 1 float fl_data; //////d1和fl_data为通过频率Freq计算控制字的中间变量
25 1 uchar FData[5],i;
26 1 uchar PData; /////////5位相位控制字
27 1
28 1 d1=Freq<<8; //d1*256
29 1 fl_data=d1/REF_clk;
30 1 Freq_Data=fl_data*16777216; //得到频率控制字(加上面2的8次方,共2的32次方)
31 1
32 1 FData[4]=Freq_Data; ///////////// ,FData为char型,
33 1 FData[3]=Freq_Data>>8; /////////// ,数据保存到FData数组
34 1 FData[2]=Freq_Data>>16; ///////////// ,高8位丢失;
35 1 FData[1]=Freq_Data>>24; //////////////////
36 1
37 1 PData=(Phase/360.0)*32.0;
38 1 FData[0]=0x00; //6倍频开‘1’,并行工作‘0’,非掉电方式‘0’;
39 1 PData=PData<<3;
40 1 FData[0]=FData[0]|PData; ////////确定相位控制字以及工作方式;
41 1 FQ_UD=0;W_clk=0;DDS_RES=1;//复位;
42 1 delay(10);
43 1 DDS_RES=0;
44 1 for(i=0;i<5;i++)
45 1 {
46 2 Data_Port_DDS=FData[i];
47 2 W_clk=1;delay(20); //上升沿将数据写入;
48 2 W_clk=0;delay(20);
49 2 }
50 1 FQ_UD=1;//频率更新控制信号(上升沿将40位数据送入DDS;)
51 1 delay(50);
52 1 FQ_UD=0;
53 1 }
C51 COMPILER V8.02 AD9851_DRIVER 01/14/2009 21:15:25 PAGE 2
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 225 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 22
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -