📄 main.lst
字号:
C51 COMPILER V9.00 MAIN 11/13/2010 14:58:23 PAGE 1
C51 COMPILER V9.00, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Program Files\KEIL C V4\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
*** WARNING C500 IN LINE 1 OF MAIN.C: LICENSE ERROR (R208: RENEW LICENSE ID CODE (LIC))
1 /******************************************************
2 /程序部分开始
3 ******************************************************/
4 # include "reg24le1.h"
5 # include "intrins.h"
6 /*****************************************************/
7 #define ad9850_w_clk P00
8 #define ad9850_fq_up P01
9 #define ad9850_rest P02
10 #define ad9850_bit_data P03
11 #define LED P04
12 #define Enableint do{EA=1;}while(0)
13 #define Disableint do{EA=0;}while(0)
14 #define EnableAD9850 do{ad9850_fq_up=0;\
15 ad9850_fq_up=1; }while(0)
16 /*****************************************************
17 /重定义数据类型
18 *****************************************************/
19 typedef unsigned char uchar;
20 typedef unsigned int uint ;
21 /*****************************************************
22 /
23 /AD9850复位(并口模式)
24 /
25 *****************************************************/
26 void ad9850_reset()
27 {
28 1 ad9850_w_clk=0;
29 1 ad9850_fq_up=0;
30 1 /* rest信号 */
31 1 ad9850_rest=0;
32 1 ad9850_rest=1;
33 1 ad9850_rest=0;
34 1 }
35 /*****************************************************
36 /
37 /AD9850复位(串口模式)
38 /
39 ******************************************************/
40
41 void ad9850_reset_serial()
42 {
43 1 ad9850_w_clk=0;
44 1 ad9850_fq_up=0;
45 1 /*rest信号 */
46 1 ad9850_rest=0;
47 1 ad9850_rest=1;
48 1 ad9850_rest=0;
49 1 /*w_clk信号 */
50 1 ad9850_w_clk=0;
51 1 ad9850_w_clk=1;
52 1 ad9850_w_clk=0;
53 1 /*fq_up信号 */
54 1 ad9850_fq_up=0;
C51 COMPILER V9.00 MAIN 11/13/2010 14:58:23 PAGE 2
55 1 ad9850_fq_up=1;
56 1 ad9850_fq_up=0;
57 1 }
58 /*****************************************************
59 /
60 /往AD9850移入一个字节(串口模式)
61 /
62 ******************************************************/
63 void Write_Byte_S(uchar Dat)
64 {
65 1 uchar i;
66 1 for(i=0;i<8;i++)
67 1 {
68 2 ad9850_bit_data=(Dat>>i)&0x01;
69 2 ad9850_w_clk=1;
70 2 ad9850_w_clk=0;
71 2 }
72 1 }
73
74 /*****************************************************
75 /
76 /往AD9850移入一个字节(并口模式,设并口连接P0口)
77 /
78 ******************************************************/
79 void Write_Byte_P(uchar Dat)
80 {
81 1 P0=Dat;
82 1 ad9850_w_clk=1;
83 1 ad9850_w_clk=0;
84 1 }
85 /****************************************************
86 /
87 /向ad9850中写命令与数据(并口)
88 /
89 *****************************************************/
90 void ad9850_wr_parrel(uchar w0,double frequence)
91 {
92 1 uchar w;
93 1 long int y;
94 1 double x;
95 1 x=4294962957/125;
96 1 frequence=frequence*x/1000000;
97 1 y=frequence;
98 1 w=w0;
99 1 Write_Byte_P(w);/*写w0数据 */
100 1 w=(y>>24);
101 1 Write_Byte_P(w);/*写w1数据 */
102 1 w=(y>>16);
103 1 Write_Byte_P(w);/*写w2数据 */
104 1 w=(y>>8);
105 1 Write_Byte_P(w);/*写w3数据 */
106 1 w=(y>>=0);
107 1 Write_Byte_P(w);/*写w4数据 */
108 1 EnableAD9850; /*移入使能 */
109 1 }
110 /*****************************************************
111 /
112 /串口方式写AD9850的控制字
113 /
114 ******************************************************/
115 void ad9850_wr_serial(uchar w0,double frequence)
116 {
C51 COMPILER V9.00 MAIN 11/13/2010 14:58:23 PAGE 3
117 1 uchar w;
118 1 long int y;
119 1 double x;
120 1 x=4294967295/125;
121 1 frequence=frequence*x/1000000;
122 1 y=frequence;
123 1 w=(y>>=0);
124 1 Write_Byte_S(w);/*写w4数据 */
125 1 w=(y>>8);
126 1 Write_Byte_S(w);/*写w3数据 */
127 1 w=(y>>16);
128 1 Write_Byte_S(w);/*写w2数据 */
129 1 w=(y>>24);
130 1 Write_Byte_S(w);/*写w1数据 */
131 1 w=w0;
132 1 Write_Byte_S(w);/*写w0数据 */
133 1 EnableAD9850; /*移入使能 */
134 1 }
135 /****************************************************
136 /
137 /nRF24LE1工作时钟设置
138 /
139 ****************************************************/
140 void WorkClkSet()
141 {
142 1 CLKCTRL = 0x28;
143 1 CLKLFCTRL = 0x01;
144 1 }
145 /****************************************************
146 /
147 /nRF24LE1的I/O口配置函数,P0口配置成输出,初始为低电平
148 /
149 *****************************************************/
150 void IO_CNFG()
151 {
152 1 P0DIR=0X00;
153 1 P0=0X00;
154 1 }
155 /****************************************************
156 /
157 /Delay延时函数
158 /
159 ****************************************************/
160 void Delay(uint x)
161 {
162 1 uint dl;
163 1 for(;x>0;x--)
164 1 for(dl=120;dl>0;dl--)
165 1 {
166 2 _nop_();
167 2 }
168 1 }
169 /****************************************************
170 /
171 /LED灯的闪烁函数
172 /
173 *****************************************************/
174 void Light_LED()
175 {
176 1 LED=!LED;
177 1 Delay(1000);
178 1 }
C51 COMPILER V9.00 MAIN 11/13/2010 14:58:23 PAGE 4
179 /****************************************************
180 /
181 /主函数部分
182 /
183 *****************************************************/
184 main()
185 {
186 1 Disableint;
187 1 WorkClkSet();
188 1 IO_CNFG();
189 1 ad9850_reset_serial(); /*复位芯片 AD9850*/
190 1 Delay(100);
191 1 ad9850_wr_serial(0x00,10000000); /*串行写入 AD9850*/
192 1 Delay(100);
193 1 Enableint;
194 1 while(1)
195 1 {
196 2 Light_LED(); /*LED指示灯进行芯片状态显示*/
197 2 }
198 1 }
199 /****************************************************
200 * 程序到此结束 *
201 ****************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 407 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 18
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -