📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 07/09/2007 20:52:29 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 #include <intrins.h>
3 #define BITB 0x0800
4 sbit fsync = P1^4;
5 sbit sclk = P1^5;
6 sbit sdata = P1^6;
7
8
9 #define DDS_SCLK_UP sclk=1
10 #define DDS_SCLK_DOWN sclk=0
11 #define DDS_SDATA_UP sdata=1
12 #define DDS_SDATA_DOWN sdata=0
13 #define DDS_FSYNC_UP fsync=1
14 #define DDS_FSYNC_DOWN fsync=0
15
16 unsigned int Config_Data[8];
17
18 void delay2us(unsigned char i) {
19 1 while (--i);
20 1 }
21 void writeDDS2Byte(unsigned int config) {
22 1 unsigned char i;
23 1 DDS_SCLK_DOWN;
24 1 _nop_();
25 1 DDS_FSYNC_UP;
26 1 _nop_();
27 1 DDS_SCLK_UP;
28 1 delay2us(1);
29 1 DDS_FSYNC_DOWN;
30 1 _nop_();
31 1 for (i=0; i<16; i++) {
32 2 if (config & 0x8000) DDS_SDATA_UP;
33 2 else DDS_SDATA_DOWN;
34 2 delay2us(1);
35 2 DDS_SCLK_DOWN;
36 2 delay2us(1);
37 2 DDS_SCLK_UP;
38 2 config <<= 1;
39 2 }
40 1 DDS_FSYNC_UP;
41 1 _nop_();
42 1 DDS_SCLK_DOWN;
43 1 delay2us(100);
44 1 }
45 //波形发生函数
46 //入口参数: 频率:Freq (<=12000000)
47 // 形状:0(正弦波),1(三角波),2(方波)
48 //默认: Fmclk=25MHz, 0相移,方波不分频.
49 void waveGenerate(unsigned long Freq,unsigned char Shape)
50 {
51 1 unsigned long temp;
52 1 unsigned char k;
53 1 if(Freq>12000000) Freq=12000000;
54 1 switch(Shape)
55 1 {
C51 COMPILER V7.50 MAIN 07/09/2007 20:52:29 PAGE 2
56 2 case 0: Config_Data[0]=0x2108;
57 2 Config_Data[7]=0x2008;
58 2 break;
59 2 case 1: Config_Data[0]=0x210A;
60 2 Config_Data[7]=0x200A;
61 2 break;
62 2 case 2: Config_Data[0]=0x2128;
63 2 Config_Data[7]=0x2028;
64 2 break;
65 2 default:Config_Data[0]=0x2108;
66 2 Config_Data[7]=0x2008;
67 2 }
68 1
69 1 temp=Freq*13.4217728; //temp=Freq*(0x10000000/20000000);
70 1 Config_Data[1]=temp&0x3fff;
71 1 Config_Data[3]=Config_Data[1];
72 1 Config_Data[2]=(temp&0x0fffc000)>>14;
73 1 Config_Data[4]=Config_Data[2];
74 1
75 1 Config_Data[1]=Config_Data[1]|0x4000;
76 1 Config_Data[2]=Config_Data[2]|0x4000;
77 1 Config_Data[3]=Config_Data[3]|0x8000;
78 1 Config_Data[4]=Config_Data[4]|0x8000;
79 1 Config_Data[5]=0xC000;
80 1 Config_Data[6]=0xE000;
81 1
82 1 for(k=0;k<8;k++)
83 1 {
84 2 writeDDS2Byte(Config_Data[k]);
85 2 }
86 1
87 1 /* for (;;) {
88 1 writeDDS2Byte(0xc000);
89 1 for (k=200;k;k--);
90 1 writeDDS2Byte(0xc000|2047);
91 1 for (k=200;k;k--);
92 1 }*/
93 1 }
94 void DDS_2FSK(unsigned long freq1, unsigned long freq2, unsigned char shape) {
95 1 unsigned long temp;
96 1 unsigned char k;
97 1 if (freq1>12000000) freq1=12000000;
98 1 if (freq2>12000000) freq2=12000000;
99 1 switch(shape)
100 1 {
101 2 case 0: Config_Data[0]=0x2108;
102 2 Config_Data[7]=0x2008;
103 2 break;
104 2 case 1: Config_Data[0]=0x210A;
105 2 Config_Data[7]=0x200A;
106 2 break;
107 2 case 2: Config_Data[0]=0x2128;
108 2 Config_Data[7]=0x2028;
109 2 break;
110 2 default:Config_Data[0]=0x2108;
111 2 Config_Data[7]=0x2008;
112 2 }
113 1 temp=freq1*13.4217728; //temp=Freq*(0x10000000/20000000);
114 1 Config_Data[1]=temp&0x3fff;
115 1 Config_Data[2]=(temp&0x0fffc000)>>14;
116 1 temp=freq2*13.4217728;
117 1 Config_Data[3]=temp&0x3fff;
C51 COMPILER V7.50 MAIN 07/09/2007 20:52:29 PAGE 3
118 1 Config_Data[4]=(temp&0x0fffc000)>>14;
119 1
120 1 Config_Data[1]=Config_Data[1]|0x4000;
121 1 Config_Data[2]=Config_Data[2]|0x4000;
122 1 Config_Data[3]=Config_Data[3]|0x8000;
123 1 Config_Data[4]=Config_Data[4]|0x8000;
124 1 Config_Data[5]=0xC000;
125 1 Config_Data[6]=0xE000;
126 1
127 1 for(k=0;k<8;k++)
128 1 {
129 2 writeDDS2Byte(Config_Data[k]);
130 2 }
131 1 while (1) {
132 2 for (k=200; k; k--);
133 2 writeDDS2Byte(Config_Data[7] | BITB);
134 2 for (k=200; k; k--);
135 2 writeDDS2Byte(Config_Data[7] & (~BITB));
136 2 }
137 1
138 1 }
139 void main() {
140 1 unsigned char i;
141 1 DDS_2FSK(3000, 1000, 0);
142 1 }
*** WARNING C280 IN LINE 140 OF MAIN.C: 'i': unreferenced local variable
143
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 628 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 16 23
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 + -