📄 xinhao.lst
字号:
244 2 Out_data2_com(0x00,0x00,0x24);
245 2 i=169;
246 2 }
247 1 if(a==1)
248 1 {
249 2 Out_data2_com(0x00,0x04,0x24);
250 2 i=1400;
251 2 }
252 1 Out_com(0xb0);
253 1 for(l=i;l>0;l--)
254 1 {
255 2 Out_data(0x00);
256 2 }
257 1 Out_com(0xb2);
258 1 }
259 /******************************************************/
260 /******************************************************/
261 /**************** 显示一行英文字符*******************/
262 void Dis_line(uchar Line_num) //显示内容为Disp_Buff内所存内容
263 {
264 1 uchar l;
265 1 Out_data2_com(Line_num*21,0x00,0x24);
266 1 Out_com(0xb0);
267 1 for(l=0;l<21;l++)
268 1 {
269 2 Out_data(Disp_Buff[l]-0x20);
270 2 }
271 1 Out_com(0xb2);
272 1 }
273 /****************************************************************************/
274
275
276
277
278 /************************************************/
279 void Manu0_Dis(void)
280 {
281 1 Chars_dis(" Signals Generator ");
282 1 Dis_line(0);
283 1 Chars_dis(" 1 ------ Sin ");
284 1 Dis_line(1);
285 1 Chars_dis(" 2 ------ A M ");
286 1 Dis_line(2);
287 1 Chars_dis(" 3 ------ FSK ");
288 1 Dis_line(3);
289 1 Chars_dis(" 4 ------ F M ");
290 1 Dis_line(4);
291 1 Chars_dis(" 5 ------ PSK ");
292 1 Dis_line(5);
293 1 Chars_dis(" 6 ------ ASK ");
294 1 Dis_line(6);
295 1 Chars_dis(" Select Mode... [20]");
296 1 Dis_line(7);
297 1 }
298 /**************频率显示子程序***************/
299 void Freq_Dis(ulong ff)
300 {
301 1 if(ff<10000)
302 1 {
303 2 Chars_dis_s(18,20,"Hz ");
C51 COMPILER V7.06 XINHAO 05/24/2007 21:19:42 PAGE 6
304 2 Datas_dis(ff,8,17,16);
305 2 }
306 1 else if(ff<10000000)
307 1 {
308 2 Chars_dis_s(18,20,"KHz");
309 2 Datas_dis(ff,8,17,13);
310 2 }
311 1 else
312 1 {
313 2 Chars_dis_s(18,20,"MHz");
314 2 Datas_dis(ff,8,17,10);
315 2 }
316 1 }
317 /********************************************/
318 /************幅度显示程序************/
319 void Ampl_Dis(uint aa)
320 {
321 1 if(aa<1000)
322 1 {
323 2 Chars_dis_s(18,20,"mV ");
324 2 Datas_dis((ulong)(aa),15,17,18);
325 2 }
326 1 else
327 1 {
328 2 Chars_dis_s(18,20,"V ");
329 2 Datas_dis((ulong)(aa),12,17,14);
330 2 }
331 1 }
332 /**************正弦输出模式菜单显示************/
333 void Manu1_Dis(void)
334 {
335 1 Chars_dis(" Sin Output Mode ");
336 1 Dis_line(0);
337 1 Chars_dis("1.Freq: ");
338 1 Freq_Dis(FREQ1);
339 1 Dis_line(2);
340 1 Chars_dis("2.Ampl: ");
341 1 Ampl_Dis(AMP1);
342 1 Dis_line(4);
343 1 }
344 /***********************************************/
345 void Manu2_Dis(void)
346 {
347 1 Chars_dis(" AM Output Mode ");
348 1 Dis_line(0);
349 1 Chars_dis("1.F_C : ");
350 1 Freq_Dis(FREQ1);
351 1 Dis_line(2);
352 1 Chars_dis("2. Ma : % ");
353 1 Datas_dis((ulong)(DEEP),15,17,18);
354 1 Dis_line(4);
355 1 }
356 /**********************************************/
357 void Manu3_Dis(void)
358 {
359 1 Chars_dis(" FSK Output Mode ");
360 1 Dis_line(0);
361 1 Chars_dis("1.F_L : ");
362 1 Freq_Dis(FREQ1);
363 1 Dis_line(1);
364 1 Chars_dis("2.A_C : ");
365 1 Ampl_Dis(AMP1);
C51 COMPILER V7.06 XINHAO 05/24/2007 21:19:42 PAGE 7
366 1 Dis_line(2);
367 1 Chars_dis("3.F_H : ");
368 1 Freq_Dis(FREQ2);
369 1 Dis_line(3);
370 1 Chars_dis(" SEQ : 01010101 ");
371 1 // Freq_Dis(FSK);
372 1 Dis_line(4);
373 1
374 1 }
375 /************************************************/
376 void Manu4_Dis(void)
377 {
378 1 Chars_dis(" FM Output Mode ");
379 1 Dis_line(0);
380 1 Chars_dis("1.F_C : ");
381 1 Freq_Dis(FREQ1);
382 1 Dis_line(2);
383 1 Chars_dis("2.A_C : ");
384 1 Ampl_Dis(AMP1);
385 1 Dis_line(3);
386 1 if(ten_five)
387 1 Chars_dis("3.Dalt Fmax : 5KHz ");
388 1 else
389 1 Chars_dis("3.Dalt Fmax : 10KHz ");
390 1 Dis_line(4);
391 1 }
392 /************************************************/
393 void Manu5_Dis(void)
394 {
395 1 Chars_dis(" PSK Output Mode ");
396 1 Dis_line(0);
397 1 Chars_dis(" F_C : 100KHz ");
398 1 Dis_line(2);
399 1 Chars_dis(" Rate: 10Kbps ");
400 1 Dis_line(3);
401 1 Chars_dis(" SEQ : 01010101 ");
402 1 Dis_line(4);
403 1 }
404 /************************************************/
405 void Manu6_Dis(void)
406 {
407 1 Chars_dis(" ASK Output Mode ");
408 1 Dis_line(0);
409 1 Chars_dis(" F_C : 100KHz ");
410 1 Dis_line(2);
411 1 Chars_dis(" Rate: 10Kbps ");
412 1 Dis_line(3);
413 1 Chars_dis(" SEQ : 01010101 ");
414 1 Dis_line(4);
415 1 }
416
417
418 /********************AM调制波生成***********************/
419 void DDS(ulong F)
420 {
421 1 ulong M;
422 1 float fre=10.73621578383221; //参数为0.1Hz精度的整数,故除10
423 1 //fre=(float)(F); //fout=fosc*K/2e32
424 1 //fre=fre*107.3621578383221; //K=fout*2e32/fosc
425 1 fre=fre*F;
426 1 M=(ulong)(fre); //fosc=40.004480MHz
427 1 DDS_D0=(uchar)(M&0x000000ff);
C51 COMPILER V7.06 XINHAO 05/24/2007 21:19:42 PAGE 8
428 1 DDS_D1=(uchar)((M>>8)&0x000000ff);
429 1 DDS_D2=(uchar)((M>>16)&0x000000ff);
430 1 DDS_D3=(uchar)((M>>24)&0x000000ff);
431 1 }
432 /********************************************************/
433 /*********AD9851**************/
434 void AD9851_DDS(ulong frequence)
435 {
436 1 //float abc=23.858257297405;//fosc=40.004480*4.5;
437 1
438 1 //float abc=29.826472471; //fosc=23.999750*6;
439 1
440 1 float abc=2.8636145307; //fosc=25.000000*6; 除10
441 1
442 1 ulong ku;
443 1 abc=abc*frequence;
444 1 ku=(ulong)(abc);
445 1
446 1 FRE1_D=(uchar)((ku>>24)&0x000000ff);
447 1
448 1 FRE1_C=(uchar)((ku>>16)&0x000000ff);
449 1
450 1 FRE1_B=(uchar)((ku>>8)&0x000000ff);
451 1
452 1 FRE1_A=(uchar)(ku&0x000000ff);
453 1
454 1 //MODE=0x01;
455 1 }
456
457
458 void AD9851_FSK(ulong f1,ulong f2)
459 {
460 1 float bc=2.8636145307; //fosc=25.000000*6; 除10
461 1 ulong aku;
462 1 bc=bc*f1;
463 1 aku=(ulong)(bc);
464 1
465 1 FRE1_D=(uchar)((aku>>24)&0x000000ff);
466 1
467 1 FRE1_C=(uchar)((aku>>16)&0x000000ff);
468 1
469 1 FRE1_B=(uchar)((aku>>8)&0x000000ff);
470 1
471 1 FRE1_A=(uchar)(aku&0x000000ff);
472 1
473 1 bc=2.8636145307; //fosc=25.000000*6; 除10
474 1 bc=bc*f2;
475 1
476 1 aku=(ulong)(bc);
477 1
478 1 FRE2_D=(uchar)((aku>>24)&0x000000ff);
479 1
480 1 FRE2_C=(uchar)((aku>>16)&0x000000ff);
481 1
482 1 FRE2_B=(uchar)((aku>>8)&0x000000ff);
483 1
484 1 FRE2_A=(uchar)(aku&0x000000ff);
485 1 MODE=4;
486 1 }
487
488 /*********参数输入显示程序**********/
489 void Input_Dis(void)
C51 COMPILER V7.06 XINHAO 05/24/2007 21:19:42 PAGE 9
490 {
491 1 EA=0;
492 1 if(Step>10)
493 1 { Chars_dis("=====================");
494 2 Dis_line(5);
495 2 Chars_dis(" Now you are setting:");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -