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