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

📄 fm_i2cdrv2.lst

📁 5807收音机模块用于炬力平台
💻 LST
📖 第 1 页 / 共 3 页
字号:
################################################################################
#                                                                              #
#     IAR Systems Z80/64180 Assembler V3.03A/WIN 25/Feb/109  14:30:23          #
#                                                                              #
#           Target option =  z80                                               #
#           Source file   =  d:\case_i_d95f\ap\ap_radio\fm_i2cdrv2.msa         #
#           List file     =  d:\case_i_d95f\ap\ap_radio\list\fm_i2cdrv2.lst    #
#           Object file   =  d:\case_i_d95f\ap\ap_radio\obj\fm_i2cdrv2.r01     #
#           Command line  =  -v0 -OD:\case_i_d95f\ap\ap_radio\Obj\ -s+ -M<>    #
#                            -w+ -r -LD:\case_i_d95f\ap\ap_radio\List\ -t8     #
#                            -Id:\sdk_i_95f\inc\ -Id:\case_i_d95f\inc\         #
#                            d:\case_i_d95f\ap\ap_radio\FM_i2cdrv2.msa         #
#                                                                              #
#                                               (c) Copyright IAR Systems 1996 #
################################################################################

      1    000000          /***************************************************
                            *****************************************
      2    000000          philips TEA5767 FM module driver(I2C DRIVER)
      3    000000          writen by Xuezhi. for 3951 S1
      4    000000          last update 04-2-13 15:03
      5    000000          ****************************************************
                                                      **************************
                                                      **************/
      6    000000          //for FM_i2cdrv1
      7    000000                   module   FM_I2CDRV2
      8    000000          
      9    000000          public   I2C_init
     10    000000          public   I2C_exit
     11    000000          public   WRITE_ONEFRAME
     12    000000          public   READ_STATUS
     13    000000          public   FMwait50ms
     14    000000          
     15    000000          //from  FM_i2cdrv1
     16    000000          extern   FREQ_RF
     17    000000          extern   WSET_PLLLB
     18    000000          extern   WSET_PLLHB
     19    000000          extern   WRITE_BUFFER
     20    000000          extern   READ_BUFFER
     21    000000          extern   WSET_HLSI
     22    000000          extern   FM_result
     23    000000          extern   disable_hosc
     24    000000          
     25    000000          //--------------------------------------------------
 ---
     26    000000           
     27    000000          //output enable port
     28    000000          #define     SDA_outport          0F3H
     29    000000          #define     SDA_outport_num      01H
     30    000000          //input enable port
     31    000000          #define     SDA_inport           0F3H
     32    000000          #define     SDA_inport_num       05H
     33    000000          
     34    000000          #define     SCL_outport          0F3H
     35    000000          #define     SCL_outport_num      00h
     36    000000          #define     SCL_inport           0F3h
     37    000000          #define     SCL_inport_num       004h
     38    000000          
     39    000000          //data port
     40    000000          #define     SDA_doport            0F4h
     41    000000          #define     SDA_doport_num        01h
     42    000000          #define     SDA_dinport           0F4h
     43    000000          #define     SDA_dinport_num       01h
     44    000000          
     45    000000          #define     SCL_doport            0F4h
     46    000000          #define     SCL_doport_num        00h
     47    000000          #define     SCL_dinport           0F4h
     48    000000          #define     SCL_dinport_num       00h
     49    000000          
     50    000000          
     51    000000          //==================================================
 ===
     52    000000                      rseg    FM_CTRL_D
     53    000000          //==================================================
 ===
     54    000000          FMupdatestatus:
     55    000000 F5                   PUSH    AF
     56    000001 C5                   PUSH    BC
     57    000002 E5                   PUSH    HL
     58    000003 CD....               CALL    LWRD I2C_start
     59    000006 3EC0                 LD      A,0C0H
     60    000008 0600                 LD      B,00H
     61    00000A CD....               CALL    LWRD I2Ctransbyte
     62    00000D FE00                 CP      00H
     63    00000F 2014                 JR      NZ,FMupdatestatus_exit
     64    000011          
     65    000011 21....               LD      HL,LWRD WRITE_BUFFER
     66    000014 7E                   LD      A,(HL)
     67    000015 0600                 LD      B,00H
     68    000017 CD....               CALL    LWRD  I2Ctransbyte
     69    00001A FE00                 CP      00H
     70    00001C 2007                 JR      NZ,FMupdatestatus_exit
     71    00001E          
     72    00001E 3E01                 LD      A,01H
     73    000020 32....               LD      (LWRD FM_result),A
     74    000023 1805                 JR      FMupdatestatus_ok
     75    000025          FMupdatestatus_exit:
     76    000025 3E00                 LD      A,00H
     77    000027 32....               LD      (LWRD FM_result),A
     78    00002A          FMupdatestatus_ok:
     79    00002A CD....               CALL   LWRD  I2C_stop
     80    00002D E1                   POP    HL
     81    00002E C1                   POP    BC
     82    00002F F1                   POP    AF
     83    000030 C9                   RET
     84    000031          //==================================================
 =======
     85    000031          WRITE_ONEFRAME:
     86    000031 E5                   PUSH    HL
     87    000032 C5                   PUSH    BC
     88    000033 CD....               CALL    LWRD I2C_start
     89    000036          
     90    000036 3E20                 LD      A,020H
     91    000038 0600                 LD      B,00H
     92    00003A CD....               CALL    LWRD I2Ctransbyte
     93    00003D FE00                 CP      00H
     94    00003F 2018                 JR      NZ,I2C_werror_exit
     95    000041          
     96    000041                      //LD      C,8
     97    000041 21....               LD      HL,LWRD WRITE_BUFFER
     98    000044          I2C_wr_nextbyte:
     99    000044 7E                   LD      A,(HL)
    100    000045 0600                 LD      B,00H
    101    000047 CD....               CALL    LWRD  I2Ctransbyte
    102    00004A FE00                 CP      00H
    103    00004C 200B                 JR      NZ,I2C_werror_exit
    104    00004E 23                   INC     HL
    105    00004F 0D                   DEC     C
    106    000050 20F2                 JR      NZ,I2C_wr_nextbyte
    107    000052 3E01                 LD      A,01H
    108    000054 32....               LD      (LWRD FM_result),A
    109    000057 1805                 JR      I2Cwstop_exit
    110    000059          I2C_werror_exit:
    111    000059 3E00                 LD      A,00H
    112    00005B 32....               LD      (LWRD FM_result),A
    113    00005E          I2Cwstop_exit:
    114    00005E CD....               CALL   LWRD  I2C_stop
    115    000061 3A....               LD     A,(LWRD FM_result)
    116    000064 C1                   POP    BC
    117    000065 E1                   POP    HL
    118    000066 C9                   RET
    119    000067          //======================================
    120    000067          READ_ONEFRAME:
    121    000067 C5                   PUSH    BC
    122    000068 E5                   PUSH    HL
    123    000069 CD....               CALL    LWRD  I2C_start
    124    00006C          
    125    00006C 3E21                 LD      A,021H
    126    00006E 0601                 LD      B,01H
    127    000070 CD....               CALL    LWRD  I2Ctransbyte
    128    000073 FE00                 CP      00H
    129    000075 201C                 JR      NZ,I2C_rerror_exit
    130    000077          
    131    000077 0E04                 LD      C,04H
    132    000079 21....               LD      HL,LWRD READ_BUFFER
    133    00007C          I2C_rd_nextbyte:
    134    00007C 3E00                 LD      A,00h
    135    00007E CD....               CALL    LWRD  I2Crecebyte
    136    000081 77                   LD      (HL),A
    137    000082 23                   INC     HL
    138    000083 0D                   DEC     C
    139    000084 20F6                 JR      NZ,I2C_rd_nextbyte
    140    000086 3E01                 LD       A,01h
    141    000088 CD....               CALL    LWRD I2Crecebyte
    142    00008B 77                   LD      (HL),A
    143    00008C          
    144    00008C 3E01                 LD      A,01H
    145    00008E 32....               LD      (LWRD FM_result),A
    146    000091 1805                 JR      I2Crstop_exit
    147    000093          I2C_rerror_exit:
    148    000093 3E00                 LD      A,00H
    149    000095 32....               LD      (LWRD FM_result),A
    150    000098          I2Crstop_exit:
    151    000098 CD....               CALL    LWRD  I2C_stop
    152    00009B 3A....               LD      A,(LWRD FM_result)
    153    00009E E1                   POP     HL
    154    00009F C1                   POP     BC
    155    0000A0 C9                   RET
    156    0000A1          //==================================================
 =
    157    0000A1          I2C_init:
    158    0000A1 F5               PUSH    AF
    159    0000A2 DBF4             IN      A,(SDA_doport)
    160    0000A4 CBCF             SET     SDA_doport_num,A
    161    0000A6 D3F4             OUT     (SDA_doport),A
    162    0000A8 DBF4             IN      A,(SCL_doport)
    163    0000AA CBC7             SET     SCL_doport_num,A
    164    0000AC D3F4             OUT     (SCL_doport),A
    165    0000AE          
    166    0000AE DBF3             IN      A,(SDA_outport)
    167    0000B0 CBCF             SET     SDA_outport_num,A
    168    0000B2 D3F3             OUT     (SDA_outport),A
    169    0000B4 DBF3             IN      A,(SCL_outport)
    170    0000B6 CBC7             SET     SCL_outport_num,A
    171    0000B8 D3F3             OUT     (SCL_outport),A
    172    0000BA F1               POP     AF
    173    0000BB C9               RET
    174    0000BC          //--------------------------------------
    175    0000BC          I2C_exit:

⌨️ 快捷键说明

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