📄 source.lst
字号:
365 4 vol=adj*65535;
C51 COMPILER V6.12 SOURCE 08/15/2004 20:14:19 PAGE 7
366 4 vol=vol/120000;
367 4 vol=adj_vol+ vol;
368 4 if( vol > 65535 )
369 4 adj = 65535 ;
370 4 else adj=vol;
371 4 }
372 3 }
373 2 else
374 2 {
375 3 if( ad_vol > set_vol )
376 3 {
377 4 type=type | ADH ;
378 4 send_buf[0]='H';
379 4 adj=ad_vol-set_vol;
380 4 vol=adj*13107; //vol=adj*125*65535/12000000
381 4
382 4 vol=vol/19200;
383 4 // vol=vol*check_adj;
384 4 // vol=vol/10000;
385 4 if ( adj_vol > vol) adj=adj_vol-(unsigned int)vol;
386 4 else adj=0;
387 4 }
388 3 if( ad_vol < set_vol )
389 3 {
390 4 type=type | ADL ;
391 4 send_buf[0]='L';
392 4 adj=set_vol-ad_vol;
393 4 vol=adj*13107;
394 4 vol=vol/19200;
395 4 // vol=vol*check_adj;
396 4 // vol=vol/10000;
397 4 vol=adj_vol+ vol;
398 4 if( vol > 65535 )
399 4 adj = 65535 ;
400 4 else adj=vol;
401 4 }
402 3 }
403 2 adj_vol=adj;
404 2 da_outbyte(adj);
405 2 }
406 1 if(enable_ad)
407 1 {
408 2 disp_ad(ad_vol,type);
409 2 sprintf(&send_buf[2],"%05u",ad_vol);
410 2 send_cnt=0;
411 2 TI=1;
412 2 }
413 1 ad_cnt=0;
414 1 TH1=0;
415 1 TL1=0;
416 1 TR1=1;
417 1 }
418 ///////////////////////////////
419 //
420 //NAME: init_timer1
421 //DESCRIPTION: TIMER1 INTERRUPT SERVICE PROGRAM FOR AD COUNTER
422 //CALL:
423 //INPUT:
424 //OUTPUT:NONE
425 //
426 ///////////////////////////////
427 void init_timer1() interrupt 3
C51 COMPILER V6.12 SOURCE 08/15/2004 20:14:19 PAGE 8
428 {
429 1 ad_cnt++;
430 1 }
431
432 /////////////////////////////
433 //
434 //NAME: disp_ad
435 //DESCRIPTION: disp_ad
436 //CALL:
437 //INPUT: ad:ad value type:display type
438 //OUTPUT:NONE
439 //
440 ///////////////////////////////
441 void disp_ad(unsigned int ad,unsigned char type)
442 {
443 1 unsigned char ch,ch1;
444 1 unsigned int itemp;
445 1 itemp=ad;
446 1 ch=ad/10000;
447 1 ch1=ADU;
448 1 if( (type & ch1) == ch1 ) display(4,ch | 0x80);
449 1 else display(4,ch);
450 1 itemp=itemp-ch*10000;
451 1 ch=itemp/1000;
452 1 ch1=ADI;
453 1 if(( type & ch1 ) == ch1 ) display(5,ch | 0x80);
454 1 else display(5,ch);
455 1 itemp=itemp-ch*1000;
456 1 ch=itemp/100;
457 1 display(6,ch);
458 1 itemp=itemp-ch*100;
459 1 ch=itemp/10;
460 1 display(7,ch);
461 1 itemp=itemp-ch*10;
462 1 ch=itemp;
463 1 display(8,ch);
464 1 ch1=ADH;
465 1 if(( type & ch1 ) == ch1 )
466 1 {
467 2 display(1,0x0c);
468 2 display(2,0x0f);
469 2 }
470 1 else
471 1 {
472 2 ch1=ADL;
473 2 if (( type & ch1 ) == ch1 ) display(1,0x0d);
474 2 else display(1,0x0f);
475 2 display(2,0x0f);
476 2 }
477 1 ch1= SET_AD;
478 1 if(( type & ch1 ) == ch1 )
479 1 {
480 2 display(1,0x05);
481 2 display(2,0x0b);
482 2 }
483 1 display(3,0x0f);
484 1 }
485
486 //////////////////////////////
487 //
488 //NAME: display
489 //DESCRIPTION: display
C51 COMPILER V6.12 SOURCE 08/15/2004 20:14:19 PAGE 9
490 //CALL:
491 //INPUT: pos:place disp_code:display code
492 //OUTPUT:NONE
493 //
494 ///////////////////////////////
495 void display(unsigned int pos,unsigned int disp_code)
496 {
497 1 int k=0;
498 1 k=pos*256+disp_code;
499 1 disp_outbyte(k);
500 1 }
501 //////////////////////////////
502 //
503 //NAME: disp_init
504 //DESCRIPTION: init 7219
505 //CALL:
506 //INPUT: NONE
507 //OUTPUT:NONE
508 //
509 ///////////////////////////////
510 void disp_init(void)
511 {
512 1 int k=0x010f;
513 1 unsigned int i;
514 1 disp_outbyte(0x09ff); //DECODE MODE:1-8
515 1 disp_outbyte(0x0a01); //INTENSITY:31/32
516 1 disp_outbyte(0x0b07); //SCAN LIMIT:1-8
517 1 disp_outbyte(0x0c01); //SHUT DOWN:OFF
518 1 disp_outbyte(0x0f00); //DISPLAY TEST:OFF
519 1 for ( i = 0 ;i < 8 ; i++)
520 1 {
521 2 disp_outbyte(k);
522 2 k=k+0x0100;
523 2 }
524 1 }
525 //////////////////////////////
526 //
527 //NAME: disp_outbyte(int outbytes)
528 //DESCRIPTION: output a word to 7219
529 //CALL:
530 //INPUT: NONE
531 //OUTPUT:NONE
532 //
533 ///////////////////////////////
534 void disp_outbyte(int outbytes)
535 {
536 1 int i ,j;
537 1 DSP_LOAD=0;
538 1
539 1 for( i = 0 ; i < 16 ;i++)
540 1 {
541 2 DSP_CLK=0;
542 2 j=outbytes & 0x8000;
543 2 if ( j == 0 ) DSP_DIN = 0 ;
544 2 else DSP_DIN=1;
545 2 outbytes=outbytes<<1;
546 2 DSP_CLK=1;
547 2 }
548 1 DSP_LOAD=1;
549 1 DSP_CLK=0;
550 1 DSP_CLK=1;
551 1 DSP_LOAD=0;
C51 COMPILER V6.12 SOURCE 08/15/2004 20:14:19 PAGE 10
552 1 }
553
554
555 //below functions are for x5045
556 /*
557 /////////////////////////////////////////
558 //
559 //NAME: x_write
560 //DESCRIPTION: WRITE MUL-BYTES TO X5045
561 //CALL: x_outbyte,wait,x_wren_cmd
562 //INPUT: x_address: address of x5045 000h-01ffh
563 // *psavedata :data pointer to be saved
564 // amount: counter of data <0x10
565 //RETURN:NONE
566 ////////////////////////////////////////
567 void x_write ( unsigned int x_address,unsigned char *psavedata,unsigned char amount)
568 {
569 unsigned char sendaddress,i,ch;
570 x_wren_cmd();
571 // X_WP=1;
572 X_SCK=0;
573 wait(5);
574 X_CS=0;
575 if ( x_address >=0x100 )
576 { x_outbyte(0x0a);
577 x_address = x_address-0x100 ;
578 }
579 else
580 {
581 x_outbyte(0x02);
582 }
583 sendaddress=(unsigned char ) x_address;
584 x_outbyte(sendaddress);
585 for (i=0 ; i<amount ;i++)
586 { ch=*psavedata;
587 x_outbyte( ch );
588 psavedata++;
589 }
590 X_SCK=0;
591 X_CS=1;
592 // X_WP=1;
593 wait(6);
594 }
595 /////////////////////////////////////////
596 //
597 //NAME: x_read
598 //DESCRIPTION: WRITE MUL-BYTES TO X5045
599 //CALL: x_outbyte,x_inbyte;wait,x_wren_cmd
600 //INPUT: address: address of x5045
601 // amount: counter of data
602 //RETURN:data pointer
603 ////////////////////////////////////////
604
605 unsigned char * x_read( unsigned int address ,unsigned char amount)
606 {
607 unsigned char * preaddata;
608 unsigned char sendaddress,i;
609 unsigned char readdata[10];
610 X_SCK=0;
611 wait(6);
612 X_CS=0;
613 if ( address >=0x100 )
C51 COMPILER V6.12 SOURCE 08/15/2004 20:14:19 PAGE 11
614 { x_outbyte(0x0b);
615 address=address-0x100;
616 }
617 else
618 {
619 x_outbyte(0x03);
620 }
621 sendaddress=(unsigned char ) address;
622 x_outbyte(sendaddress);
623 for ( i=0 ; i<amount ;i++)
624 { readdata[i]=x_inbyte();
625 }
626
627 X_SCK=0;
628 X_CS=1;
629 preaddata=&readdata;
630 return(&readdata);
631 }
632 */
633 /////////////////////////////////////////
634 //
635 //NAME: x_wren_cmd
636 //DESCRIPTION: WRITE ENABLE
637 //CALL: x_outbyte
638 //INPUT:NONE
639 //RETURN:NONE
640 ////////////////////////////////////////
641 void x_wren_cmd (void)
642 {
643 1 X_SCK=0;
644 1 wait(3);
645 1 X_CS=0;
646 1 x_outbyte(0x06);
647 1 X_SCK=0;
648 1 X_CS=1;
649 1 }
650 /////////////////////////////////////////
651 //
652 //NAME: init_watchdog
653 //DESCRIPTION: INIT WATCHDOG TO X5045
654 //CALL: x_outbyte,x_wren_cmd
655 //INPUT: ch=0:1.4S,ch=1: 600mS,ch=2 :200mS ch=3 : disablewatchdog
656 //RETURN:NONE
657 ////////////////////////////////////////
658 void init_watchdog(unsigned char ch)
659 { if (!( ch > 0x03))
660 1 {
661 2 // X_WP=1;
662 2 x_wren_cmd();
663 2 X_SCK=0;
664 2 X_CS=0;
665 2 x_outbyte(0x01);
666 2 ch=ch<<4;
667 2 x_outbyte(ch);
668 2 X_SCK=0;
669 2 X_CS=1;
670 2 // X_WP=1;
671 2 }
672 1 }
673 /*
674 unsigned char x_inbyte( void )
675 {
C51 COMPILER V6.12 SOURCE 08/15/2004 20:14:19 PAGE 12
676 unsigned char i;
677 unsigned char ch=0x00;
678 for ( i=0 ; i<8 ;i++ )
679 { X_SCK=1;
680 X_SCK=0;
681 ch=ch*2;
682 if (X_SO)
683 { ch=ch+1;
684 }
685 }
686 return ( ch );
687 }
688 */
689 void x_outbyte( unsigned char ch) //ch:data to be sent to x5045
690 {
691 1 unsigned char i;
692 1 for ( i=0 ; i<8 ; i++ )
693 1 { X_SCK=0;
694 2 X_SI=(bit)(ch & 0x80);
695 2 ch=ch*2;
696 2 X_SCK=1;
697 2 }
698 1 X_SI=0;
699 1 }
700 //X5045 PROG END ///////////////////////
701 /////////////////////////////////////////
702 //
703 //NAME: wait
704 //DESCRIPTION: WAIT
705 //CALL: NONE
706 //INPUT: time:mS <356
707 //RETURN:NONE
708 ////////////////////////////////////////
709 void wait(unsigned int time)
710 {
711 1 X_CS=0;
712 1 X_CS=1;
713 1 time=time*83;
714 1 for ( time; time>=1 ; time--)
715 1 {
716 2 }
717 1 X_CS=0;
718 1 X_CS=1;
719 1 }
720
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2552 ----
CONSTANT SIZE = 5 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 24 29
IDATA SIZE = ---- ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -