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

📄 pyzc4.lst

📁 基于80196KB开发的C程序,在伟福和星研环境中编译通过,用于学习8096系列单片机的中断编程技术.并成功地用于某地机动车检测业务.
💻 LST
📖 第 1 页 / 共 5 页
字号:
          0275  B10F00             E         ldb     wsr,#0FH
          0278  B00000             E         ldb     tmpreg,ioc1
          027B  914000             R         orb     tmpreg,#4
          027E  1101               R         clrb    tmpreg+1
          0280  1100               E         clrb    wsr
          0282  B00000             E         ldb     ioc1,tmpreg
  337     1         _ClrSFR_bit (ioc2, CAM_LOCK_BIT);
          0285  B10F00             E         ldb     wsr,#0FH
          0288  AC0000             E         ldbze   tmpreg,ioc2
          028B  61BFFF00           R         and     tmpreg,#0FFBFH
          028F  1100               E         clrb    wsr
          0291  B00000             E         ldb     ioc2,tmpreg
  338     1         _ClrSFR_bit (ioc2, CLEAR_CAM_BIT);
          0294  B10F00             E         ldb     wsr,#0FH
          0297  AC0000             E         ldbze   tmpreg,ioc2
          029A  617FFF00           R         and     tmpreg,#0FF7FH
          029E  1100               E         clrb    wsr
          02A0  B00000             E         ldb     ioc2,tmpreg
  339     1       
  34      1       /*
  341     1       * Interrupts:
  342     1       *   HSO interrupt      = disabled
  343     1       *   software timer int = disabled
  344     1       */
  345     1       
  346     1         _ClrSFR_bit (int_mask, HSO_INT);
          02A3  2000                         br      @0041
          02A5                        @0041: 
          02A5  AC0000             E         ldbze   tmpreg,int_mask
          02A8  61F7FF00           R         and     tmpreg,#0FFF7H
          02AC  2000                         br      @0042
          02AE                        @0042: 
          02AE  B00000             E         ldb     int_mask,tmpreg
  347     1         _ClrSFR_bit (int_mask, SW_TIMER_INT);
          02B1  2000                         br      @0043
          02B3                        @0043: 
          02B3  AC0000             E         ldbze   tmpreg,int_mask
          02B6  61DFFF00           R         and     tmpreg,#0FFDFH
          02BA  2000                         br      @0044
          02BC                        @0044: 
C196  Compiler   pyzc4                                                                      15-Dec-106 17:34:24  Page  14
                 Assembly Listing of Object Code


          02BC  B00000             E         ldb     int_mask,tmpreg
  348     1       }
          02BF  F0                           ret     
                                      
                ; Function Statistics for: init_hso1_5
                ;    Code Size :   91     Parameter Count:   
                ;    Stack Size:         Parameter Size :   
                ;    OReg Size :         Stack Depth    :   

  349             
  35              void init_atod_converter(void)
  351             {
          02C0                        init_atod_converter: 
  352     1       /* 
  353     1       * A/D conversion configuration:
  354     1       *    speed           = normal
  355     1       *    interrupt       = disabled 
  356     1       *    channel         = 0
  357     1       *    start time      = started immediately
  358     1       *    mode            = 10-bit
  359     1       */
  36      1       
  361     1         _ClrSFR_bit (ioc2, AD_SPEED);
          02C0  B10F00             E         ldb     wsr,#0FH
          02C3  AC0000             E         ldbze   tmpreg,ioc2
          02C6  61EFFF00           R         and     tmpreg,#0FFEFH
          02CA  1100               E         clrb    wsr
          02CC  B00000             E         ldb     ioc2,tmpreg
  362     1         _ClrSFR_bit (int_mask, AD_INT);
          02CF  2000                         br      @0048
          02D1                        @0048: 
          02D1  AC0000             E         ldbze   tmpreg,int_mask
          02D4  61FDFF00           R         and     tmpreg,#0FFFDH
          02D8  2000                         br      @0049
          02DA                        @0049: 
          02DA  B00000             E         ldb     int_mask,tmpreg
  363     1         _WriteSFR   (ad_command, 0x8);
          02DD  1100               E         clrb    wsr
          02DF  B10800             E         ldb     ad_command,#8
  364     1       }
          02E2  F0                           ret     
                                      
                ; Function Statistics for: init_atod_converter
                ;    Code Size :   35     Parameter Count:   
                ;    Stack Size:         Parameter Size :   
                ;    OReg Size :         Stack Depth    :   

  365             /*   convert_atod performs an atod conversion and.  This routine 
  366                  waits until the atod busy bit is cleared before and after the 
  367                  conversion. Interrupts should be disabled and the ATOD 
  368                  should be initialized prior to calling this routine.     */
  369             
  37              unsigned int convert_atod(unsigned char channel)
  371             {
          02E3                        convert_atod: 
          02E3  C800               R         push    ?OVRBASE
C196  Compiler   pyzc4                                                                      15-Dec-106 17:34:24  Page  15
                 Assembly Listing of Object Code


          02E5  B3180400           R         ldb     channel,4[SP]
  372     1        wsr = 0;
          02E9  1100               E         clrb    wsr
          02EB  2000                         br      @004D
          02ED                        @004C: 
  373     1        while(ATOD_BUSY);
          02ED                        @004D: 
          02ED  410800001C         E         and     Tmp0,ad_result,#8
          02F2  881C00                       cmp     R0,Tmp0
          02F5  D7F6                         bne     @004C
  374     1        ad_command =  channel | GO_NOW | TEN_BIT_MODE;
          02F7  B0001C             R         ldb     Tmp0,channel
          02FA  91081C                       orb     Tmp0,#8
          02FD  B01C00             E         ldb     ad_command,Tmp0
  375     1        zero_reg=zero_reg+zero_reg;     /*  needed for 4 state delay  */
          0300  640000             E         add     r0,r0
  376     1        zero_reg=zero_reg+zero_reg;     /*  needed for 4 state delay  */
          0303  640000             E         add     r0,r0
          0306  2000                         br      @005
          0308                        @004F: 
  377     1        while(ATOD_BUSY);
          0308                        @005: 
          0308  410800001C         E         and     Tmp0,ad_result,#8
          030D  881C00                       cmp     R0,Tmp0
          0310  D7F6                         bne     @004F
  378     1        return((ad_result >> 6));
          0312  A0001C             E         ld      Tmp0,ad_result
          0315  08061C                       shr     Tmp0,#6
          0318  2000                         br      @004B
  379     1       }
          031A                        @004B: 
          031A  CC00               R         pop     ?OVRBASE
          031C  F0                           ret     
                                      
                ; Function Statistics for: convert_atod
                ;    Code Size :   58     Parameter Count:   1
                ;    Stack Size:         Parameter Size :   2
                ;    OReg Size :    1     Stack Depth    :   2

  38              
  381             void init_hsi0(void)
  382             {
          031D                        init_hsi0: 
  383     1       /*
  384     1       * HSI 0 module configuration:
  385     1       *   input capture mode = each positive transition
  386     1       *   hsi 0 external pin = enabled
  387     1       */
  388     1         _ClrSFR_bit (hsi_mode, 1);
          031D  B10F00             E         ldb     wsr,#0FH
          0320  AC0000             E         ldbze   tmpreg,hsi_mode
          0323  61FDFF00           R         and     tmpreg,#0FFFDH
          0327  1100               E         clrb    wsr
          0329  B00000             E         ldb     hsi_mode,tmpreg
  389     1         _SetSFR_bit (hsi_mode, 0);
          032C  B10F00             E         ldb     wsr,#0FH
C196  Compiler   pyzc4                                                                      15-Dec-106 17:34:24  Page  16
                 Assembly Listing of Object Code


          032F  B00000             E         ldb     tmpreg,hsi_mode
          0332  910100             R         orb     tmpreg,#1
          0335  1101               R         clrb    tmpreg+1
          0337  1100               E         clrb    wsr
          0339  B00000             E         ldb     hsi_mode,tmpreg
  39      1          
  391     1         _SetSFR_bit (ioc0, HSI0_PIN_ENABLE);
          033C  B10F00             E         ldb     wsr,#0FH
          033F  B00000             E         ldb     tmpreg,ioc0
          0342  910100             R         orb     tmpreg,#1
          0345  1101               R         clrb    tmpreg+1
          0347  1100               E         clrb    wsr
          0349  B00000             E         ldb     ioc0,tmpreg
  392     1       
  393     1       /*
  394     1       * Interrupts
  395     1       *   sixth fifo int vector  = hsi data available
  396     1       *   hsi 0 pin interrupt    = enabled
  397     1       *   hsi data available int = disabled
  398     1       *   hsi fifo full int      = disabled  
  399     1       *   hsi fifo 4 int         = disabled
  4       1       */
  4       1       
  4       1         _ClrSFR_bit (ioc1, SELECT_INT_VECTOR);
          034C  B10F00             E         ldb     wsr,#0FH
          034F  AC0000             E         ldbze   tmpreg,ioc1
          0352  617FFF00           R         and     tmpreg,#0FF7FH
          0356  1100               E         clrb    wsr
          0358  B00000             E         ldb     ioc1,tmpreg
  4       1         _ClrSFR_bit (int_mask, 2);  /* hsi data available */
          035B  2000                         br      @005B
          035D                        @005B: 
          035D  AC0000             E         ldbze   tmpreg,int_mask
          0360  61FBFF00           R         and     tmpreg,#0FFFBH
          0364  2000                         br      @005C
          0366                        @005C: 
          0366  B00000             E         ldb     int_mask,tmpreg
  4       1         _SetSFR_bit (int_mask, 4);  /* hsi0 external interrupt */
          0369  2000                         br      @005D
          036B                        @005D: 
          036B  B00000             E         ldb     tmpreg,int_mask
          036E  911000             R         orb     tmpreg,#1
          0371  1101               R         clrb    tmpreg+1
          0373  2000                         br      @005E
          0375                        @005E: 
          0375  B00000             E         ldb     int_mask,tmpreg
  4       1         _AndSFR (int_mask1, ~(HSI_FIFO_FULL_INTMSK + HSI_FIFO_4_INT));
          0378  2000                         br      @005F
          037A                        @005F: 
          037A  AC0000             E         ldbze   tmpreg,imask1
          037D  61BBFF00           R         and     tmpreg,#0FFBBH
          0381  2000                         br      @006
          0383                        @006: 
          0383  B00000             E         ldb     imask1,tmpreg
  4       1       }
          0386  F0                           ret     
C196  Compiler   pyzc4                                                                      15-Dec-106 17:34:24  Page  17
                 Assembly Listing of Object Code


                                      
                ; Function Statistics for: init_hsi0
                ;    Code Size :  1     Parameter Count:   
                ;    Stack Size:         Parameter Size :   
                ;    OReg Size :         Stack Depth    :   

  4               
  4                 
  4               
  41              /*
  411             *  external interrupt source = extint pin
  412             */
  413             
  414             void init_extint_src(void)
  415             {
          0387                        init_extint_src: 
  416     1       _ClrSFR_bit (ioc1, EXTINT_SRC);
          0387  B10F00             E         ldb     wsr,#0FH
          038A  AC0000             E         ldbze   tmpreg,ioc1
          038D  61FDFF00           R         and     tmpreg,#0FFFDH
          0391  1100               E         clrb    wsr

⌨️ 快捷键说明

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