📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 05/24/2006 15:09:20 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "regx51.h"
2 #include "AD9851.h"
3
4
5 //typedef unsigned char uchar;
6 typedef unsigned int uint;
7 typedef unsigned long ulong;
8
9 unsigned char test0[5]={0x01,0x0F,0xCD,0x6E,0x9E}; //10 MHz
10
11 unsigned char code KeyCode[]=
12 {0xe7,0xd7,0xdb,0xdd,0xb7,0xbb,0xbd ,0x77,
13 0x7b,0x7d,0x7e,0xbe,0xde,0xee,0xed,0xeb, //键盘编码
14 };
15
16 ulong Frequency;
17
18 void Delay1ms(uint t)
19 {
20 1 uchar x;
21 1 for(x=0;x<120;x++)
22 1 for( ;t>0;t--);
23 1 }
24
25 unsigned char GetKey() //键盘扫描
26 {
27 1
28 1 unsigned char temp1, temp2, key, i;
29 1
30 1 P3=0xF0;
31 1
32 1 if(P3==0xF0) return 0xFF; //没有按键返回0xFF
33 1 Delay1ms(15); //消除抖动
34 1 if(P3==0xF0) return 0xFF;
35 1
36 1 temp1=P3;
37 1 P3=0x0F;
38 1 temp2=P3;
39 1 key=temp1|temp2;
40 1
41 1 for(i=0; i<16; i++)
42 1 if(key==KeyCode[i])
43 1
44 1 {
45 2
46 2 P3=0xF0;
47 2 while(P3!=0xF0);
48 2
49 2 return i;
50 2 }
51 1 //返回对应的按键值
52 1
53 1 return 0xFF; //没有相应编码返回0xFF
54 1
55 1 }
C51 COMPILER V7.50 MAIN 05/24/2006 15:09:20 PAGE 2
56
57
58 /*
59 uchar GetKey()
60 {
61 P3 = 0xF0;
62 tmp = P3&0xF0;
63 if(tmp != 0xF0)
64 {
65 Delay(30);
66 if(P3 == tmp)
67 {
68 P3 = 0xF;
69 tmp2 = P3&0xF;
70
71 tmp = tmp | tmp2;
72 return tmp;
73
74 }
75 }
76 }
77 */
78
79
80
81
82 void PerformKey()
83 {
84 1 uchar KeyValue;
85 1 float delta;
86 1
87 1 KeyValue = GetKey();
88 1 switch(KeyValue)
89 1 {
90 2 case 0 :
91 2 delta = -0.1;
92 2 break;
93 2
94 2 case 1 :
95 2 delta = 0.1;
96 2 break;
97 2
98 2 case 2 :
99 2 delta = -1;
100 2 break;
101 2
102 2 case 3 :
103 2 delta = 1;
104 2 break;
105 2
106 2 case 4 :
107 2 delta = -10;
108 2 break;
109 2
110 2 case 5 :
111 2 delta = 10;
112 2 break;
113 2
114 2 case 6 :
115 2 delta = -100;
116 2 break;
117 2
C51 COMPILER V7.50 MAIN 05/24/2006 15:09:20 PAGE 3
118 2 case 7 :
119 2 delta = 100;
120 2 break;
121 2
122 2 case 8 :
123 2 delta = -1000;
124 2 break;
125 2
126 2 case 9 :
127 2 delta = 1000;
128 2 break;
129 2
130 2 case 10 :
131 2 delta = -10000;
132 2 break;
133 2
134 2 case 11 :
135 2 delta = 10000;
136 2 break;
137 2
138 2 case 12 :
139 2 delta = -100000;
140 2 break;
141 2
142 2 case 13 :
143 2 delta = 100000;
144 2 break;
145 2
146 2 case 14 :
147 2 delta = -1000000;
148 2 break;
149 2
150 2 case 15 :
151 2 delta = 1000000;
152 2 break;
153 2
154 2 default:
155 2 break;
156 2 }
157 1 if(KeyValue != 0xFF)
158 1 {
159 2 Frequency = Frequency + delta;
160 2 SendFreq( Frequency );
161 2 }
162 1 }
163
164 void SetAD9851(unsigned char SetByte[])
165
166 {
167 1 CLK_DDS=0;
168 1 P0 = SetByte[0];
169 1 CLK_DDS = 1;
170 1 CLK_DDS = 0;
171 1 P0 = SetByte[1];
172 1 CLK_DDS = 1;
173 1 CLK_DDS = 0;
174 1 P0 = SetByte[2];
175 1 CLK_DDS = 1;
176 1 CLK_DDS = 0;
177 1 P0 = SetByte[3];
178 1 CLK_DDS = 1;
179 1 CLK_DDS = 0;
C51 COMPILER V7.50 MAIN 05/24/2006 15:09:20 PAGE 4
180 1 P0 = SetByte[4];
181 1 CLK_DDS = 1;
182 1 CLK_DDS = 0;
183 1 UPDATE=0;
184 1 UPDATE=1;
185 1 }
186
187 void main()
188 {
189 1 Frequency = 1000;
190 1 InitDDSport();
191 1 SendDefault(); //初始输出1KHz
192 1 // SetAD9851(test0);
193 1 while(1)
194 1 {
195 2 Delay1ms(20);
196 2 PerformKey();
197 2 }
198 1
199 1 }
200
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 669 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 14 4
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 + -