📄 ad9851.lst
字号:
C51 COMPILER V7.06 AD9851 05/24/2007 21:29:25 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE AD9851
OBJECT MODULE PLACED IN D:\MYDOCU~1\AD9851~1\TEST_9~1\AD9851.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D:\MYDOCU~1\AD9851~1\TEST_9~1\AD9851.C DB SB OE
stmt level source
1 #include<reg52.h>
2 #include<absacc.h>
3 #include<math.h>
4
5 #define uchar unsigned char
6 #define uint unsigned int
7 #define ulong unsigned long
8
9 #define FRE1_A XBYTE [0x9000] //频率控制字一正弦波,调幅载波,FSK载波f1,ASK,PSK载波
10 #define FRE1_B XBYTE [0x9001]
11 #define FRE1_C XBYTE [0x9002]
12 #define FRE1_D XBYTE [0x9003]
13 #define FRE2_A XBYTE [0x9005] //频率控制字二 FSK载波f2
14 #define FRE2_B XBYTE [0x9006]
15 #define FRE2_C XBYTE [0x9007]
16 #define FRE2_D XBYTE [0x9008]
17 #define MODE XBYTE [0x9004]
18 #define DDS_D0 XBYTE [0xc000] //AM调制波控制字
19 #define DDS_D1 XBYTE [0xc001]
20 #define DDS_D2 XBYTE [0xc002]
21 #define DDS_D3 XBYTE [0xc003]
22 #define DA0832 XBYTE [0xd000] //AM调制波幅度控制端口
23
24 sbit PINPIAN=P1^3; //1:5KHZ 0:10KHZ
25 sbit AM_CS=P1^4; //数子调制脉冲使能 低电平有效
26
27 void DDS(ulong F)
28 {
29 1 ulong M;
30 1 float fre=10.73621578383221; //参数为0.1Hz精度的整数,故除10
31 1 //fre=(float)(F); //fout=fosc*K/2e32
32 1 //fre=fre*107.3621578383221; //K=fout*2e32/fosc
33 1 fre=fre*F;
34 1 M=(ulong)(fre); //fosc=40.004480MHz
35 1 DDS_D0=(uchar)(M&0x000000ff);
36 1 DDS_D1=(uchar)((M>>8)&0x000000ff);
37 1 DDS_D2=(uchar)((M>>16)&0x000000ff);
38 1 DDS_D3=(uchar)((M>>24)&0x000000ff);
39 1 }
40 /********************************************************/
41 /*********AD9851**************/
42 void AD9851_DDS(ulong frequence)
43 {
44 1 //float abc=23.858257297405;//fosc=40.004480*4.5;
45 1
46 1 //float abc=29.826472471; //fosc=23.999750*6;
47 1
48 1 float abc=2.8636145307; //fosc=25.000000*6; 除10
49 1
50 1 ulong ku;
51 1 abc=abc*frequence;
52 1 ku=(ulong)(abc);
53 1
54 1 FRE1_D=(uchar)((ku>>24)&0x000000ff);
55 1
C51 COMPILER V7.06 AD9851 05/24/2007 21:29:25 PAGE 2
56 1 FRE1_C=(uchar)((ku>>16)&0x000000ff);
57 1
58 1 FRE1_B=(uchar)((ku>>8)&0x000000ff);
59 1
60 1 FRE1_A=(uchar)(ku&0x000000ff);
61 1
62 1 //MODE=0x01;
63 1 }
64 void main(void)
65 {
66 1 DA0832=200; //给0800的参考电压
67 1 DDS(10000);
68 1
69 1 AD9851_DDS(10000000); //正弦信号产生
70 1 MODE=0x01; //SIN
71 1
72 1 AD9851_DDS(1000000);
73 1 MODE=0x02; //FM
74 1
75 1 MODE=0x03; //ASK
76 1 MODE=0x04; //FSK
77 1 MODE=0x05; //PSK
78 1 }
C51 COMPILER V7.06 AD9851 05/24/2007 21:29:25 PAGE 3
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
IE . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1
IP . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B8H 1
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
SCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1
TCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0088H 1
_DDS . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
F. . . . . . . . . . . . . . . . . . AUTO DATA U_LONG 0000H 4
M. . . . . . . . . . . . . . . . . . AUTO DATA U_LONG 0004H 4
fre. . . . . . . . . . . . . . . . . AUTO DATA FLOAT 0008H 4
T2CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C8H 1
_AD9851_DDS. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
frequence. . . . . . . . . . . . . . AUTO DATA U_LONG 0000H 4
abc. . . . . . . . . . . . . . . . . AUTO DATA FLOAT 0004H 4
ku . . . . . . . . . . . . . . . . . AUTO DATA U_LONG 0008H 4
PSW. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D0H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 267 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 24
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 + -