📄 ad9954.lst
字号:
C51 COMPILER V7.09 AD9954 08/24/2007 09:36:16 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE AD9954
OBJECT MODULE PLACED IN AD9954.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE AD9954.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2 #include "AD9954.h"
3
4 unsigned long CFR1 = 0;
5 unsigned long CFR1SLAVE = 0x00800000;
6 unsigned long CFR2 = 0x00000024;
7 unsigned long ASF;
8 unsigned long ARR;
9 unsigned long FTW0;
10 unsigned long POW0;
11 unsigned long FTW1;
12 unsigned long NLSCW;
13 unsigned long PLSCW;
14 unsigned long multfreq = 0xffffffff; //计算频率控制字的系数
15
16
17 /***********************************************************************
18 ** 函数名称: 端口操作
19 ** 功能描述: AD9954端口基本操作
20 ** 输 入: 无
21 ** 输 出: 无
22 ** 全局变量: 无
23 ** 调用模块: 无
24 ***********************************************************************/
25 void SCLK_0(void)
26 {
27 1 SCLK = 0;
28 1 }
29
30
31 void SCLK_1(void)
32 {
33 1 SCLK = 2;
34 1 }
35
36
37 void SDIO_0(void)
38 {
39 1 SDIO = 0;
40 1 }
41
42
43 void SDIO_1(void)
44 {
45 1 SDIO = 1;
46 1 }
47
48
49 void CS_Enable(void)
50 {
51 1 CS = 0;
52 1 }
53
54
55 void CS_Disable(void)
C51 COMPILER V7.09 AD9954 08/24/2007 09:36:16 PAGE 2
56 {
57 1 CS = 1;
58 1 }
59
60 void CS2_Enable(void)
61 {
62 1 CS2 = 0;
63 1 }
64
65 void CS2_Disable(void)
66 {
67 1 CS2 = 1;
68 1 }
69
70 void IO_UPDATE_0(void)
71 {
72 1 IO_UPDATE = 0;
73 1 }
74
75 void IO_UPDATE_1(void)
76 {
77 1 IO_UPDATE = 1;
78 1 }
79
80 void IO_SYNC_1(void)
81 {
82 1 IO_SYNC = 1;
83 1 }
84
85 void IO_SYNC_0(void)
86 {
87 1 IO_SYNC = 0;
88 1 }
89
90 void PS0_Set_High(void)
91 {
92 1 PS0 = 1;
93 1 }
94
95 void PS0_Set_Low(void)
96 {
97 1 PS0 = 0;
98 1 }
99
100 void PS1_Set_High(void)
101 {
102 1 PS1 = 1;
103 1 }
104
105 void PS1_Set_Low(void)
106 {
107 1 PS1 = 0;
108 1 }
109
110
111 /***********************************************************************
112 ** 函数名称: IO9954_Init
113 ** 功能描述: IO_Init
114 ** 输 入: 无
115 ** 输 出: 无
116 ** 全局变量: 无
117 ** 调用模块: 无
C51 COMPILER V7.09 AD9954 08/24/2007 09:36:16 PAGE 3
118 ***********************************************************************/
119 void IO9954_Init()
120 {
121 1 CS2 = 0;
122 1 P0 = 0x00;
123 1 }
124
125 /***********************************************************************
126 ** 函数名称: nNop
127 ** 功能描述: US级软件延时(不精确)
128 ** 输 入: 延时参数,值越大时延时越久
129 ** 输 出: 无
130 ** 全局变量: 无
131 ** 调用模块: 无
132 ***********************************************************************/
133 void nNop(unsigned long nValue)
134 {
135 1 unsigned long i;
136 1 for(i=nValue;i>0;i--);
137 1 }
138
139 /***********************************************************************
140 ** 函数名称: WriteByte
141 ** 功能描述: 向AD9954发送一字节数据 MSB FIRST
142 ** 输 入: unsigned char data 发送的数据
143 ** 输 出: 无
144 ** 全局变量: 无
145 ** 调用模块: 端口操作 nNop
146 ***********************************************************************/
147 void WriteByte(unsigned char Data)
148 {
149 1 unsigned char k;
150 1 for(k=0;k<8;k++)
151 1 {
152 2 SCLK_0();
153 2 nNop(4);
154 2 if((Data&0x80) == 0x80)
155 2 SDIO_1();
156 2 else
157 2 SDIO_0();
158 2 Data = Data << 1;
159 2 nNop(2);
160 2 SCLK_1();
161 2 nNop(4);
162 2 }
163 1 }
164
165
166 /***********************************************************************
167 ** 函数名称: ReadByte
168 ** 功能描述: 从AD9954读取一字节数据 MSB FIRST
169 ** 输 入: 无
170 ** 输 出: unsigned char 读回的数据
171 ** 全局变量: 无
172 ** 调用模块: 端口操作
173 ***********************************************************************/
174 unsigned char ReadByte(void)
175 {
176 1 unsigned char Data=0;
177 1 unsigned char k;
178 1 SDIO = 0;
179 1 for(k=0;k<8;k++)
C51 COMPILER V7.09 AD9954 08/24/2007 09:36:16 PAGE 4
180 1 {
181 2 SCLK_0();
182 2 nNop(1);
183 2 nNop(1);
184 2 SCLK_1();
185 2 nNop(1);
186 2 nNop(1);
187 2 Data = Data << 1;
188 2 if(SDIO)
189 2 {
190 3 Data |= 0x01;
191 3 }
192 2 }
193 1 SDIO = 1;
194 1 return Data;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -