📄 dds.lst
字号:
C51 COMPILER V8.02 DDS 09/12/2008 21:03:49 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE DDS
OBJECT MODULE PLACED IN dds.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE dds.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 #include"includes.h"
2
3 extern unsigned char wav[256]; //波形数据
4 extern unsigned char addr[256]; //地址数据
5 extern unsigned long K_value; //K值
6 extern unsigned char P_value; //P值
7 extern unsigned char wav_flag;
8
9
10 void wav_count(unsigned char f) //计算波形数据
11 {
12 1 unsigned int i;
13 1 for(i=0;i<256;i++)
14 1 {
15 2 addr[i]=i;
16 2 }
17 1 if(f==0)
18 1 {
19 2 for(i = 0; i <256;i++)
20 2 {
21 3 wav[i]=125*(1+sin(6.28*i/255));
22 3 }
23 2 }
24 1
25 1 else if(f==1)
26 1 {
27 2 for(i=0;i<128;i++)
28 2 {
29 3 wav[i]=0;
30 3 }
31 2 for(i=128;i<256;i++)
32 2 {
33 3 wav[i]=250;
34 3 }
35 2 }
36 1 else if(f==2)
37 1 {
38 2 for(i=0;i<128;i++)
39 2 {
40 3 wav[i]=2*i;
41 3 }
42 2 for(i=128;i<256;i++)
43 2 {
44 3 wav[i]=255-((i-128)*2);
45 3 }
46 2 }
47 1 else if(f==3)
48 1 {
49 2 for(i=0;i<256;i++)
50 2 {
51 3 wav[i]=256-i;
52 3 }
53 2 }
54 1
55 1 }
C51 COMPILER V8.02 DDS 09/12/2008 21:03:49 PAGE 2
56 void write_wav_addr() // 写波形、地址
57 {
58 1 unsigned char wave,address;
59 1 unsigned int i,j;
60 1 for(i=0;i<256;i++)
61 1 {
62 2 wave=wav[i];
63 2 address=addr[i];
64 2 for(j=0;j<8;j++)
65 2 {
66 3 wave<<=1;
67 3 da=CY;
68 3 clk=0;
69 3 clk=1;
70 3 clk=0;
71 3 }
72 2 for(j=0;j<8;j++)
73 2 {
74 3 address<<=1;
75 3 da=CY;
76 3 clk=0;
77 3 clk=1;
78 3 clk=0;
79 3 }
80 2 wren=0;
81 2 wren=1;
82 2 wren=0;
83 2 }
84 1
85 1 }
86
87
88
89 void write_fre() //写频率、相位
90 {
91 1 unsigned int i;
92 1 for(i=0;i<32;i++)
93 1 {
94 2 K_value<<=1;
95 2 da=CY;
96 2 clk=0;
97 2 clk=1;
98 2 clk=0;
99 2 }
100 1 P_value<<=3;
101 1 for(i=0;i<5;i++)
102 1 {
103 2 P_value<<=1;
104 2 da=CY;
105 2 clk=0;
106 2 clk=1;
107 2 clk=0;
108 2
109 2 }
110 1
111 1
112 1 }
113
114 void wtite_clr() //清零
115 {
116 1 clr=0;
117 1 clr=1;
C51 COMPILER V8.02 DDS 09/12/2008 21:03:49 PAGE 3
118 1 mydelay(500);
119 1 clr=0;
120 1
121 1 }
122
123 void saom()
124 {
125 1 unsigned int i;
126 1 ena=0;
127 1
128 1 for(i=0;i<64;i++)
129 1 K_value=i*1310720;
130 1 wtite_clr();
131 1 wav_count(wav_flag);
132 1 write_wav_addr();
133 1 write_fre();
134 1 mydelay(100);
135 1 ena=1;
136 1 delay_nms(1000);
137 1
138 1 }
139
140
141 void delay_1msb(void)
142 {
143 1 unsigned int i;
144 1 for(i=0;i<1950;i++);
145 1
146 1 }
147
148 void delay_nms(unsigned int num) //延时nms子程序
149 {
150 1 unsigned int i;
151 1 for(i=0;i<num;i++)
152 1 {
153 2 delay_1msb();
154 2 }
155 1
156 1 }
*** WARNING C316 IN LINE 156 OF dds.c: unterminated conditionals
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 791 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- 6
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -