📄 test.lst
字号:
344 unsigned int data data_w;
345 unsigned int data data_r;
346 unsigned int data deta;
347 unsigned int data cycle;
348 unsigned int data flag;
349 unsigned char data count;
350 LIGHT=0;
351
352 Go2Zero();
353 Go2Lumda(5270);
354
355 EA=0;
356 deta=0xe0;
357 XBYTE[ADDR_0832_R]=0XE0;
358 XBYTE[ADDR_0832_W]=0XE0;
359 data_w=1;
360 data_r=0;
361 count=0;
362
363
C51 COMPILER V7.06 TEST 12/19/2006 15:55:33 PAGE 7
364
365 for (count=0;count<5;count++)
366 {
367 LIGHT=!LIGHT;
368 for (cycle=0;cycle<60;cycle++){}
369 LIGHT=!LIGHT;
370 for (cycle=0;cycle<5000;cycle++){}
371 }
372
373 while (1)
374 {
375
376 XBYTE[ADDR_CHANNEL_SEL]=0x00;
377
378 for (cycle=0;cycle<400;cycle++){}
379
380 REG_BIT|=0X20;
381 XBYTE[AD_START]=0x10;
382 while(REG_BIT&0X20)
383 {
384 REG_BIT=XBYTE[ADDR_INTNUM];
385
386 }
387 res_high=XBYTE[RES_HIGH_BYTE];
388 data_w=res_high;
389 data_w=_irol_(data_w,8);
390 res_low =XBYTE[RES_LOW_BYTE];
391 data_w +=res_low;
392
393
394
395
396 XBYTE[ADDR_CHANNEL_SEL]=0x02;
397 for(cycle=0;cycle<400;cycle++);
398
399 REG_BIT|=0X20;
400
401 XBYTE[AD_START]=0x10;
402 while(REG_BIT&0X20 ){REG_BIT=XBYTE[ADDR_INTNUM];}
403 res_high=XBYTE[RES_HIGH_BYTE];
404 data_r=res_high;
405 data_r=_irol_(data_r,8);
406 res_low =XBYTE[RES_LOW_BYTE];
407 data_r +=res_low;
408
409 flag = data_r*10/data_w;
410 if (flag>13)
411 {
412 break ;
413 }
414 else
415 {
416 if (count==0)
417 {
418 count=1;
419 deta=0XE0*flag*0.9;
420 deta/=10;
421
422 }
423 else
424 {
425 deta--;
C51 COMPILER V7.06 TEST 12/19/2006 15:55:33 PAGE 8
426 }
427 if (deta <2 ) return 0;
428 XBYTE[ADDR_0832_W]=deta;
429 LIGHT=!LIGHT;
430 for (cycle=0;cycle<60;cycle++){}
431 LIGHT=!LIGHT;
432 for (cycle=0;cycle<5000;cycle++){}
433 }
434 for (cycle=0;cycle<20;cycle++){}
435 }
436
437
438 cycle=0;
439
440 return 1;
441 }
442 */
443 void EnableTimer0(unsigned char Enable )
444 {
445 1 if (Enable)
446 1 {
447 2 TMOD &= 0XF0; // clear four low bit
448 2 TMOD |= 0X01; //mode 1 16 bit timer , manual reload
449 2 TF0 = 0 ;
450 2 TH0 = 0X00;
451 2 TL0 = 0X00;
452 2 TR0 = 1 ;
453 2
454 2 }
455 1 else
456 1 {
457 2 TF0 = 0 ;
458 2 TH0 = 0X00 ;
459 2 TL0 = 0X00 ;
460 2 TR0 = 0 ;
461 2 }
462 1 }
463 void WriteIns( char COM)
464 {
465 1 XBYTE[ADDR_INS_WR]=COM;
466 1 }
467 void WriteData(char DAT)
468 {
469 1 XBYTE[ADDR_DATA_WR]=DAT;
470 1 }
471 /*
472 char ReadData()
473 {
474 unsigned char data ret;
475 ReadLcdStatus();
476 ret=XBYTE[ADDR_DATA_RD];
477 return ret;
478 }
479 */
480 void SetCursorPos(unsigned int addr)
481 {
482 1 WriteIns(0x0A);
483 1 WriteData(addr&0x00ff);
484 1 WriteIns(0x0B);
485 1 WriteData(addr>>8);
486 1 }
487 void INIT_LCD_GRAPH() /* 首先设置一个文本的显示方式*/
C51 COMPILER V7.06 TEST 12/19/2006 15:55:33 PAGE 9
488 {
489 1 WriteIns(0x00);
490 1 WriteData(0x32); /*开显示,主方式,文本方式,光标闪烁*/
491 1 WriteIns(0x01);
492 1 WriteData(0x77); /* 8*8 点阵 */
493 1 WriteIns(0x02);
494 1 WriteData(0x13); /*一行显示占用40个字节,这样我们就可以实现整个画面的整体移动 */
495 1 WriteIns(0x03);
496 1 WriteData(0x50); /* 有效的行数为80行 */
497 1 WriteIns(0x08);
498 1 WriteData(0x00);
499 1 WriteIns(0x09);
500 1 WriteData(0x00); /*显示缓冲区起始地址设置为0X0000*/
501 1 }
502 void ClearAllGraph()
503 {
504 1 unsigned int data index;
505 1 WriteIns(0x0A);
506 1 WriteData(0x00);
507 1 WriteIns(0x0B);
508 1 WriteData(0x00);
509 1 WriteIns(0x0C);
510 1 for (index=0;index<0x640;index++) /* 4k的显示RAM */
511 1 {
512 2 WriteData(0x00);
513 2 }
514 1 WriteIns(0x0A);
515 1 WriteData(0x00);
516 1 WriteIns(0x0B);
517 1 WriteData(0x00); /*初始化光标的起始地址*/
518 1 }
519
520 INIT_8279()
521 {
522 1 unsigned char data flag=0;
523 1
524 1
525 1
526 1 /*主要就是三个方面的内容一个是分频的系数,一个是键盘的方式,一个是总清的命令*/
527 1
528 1
529 1 XBYTE[INS_8279]=0x01;
530 1 XBYTE[INS_8279]=0x2a;
531 1 XBYTE[INS_8279]=0xd1;
532 1
533 1 do
534 1 {
535 2 flag=XBYTE[INS_8279];
536 2 flag&=0x80;
537 2 } while (flag) ;
538 1 XBYTE[INS_8279]=0x40;
539 1 }
540 void Error ()
541 {
542 1 while (1) ;
543 1 }
544 main()
545 {
546 1 unsigned int cycle;
547 1 unsigned int step;
548 1 unsigned char TimeCount ;
549 1 unsigned int SampleValue ;
C51 COMPILER V7.06 TEST 12/19/2006 15:55:33 PAGE 10
550 1 unsigned int OldSampleValue ;
551 1 unsigned int NewSampleValue ;
552 1 unsigned int xdata Buffer[1000] ;
553 1 unsigned char IntNum ;
554 1
555 1 cycle=1;
556 1 step=1;
557 1
558 1 //***************************************************
559 1 IntNum = ADDR_INT ;
560 1 while(IntNum)
561 1 {
562 2 PULSE=!PULSE;
563 2 for (cycle=0;cycle<150;cycle++){}
564 2 PULSE=!PULSE; /*there is integrity more than interest*/
565 2
566 2 /* for(cycle=0;cycle<100;cycle++){}*/ /*the frequency has been doubled WHY*/
567 2
568 2
569 2 for(cycle=0;cycle<6000;cycle++){} /*KEIL code efficiency is better than franklin*/
570 2 IntNum = ADDR_INT ;
571 2 IntNum &= 0x08 ;
572 2
573 2 }
574 1 //*****************************************************
575 1
576 1 G_FilterPos = FILTER_BLANK ;
577 1 GAIN_W_L8 = 0Xff;
578 1 GAIN_W_H4 = 0Xff;
579 1 GAIN_R_L8 = 0Xff;
580 1 GAIN_R_H4 = 0Xff;
581 1 GAIN_UPDATE = 0X00;
582 1 G_MOTOR_PARA[ 0 ] = 0 ;
583 1 G_MOTOR_PARA[ 1 ] = 2.0 ;
584 1 G_MOTOR_PARA[ 2 ] = 0 ;
585 1
586 1 G_StepOffset = ZERO_OFFSET ;
587 1 //XBYTE[0X7FFF] =0XEE ;
588 1 Go2Zero();
589 1 // Go2Lumda(7000);
590 1 // Go2Lumda(9000) ;
591 1 //SelectFilter(0x00);
592 1 MaxSampleValue = 0;
593 1
594 1 Count = 0;
595 1 EnableTimer0 ( 0x01) ;
596 1
597 1 SelectFilter( FILTER_BLANK);
598 1
599 1 /*
600 1 for ( step = 0 ; step < 300 ; step ++ )
601 1 {
602 1 LIGHT_PULSE_UP ;
603 1 Delay (5) ;
604 1 LIGHT_PULSE_DOWN ;
605 1 Delay (6) ;
606 1
607 1 for(cycle=0;cycle<6000;cycle++){}
608 1
609 1 }
610 1 */
611 1
C51 COMPILER V7.06 TEST 12/19/2006 15:55:33 PAGE 11
612 1
613 1 while( step < 8)
614 1 {
615 2 LIGHT_PULSE_UP ;
616 2 Delay (5) ;
617 2 LIGHT_PULSE_DOWN ;
618 2 Delay (6) ;
619 2 step++;
620 2
621 2
622 2
623 2 OldSampleValue = Sample0() ;
624 2
625 2 for ( TimeCount = 0 ; TimeCount <4; TimeCount ++ )
626 2 {
627 3 while ( !TF0 )
628 3 {}
629 3 TF0 = 0 ;
630 3 TR0 = 0X00 ;
631 3 TH0 = 0XB1 ;
632 3 TL0 = 0XDF ;
633 3 TR0 = 1 ;
634 3 }
635 2 }
636 1 step = 0 ;
637 1 while(1 )
638 1 {
639 2 SampleValue = Sample0() ;
640 2 // if ( SampleValue < OldSampleValue * 0.9 ) break ;
641 2 // if ( OldSampleValue < SampleValue * 0.9 ) break ;
642 2 LIGHT_PULSE_UP ;
643 2 Delay (5) ;
644 2 LIGHT_PULSE_DOWN ;
645 2 Delay (6) ;
646 2 step++;
647 2 Buffer[step]= SampleValue ;
648 2
649 2
650 2 // PULSE=!PULSE;
651 2 // for (cycle=0;cycle< (200 ) ;cycle++){}
652 2 // PULSE=!PULSE;
653 2
654 2
655 2
656 2 for ( TimeCount = 0 ; TimeCount <4; TimeCount ++ )
657 2 {
658 3 while ( !TF0 )
659 3 {}
660 3 TF0 = 0 ;
661 3 TR0 = 0X00 ;
662 3 TH0 = 0XB1 ;
663 3 TL0 = 0XDF ;
664 3 TR0 = 1 ;
665 3 }
666 2 OldSampleValue = SampleValue ;
667 2 }
668 1
669 1
670 1
671 1 // Go2Zero() ;
672 1 //
673 1
C51 COMPILER V7.06 TEST 12/19/2006 15:55:33 PAGE 12
674 1
675 1
676 1
677 1 }
*** WARNING C280 IN LINE 551 OF ..\..\..\..\..\CPROGRAM\LAPTOPUV\基础子程序\MOTOR\TEST.C: 'NewSampleValue': unreferenced
- local variable
678
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1745 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- 2009
PDATA SIZE = ---- ----
DATA SIZE = 21 17
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 2 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -