📄 shiboqi.lst
字号:
176 3 case 0x43:f10Khz();break;
177 3 case 0x48:f1Khz();break;
178 3 case 0x49:f100Hz();break;
C51 COMPILER V7.20 SHIBOQI 11/20/2007 14:15:22 PAGE 4
179 3 case 0x4a:f10Hz();break;
180 3 case 0x4b:f1Hz();break;
181 3 case 0x50:carry_sin();break;
182 3 case 0x51:mod_sin();break;
183 3 case 0x52:ma_step();break;
184 3 default:break;
185 3 }
186 2 }
187 1
188 1 }
189 /*步进按键函数*/
190 void f10Mhz(void) //10Mhz步进
191 {
192 1 freq[7]=freq[7]+1;
193 1 freq[7]=judge(freq[7]);
194 1 display_led();
195 1 }
196
197 void f1Mhz(void) //1Mhz步进
198 {
199 1 freq[6]=freq[6]+1;
200 1 freq[6]=judge(freq[6]);
201 1 display_led();
202 1 }
203
204 void f100Khz(void) //100Khz步进
205 {
206 1 freq[5]=freq[5]+1;
207 1 freq[5]=judge(freq[5]);
208 1 display_led();
209 1 }
210
211 void f10Khz(void) //10Khz步进
212 {
213 1 freq[4]=freq[4]+1;
214 1 freq[4]=judge(freq[4]);
215 1 display_led();
216 1 }
217
218 void f1Khz(void) //1Khz步进
219 {
220 1 freq[3]=freq[3]+1;
221 1 freq[3]=judge(freq[3]);
222 1 display_led();
223 1 }
224
225 void f100Hz(void) //100hz步进
226 {
227 1 freq[2]=freq[2]+1;
228 1 if(freq[2]>=10)
229 1 {
230 2 freq[2]=0;
231 2 freq[3]=freq[3]+1;
232 2 }
233 1 display_led();
234 1
235 1 }
236
237 void f10Hz(void) //10hz步进
238 {
239 1 freq[1]=freq[1]+1;
240 1 freq[1]=judge(freq[1]);
C51 COMPILER V7.20 SHIBOQI 11/20/2007 14:15:22 PAGE 5
241 1 display_led();
242 1
243 1 }
244
245 void f1Hz(void) //1hz步进
246 {
247 1 freq[0]=freq[0]+1;
248 1 freq[0]=judge(freq[0]);
249 1 display_led();
250 1
251 1 }
252 //-----------功能模式---------------------------
253 void carry_sin(void) //产生载波正弦波
254 {
255 1 temp_r=jisuan(freq);
256 1 longtoword(temp_r);
257 1 write_ad9850(); //发送频率控制字
258 1 IntToStr();
259 1 Display_String(5,1,LCD_string);
260 1 }
261 void mod_sin(void) //产生调制信号正弦波
262 {
263 1 temp_r=jisuan(freq);
264 1 longtoword(temp_r);
265 1 write_ad98501();
266 1 IntToStr();
267 1 Display_String(7,2,LCD_string);
268 1 }
269 void ma_step(void)
270 {
271 1 step_i++;
272 1 if(step_i==10)
273 1 {
274 2 step_i=0;
275 2 }
276 1 AD7524=step[step_i];
277 1 LCD_step[0]=step_i+'0';
278 1 Display_String(7,3,LCD_step);
279 1 Display_String(8,3,"0");
280 1 Display_String(9,3,"%");
281 1 }
282 //--------------------------------------------------------------------------------------------------
283 // 函数名称: WRITE_AD9850
284 // 函数功能: 将控制字写入AD9850
285 //--------------------------------------------------------------------------------------------------
286 void write_ad98501(void)
287 {
288 1 unsigned char no,temp;
289 1 delay(0);
290 1 for(no=0;no<5;no++)
291 1 {
292 2 data_OUT1=con_word[no]; //送控制字
293 2 delay(0);
294 2 }
295 1 temp=data_OUT1; //读指令产生上升延,要求AD9850改变输出
296 1 }
297 void write_ad9850(void)
298 {
299 1 unsigned char no,temp;
300 1 delay(0);
301 1 for(no=0;no<5;no++)
302 1 {
C51 COMPILER V7.20 SHIBOQI 11/20/2007 14:15:22 PAGE 6
303 2 data_OUT=con_word[no]; //送控制字
304 2 delay(0);
305 2 }
306 1 temp=data_OUT; //读指令产生上升延,要求AD9850改变输出
307 1 }
308 void IntToStr(void)
309 {
310 1 char i,flag_top;
311 1 flag_top=1;
312 1 for(i=0; i<8; i++) //转成ASCII码
313 1 {
314 2 if((freq[7-i]==0)&(flag_top==1))
315 2 {
316 3 LCD_string[i]=' ';
317 3 }
318 2 else
319 2 {
320 3 LCD_string[i]=freq[7-i]+'0';
321 3 flag_top=0;
322 3 }
323 2 }
324 1 }
325 //-----------按键读取------------------------------------------
326 unsigned char keyin(void)
327 {
328 1 unsigned char value;
329 1 com=0x40;
330 1 value=dat;value=value&0x7f; //取键盘数据低7位
331 1 return(value);
332 1 }
333 void int_int0() interrupt 0 using 0
334 {
335 1 int_flag=1;
336 1 key_value=keyin();
337 1 }
338 //-------------------------延时---------------------------------
339 void delay(unsigned char i)
340 {
341 1 while(--i);
342 1 }
343
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1935 ----
CONSTANT SIZE = 2183 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 66 34
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -