📄 oscilloscope2.lst
字号:
257 2 lcd_write_sentence(2,1,"单步");
258 2 TR0=0;
259 2 Single_Auto_Select=1;
260 2 Single_Auto_Select=0;
261 2 }
262 1 else
263 1 {
264 2 lcd_write_sentence(2,1,"连续");
265 2 TR0=1;
266 2 }
267 1 }
268 //***************************************************************************************
269 void Input_Select() //AD114输入选择
270 {
271 1 unchar temp1,temp2;
272 1 temp1=AD_Channel%3;
273 1 temp2=PB8155;
274 1 temp2=temp2&0xFC;
275 1 switch(temp1)
276 1 {
277 2 case 0:
278 2 //AD_Controll=0;
279 2 PB8155=temp2;
280 2 lcd_clear();
281 2 lcd_write_sentence(2,1,"A 路选通");
282 2 lcd_write_sentence(3,1,"B 路关闭");
283 2 Select_AB=1;
284 2 break;
285 2 case 1:
286 2 //AD_Controll=0;
287 2 PB8155=temp2+2;
288 2 Select_AB=2;
289 2 lcd_clear();
290 2 lcd_write_sentence(2,1,"A 路关闭");
291 2 lcd_write_sentence(3,1,"B 路选通");
292 2 break;
293 2 case 2:
294 2 //AD_Controll=1;
295 2 lcd_clear();
296 2 PB8155=temp2+1;
297 2 lcd_write_sentence(2,1,"A 路选通");
298 2 lcd_write_sentence(3,1,"B 路选通");
299 2 Select_AB=3;
300 2 break;
301 2 }
302 1 AD_Channel++;
303 1 }
C51 COMPILER V7.06 OSCILLOSCOPE2 08/19/2005 08:58:26 PAGE 6
304
305 //***************************************************************************************
306 void Vertical_GainA()
307 {
308 1 unchar temp;
309 1 Led_On=1;
310 1 Key_Flag=4;
311 1 if(Vertical_Gain_A_Grade<7)
312 1 {
313 2 Vertical_Gain_A_Grade++;
314 2 }
315 1 else
316 1 Vertical_Gain_A_Grade=0;
317 1 distab_clear();
318 1 distab[0]=Vertical_Gain_A_Grade;
319 1 display(0);
320 1 temp=PB8155;
321 1 temp=temp&0x03;
322 1 PB8155=temp+_crol_(Vertical_Gain_A_Grade,5);
323 1 //if(Vertical_Gain_A_Grade>2)
324 1 //Vertical_Gain_A_Grade=0;
325 1 //else
326 1 //{
327 1 // Vertical_Gain_B=Vertical_Gain_B_Grade;
328 1 lcd_clear();
329 1 lcd_write_sentence(1,0,"当前垂直增益档位");
330 1 lcd_write_sentence(2,2,"A 路");
331 1 //lcd_write_sentence(3,1,"0.01V/div");
332 1 //lcd_write_command(0x8A);
333 1 //lcd_write_data(0x30+Vertical_Gain_B_Grade);
334 1 switch(Vertical_Gain_A_Grade)
335 1 {
336 2 case 0:
337 2 lcd_write_sentence(3,1,"10mV/div");
338 2 break;
339 2 case 1:
340 2 lcd_write_sentence(3,1,"20mV/div");
341 2 break;
342 2 case 2:
343 2 lcd_write_sentence(3,1,"50mv/div");
344 2 break;
345 2 case 3:
346 2 lcd_write_sentence(3,1,"0.1V/div");
347 2 break;
348 2 case 4:
349 2 lcd_write_sentence(3,1,"0.2V/div");
350 2 break;
351 2 case 5:
352 2 lcd_write_sentence(3,1,"0.5v/div");
353 2 break;
354 2 case 6:
355 2 lcd_write_sentence(3,1,"1V/div");
356 2 break;
357 2 case 7:
358 2 lcd_write_sentence(3,1,"2v/div");
359 2 break;
360 2 default:
361 2 break;
362 2 }
363 1
364 1 }
365 //***************************************************************************************
C51 COMPILER V7.06 OSCILLOSCOPE2 08/19/2005 08:58:26 PAGE 7
366 void Vertical_GainB()
367 {
368 1 unchar temp;
369 1 Led_On=1;
370 1 Key_Flag=5;
371 1 if(Vertical_Gain_B_Grade<7)
372 1 {
373 2 Vertical_Gain_B_Grade++;
374 2 }
375 1 else
376 1 Vertical_Gain_B_Grade=0;
377 1 distab_clear();
378 1 distab[0]=Vertical_Gain_B_Grade;
379 1 display(0);
380 1 temp=PB8155;
381 1 temp=temp&0x03;
382 1 PB8155=temp+_crol_(Vertical_Gain_B_Grade,5);
383 1 //if(Vertical_Gain_A_Grade>2)
384 1 //Vertical_Gain_A_Grade=0;
385 1 //else
386 1 //{
387 1 // Vertical_Gain_B=Vertical_Gain_B_Grade;
388 1 lcd_clear();
389 1 lcd_write_sentence(1,0,"当前垂直增益档位");
390 1 lcd_write_sentence(2,2,"B 路");
391 1 //lcd_write_sentence(3,1,"0.01V/div");
392 1 //lcd_write_command(0x8A);
393 1 //lcd_write_data(0x30+Vertical_Gain_B_Grade);
394 1 switch(Vertical_Gain_B_Grade)
395 1 {
396 2 case 0:
397 2 lcd_write_sentence(3,1,"10mV/div");
398 2 break;
399 2 case 1:
400 2 lcd_write_sentence(3,1,"20mV/div");
401 2 break;
402 2 case 2:
403 2 lcd_write_sentence(3,1,"50mv/div");
404 2 break;
405 2 case 3:
406 2 lcd_write_sentence(3,1,"0.1V/div");
407 2 break;
408 2 case 4:
409 2 lcd_write_sentence(3,1,"0.2V/div");
410 2 break;
411 2 case 5:
412 2 lcd_write_sentence(3,1,"0.5v/div");
413 2 break;
414 2 case 6:
415 2 lcd_write_sentence(3,1,"1V/div");
416 2 break;
417 2 case 7:
418 2 lcd_write_sentence(3,1,"2v/div");
419 2 break;
420 2 default:
421 2 break;
422 2 }
423 1 }
424 //***************************************************************************************
425 void Vertical_MoveA()
426 {
427 1 Shift_Flag=1;
C51 COMPILER V7.06 OSCILLOSCOPE2 08/19/2005 08:58:26 PAGE 8
428 1 ledcursor=2;
429 1 Key_Flag=6;
430 1 Led_On=1;
431 1 Glint_Flag=1;
432 1 lcd_clear();
433 1 lcd_write_sentence(1,0,"按加减键上下移动");
434 1 lcd_write_sentence(2,1,"A 路波形");
435 1 distab[0]=0x00;
436 1 distab[1]=0x00;
437 1 distab[2]=0x00;
438 1 distab[3]=0x10;
439 1 distab[4]=0x10;
440 1 distab[5]=0x10;
441 1 distab[6]=0x10;
442 1 distab[7]=0x04;
443 1 }
444 //***************************************************************************************
445 void Vertical_MoveB()
446 {
447 1 Shift_Flag=1;
448 1 ledcursor=2;
449 1 Key_Flag=7;
450 1 lcd_clear();
451 1 Led_On=1;
452 1 Glint_Flag=1;
453 1 lcd_write_sentence(1,0,"按加减键上下移动");
454 1 lcd_write_sentence(2,1,"B 路波形");
455 1 distab[0]=0x00;
456 1 distab[1]=0x00;
457 1 distab[2]=0x00;
458 1 distab[3]=0x10;
459 1 distab[4]=0x10;
460 1 distab[5]=0x10;
461 1 distab[6]=0x10;
462 1 distab[7]=0x05;
463 1 }
464 //***************************************************************************************
465 void Frequence_Measure() //测量当前波形的频率和波形
466 {
467 1 long temph,templ;
468 1 unint temp;
469 1 //Frequence_Measure_Flag=!Frequence_Measure_Flag;
470 1 //while(Frequence_Measure_Flag)
471 1 //{
472 1 unint i=5000;
473 1 Frequence_Start=1;
474 1 Frequence_Start=0;
475 1 while(--i);
476 1 temph=Wave_Frequence_High;
477 1 templ=Wave_Frequence_Low;
478 1 //templ=(templ+temph<<8)*3052/100;
479 1 //temph=temph<<8;
480 1 //temp=(templ+temph)*61;
481 1 //Wave_Frequence=temp>>1;
482 1 Wave_Frequence=(templ+temph*0x100)*2;
483 1 //Wave_Frequence=10000000/(templ+temph*0x100);
484 1 lcd_clear();
485 1 lcd_write_sentence(1,0,"当前频率: ");
486 1 //lcd_write_sentence(2,1,"A 路波形");
487 1 lcd_write_command(0x91);
488 1 temp=Wave_Frequence/10000;
489 1 lcd_write_data(0x30+temp);
C51 COMPILER V7.06 OSCILLOSCOPE2 08/19/2005 08:58:26 PAGE 9
490 1 Wave_Frequence%=10000;
491 1 temp=Wave_Frequence/1000;
492 1 lcd_write_data(0x30+temp);
493 1 Wave_Frequence%=1000;
494 1 temp=Wave_Frequence/100;
495 1 lcd_write_data(0x30+temp);
496 1 Wave_Frequence%=100;
497 1 temp=Wave_Frequence/10;
498 1 lcd_write_data(0x30+temp);
499 1 Wave_Frequence%=10;
500 1 temp=Wave_Frequence;
501 1 lcd_write_data(0x30+temp);
502 1 //Wave_Frequence%=10000;
503 1 lcd_write_sentence(2,4," HZ");
504 1 //}
505 1 //lcd_write_sentence(2,5,"暂停");
506 1 //以下为测量幅度
507 1 temp=Wave_Amplitude_Add;
508 1 Wave_Amplitude=temp;
509 1 lcd_write_sentence(3,0,"当前幅度: ");
510 1 lcd_write_command(0x99);
511 1 temp=Wave_Amplitude/100;
512 1 lcd_write_data(0x30+temp);
513 1 Wave_Amplitude%=100;
514 1 temp=Wave_Amplitude/10;
515 1 lcd_write_data(0x30+temp);
516 1 Wave_Amplitude%=10;
517 1 temp=Wave_Amplitude;
518 1 lcd_write_data(0x30+temp);
519 1 //Wave_Frequence%=10000;
520 1 lcd_write_sentence(4,4," V");
521 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -