⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pyzc4.lst

📁 基于80196KB开发的C程序,在伟福和星研环境中编译通过,用于学习8096系列单片机的中断编程技术.并成功地用于某地机动车检测业务.
💻 LST
📖 第 1 页 / 共 5 页
字号:
          0393  B00000             E         ldb     ioc1,tmpreg
  417     1       }
          0396  F0                           ret     
                                      
                ; Function Statistics for: init_extint_src
                ;    Code Size :   16     Parameter Count:   
                ;    Stack Size:         Parameter Size :   
                ;    OReg Size :         Stack Depth    :   

  418             
  419             void init_interrupts(void)
  42              {
          0397                        init_interrupts: 
  421     1       /*
  422     1       * Timer overflow interrupt          = disabled
  423     1       * A/D conversion complete interrupt = disabled
  424     1       * HSI data available interrupt      = disabled
  425     1       * HSO interrupt                     = disabled
  426     1       * HSI.0 pin interrupt               = enabled
  427     1       * Timer interrupt                   = disabled
  428     1       * Serial port interrupt             = disabled
  429     1       * External interrupt                = enabled
  43      1       * Transmit interrupt                = disabled
  431     1       * Receive interrupt                 = disabled
  432     1       * HSI fifo 4 interrupt              = disabled
  433     1       * Timer 2 capture interrupt         = disabled
  434     1       * Timer 2 overflow interrupt        = disabled
  435     1       * External Interrupt 1              = disabled
  436     1       * HSI fifo full interrupt           = disabled
  437     1       */
  438     1       
  439     1         _SetSFR_bit (int_mask, HSI0_INT);
          0397  2000                         br      @0065
          0399                        @0065: 
          0399  B00000             E         ldb     tmpreg,int_mask
C196  Compiler   pyzc4                                                                      15-Dec-106 17:34:24  Page  18
                 Assembly Listing of Object Code


          039C  911000             R         orb     tmpreg,#1
          039F  1101               R         clrb    tmpreg+1
          03A1  2000                         br      @0066
          03A3                        @0066: 
          03A3  B00000             E         ldb     int_mask,tmpreg
  44      1         _SetSFR_bit (int_mask, EXT_INT);
          03A6  2000                         br      @0067
          03A8                        @0067: 
          03A8  B00000             E         ldb     tmpreg,int_mask
          03AB  918000             R         orb     tmpreg,#8
          03AE  1101               R         clrb    tmpreg+1
          03B0  2000                         br      @0068
          03B2                        @0068: 
          03B2  B00000             E         ldb     int_mask,tmpreg
  441     1       }
          03B5  F0                           ret     
                                      
                ; Function Statistics for: init_interrupts
                ;    Code Size :   31     Parameter Count:   
                ;    Stack Size:         Parameter Size :   
                ;    OReg Size :         Stack Depth    :   

  442             
  443             void main(void)
  444             {
          03B6                        main: 
          03B6  69040018                     sub     SP,#4
          03BA  C800               E         push    ?FRAME01
          03BC  A01800             E         ld      ?FRAME01,SP
          03BF  C800               R         push    ?OVRBASE
          03C1  C802               R         push    ?OVRBASE+2
  445     1        unsigned char i,chno=0;
          03C3  1103               R         clrb    chno
  446     1        unsigned int result,ad_result[2];
  447     1        init_serial();
          03C5  2E03                         call    init_serial
  448     1        init_timer1();
          03C7  2E57                         call    init_timer1
  449     1        init_pwm0();
          03C9  2E75                         call    init_pwm0
  45      1        init_hso1_5();
          03CB  2E98                         call    init_hso1_5
  451     1        init_atod_converter();
          03CD  2EF1                         call    init_atod_converter
  452     1        init_hsi0();
          03CF  2F4C                         call    init_hsi0
  453     1        init_extint_src();
          03D1  2FB4                         call    init_extint_src
  454     1        init_interrupts();
          03D3  2FC2                         call    init_interrupts
  455     1        enable();
          03D5  EF0000             E         call    enable
  456     1       /*   The following line will loop until the letter 'Q' is 
  457     1            received.   */
  458     1        putchar('H');
          03D8  C94800                       push    #48H
C196  Compiler   pyzc4                                                                      15-Dec-106 17:34:24  Page  19
                 Assembly Listing of Object Code


          03DB  2C93                         call    putchar
          03DD  65020018                     add     SP,#2
  459     1        putchar('e');
          03E1  C96500                       push    #65H
          03E4  2C8A                         call    putchar
          03E6  65020018                     add     SP,#2
  46      1        putchar('l');
          03EA  C96C00                       push    #6CH
          03ED  2C81                         call    putchar
          03EF  65020018                     add     SP,#2
  461     1        putchar('l');
          03F3  C96C00                       push    #6CH
          03F6  2C78                         call    putchar
          03F8  65020018                     add     SP,#2
  462     1        putchar('o');
          03FC  C96F00                       push    #6FH
          03FF  2C6F                         call    putchar
          0401  65020018                     add     SP,#2
          0405  20AF                         br      @006B
          0407                        @006A: 
  463     1        //while(getchar() != 'Q')
  464     1        while(1)
  465     1        {
  466     2         //result = convert_atod(0x00);
  467     2         result = convert_atod(chno);
          0407  AC031C             R         ldbze   Tmp0,chno
          040A  C81C                         push    Tmp0
          040C  2ED5                         call    convert_atod
          040E  65020018                     add     SP,#2
          0412  A01C00             R         ld      result,Tmp0
  468     2         ad_result[chno]=result;
          0415  AC031E             R         ldbze   Tmp2,chno
          0418  641E1E                       add     Tmp2,Tmp2
          041B  64001E             E         add     Tmp2,?FRAME01
          041E  C31E021C                     st      Tmp0,ad_result[Tmp2]
  469     2         if(++chno==2) chno=0;
          0422  1703               R         incb    chno
          0424  990203             R         cmpb    chno,#2
          0427  D702                         bne     @006D
          0429  1103               R         clrb    chno
          042B                        @006D: 
  47      2         if(triggle_out==1)
          042B  990102             R         cmpb    triggle_out,#1
          042E  D755                         bne     @006E
  471     2         {
  472     3           triggle_out=0;
          0430  1102               R         clrb    triggle_out
  473     3           wsr=0;
          0432  1100               E         clrb    wsr
  474     3           wsr = 0x0;
          0434  1100               E         clrb    wsr
  475     3           mess[1]=ad_result[0]>>8;
          0436  B300031C           E         ldb     Tmp0,ad_result+1[?FRAME01]
          043A  C70101001C         R         stb     Tmp0,mess+1
  476     3           mess[2]=ad_result[0];
          043F  B300021C           E         ldb     Tmp0,ad_result[?FRAME01]
C196  Compiler   pyzc4                                                                      15-Dec-106 17:34:24  Page  2          0443  C70102001C         R         stb     Tmp0,mess+2
  477     3           mess[3]=ad_result[1]>>8;
          0448  B300051C           E         ldb     Tmp0,ad_result+3[?FRAME01]
          044C  C70103001C         R         stb     Tmp0,mess+3
  478     3           mess[4]=ad_result[1];
          0451  B300041C           E         ldb     Tmp0,ad_result+2[?FRAME01]
          0455  C70104001C         R         stb     Tmp0,mess+4
  479     3           mess[5]=ioport0;
          045A  C701050000         E         stb     ioport0,mess+5
  48      3           mess[6]=ioport2;
          045F  C701060000         E         stb     ioport2,mess+6
  481     3           mess[7]=hsi_status;
          0464  C701070000         E         stb     hsi_status,mess+7
  482     3           //mess[8]=pulse;
  483     3           for(i=0;i<12;i++) putchar(mess[i]);
          0469  1102               R         clrb    i
          046B  2013                         br      @0071
          046D                        @006F: 
          046D  AC021C             R         ldbze   Tmp0,i
          0470  AF1D00001C         R         ldbze   Tmp0,mess[Tmp0]
          0475  C81C                         push    Tmp0
          0477  EFF6FB                       call    putchar
          047A  65020018                     add     SP,#2
          047E  1702               R         incb    i
          0480                        @0071: 
          0480  990C02             R         cmpb    i,#0CH
          0483  D3E8                         bnc     @006F
          0485                        @006E: 
  484     3         }  
  485     2         if(triggle_in==1)
          0485  990103             R         cmpb    triggle_in,#1
          0488  D72C                         bne     @0073
  486     2         {
  487     3          triggle_in=0;
          048A  1103               R         clrb    triggle_in
  488     3          pwm0_control=pwm0_byte; //receive_buff[(end_rec_buff+RECEIVE_BUF_SIZE-4)%RECEIVE_BUF_SIZE];
          048C  B00700             E         ldb     pwm_control,pwm0_byte
  489     3          ioport1=ioport1_byte; //receive_buff[(end_rec_buff+RECEIVE_BUF_SIZE-3)%RECEIVE_BUF_SIZE];
          048F  B00800             E         ldb     ioport1,ioport1_byte
  49      3          for(i=0;i<5;i++)
          0492  1102               R         clrb    i
          0494  201B                         br      @0076
          0496                        @0074: 
  491     3          {
  492     4           hso_command=((hso_byte & (1<<i))>>i)*0x20+i;
          0496  AD011C                       ldbze   Tmp0,#1
          0499  09021C             R         shl     Tmp0,i
          049C  AC091E             R         ldbze   Tmp2,hso_byte
          049F  601E1C                       and     Tmp0,Tmp2
          04A2  0A021C             R         shra    Tmp0,i
          04A5  19051C                       shlb    Tmp0,#5
          04A8  541C0200           E         addb    hso_command,i,Tmp0
  493     4           hso_time=20;
          04AC  AD1400             E         ldbze   hso_time,#14H
          04AF  1702               R         incb    i
          04B1                        @0076: 
C196  Compiler   pyzc4                                                                      15-Dec-106 17:34:24  Page  21
                 Assembly Listing of Object Code


          04B1  990502             R         cmpb    i,#5
          04B4  D3E0                         bnc     @0074
          04B6                        @0073: 
  494     4          }
  495     3         }    
  496     2        }
          04B6                        @006B: 
          04B6  274F                         br      @006A
  497     1       /*   Example of sending out buffered data.    */
  498     1        //while(1);  
  499     1       }
          04B8  CC02               R         pop     ?OVRBASE+2
          04BA  CC00               R         pop     ?OVRBASE
          04BC  CC00               E         pop     ?FRAME01
          04BE  65040018                     add     SP,#4
          04C2  F0                           ret     
                                      
                ; Function Statistics for: main
                ;    Code Size :  269     Parameter Count:   
                ;    Stack Size:    4     Parameter Size :   
                ;    OReg Size :    4     Stack Depth    :  16

                                             end
  5               
  5               
C196  Compiler   pyzc4                                                                      15-Dec-106 17:34:24  Page  22
                                   Symbol Table


  Name         

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -