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

📄 fm_i2cdrv2.lst

📁 5807收音机模块用于炬力平台
💻 LST
📖 第 1 页 / 共 3 页
字号:
    176    0000BC F5               PUSH    AF
    177    0000BD DBF3             IN      A,(SDA_outport)
    178    0000BF CB8F             RES     SDA_outport_num,A
    179    0000C1 D3F3             OUT     (SDA_outport),A
    180    0000C3 DBF3             IN      A,(SCL_outport)
    181    0000C5 CB87             RES     SCL_outport_num,A
    182    0000C7 D3F3             OUT     (SCL_outport),A
    183    0000C9 F1               POP     AF
    184    0000CA C9               RET
    185    0000CB          //===============================================
    186    0000CB          I2C_start:
    187    0000CB F5                       PUSH    AF
    188    0000CC DBF4                     IN      A,(SDA_doport)
    189    0000CE CB8F                     RES     SDA_doport_num,A
    190    0000D0 D3F4                     OUT     (SDA_doport),A
    191    0000D2 CD....                   CALL    LWRD I2C_wait5us
    192    0000D5 DBF4                     IN      A,(SCL_doport)
    193    0000D7 CB87                     RES     SCL_doport_num,A
    194    0000D9 D3F4                     OUT     (SCL_doport),A
    195    0000DB F1                       POP     AF
    196    0000DC C9                       RET
    197    0000DD          //---------------------------------------------
    198    0000DD          I2C_stop:
    199    0000DD F5                       PUSH    AF
    200    0000DE DBF4                     IN      A,(SCL_doport)
    201    0000E0 CBC7                     SET     SCL_doport_num,A
    202    0000E2 D3F4                     OUT     (SCL_doport),A
    203    0000E4 CD....                   CALL    LWRD I2C_wait5us
    204    0000E7 DBF4                     IN      A,(SDA_doport)
    205    0000E9 CBCF                     SET     SDA_doport_num,A
    206    0000EB D3F4                     OUT     (SDA_doport),A
    207    0000ED F1                       POP     AF
    208    0000EE C9                       RET
    209    0000EF          //==================================================
 ======
    210    0000EF          
    211    0000EF          //==================================================
 ======
    212    0000EF          //A 为待传数据,返回时A中为响应类型,0为ACK, 1为NACK
    213    0000EF          //若为地址字节且欲读取数据,B为1,否则为0
    214    0000EF          I2Ctransbyte:
    215    0000EF C5                       PUSH    BC
    216    0000F0 4F                       LD      C,A
    217    0000F1 CD....                   CALL    LWRD I2CSendbyte
    218    0000F4          //SDA  output-->input
    219    0000F4 DBF3                     IN      A,(SDA_outport)
    220    0000F6 CB8F                     RES     SDA_outport_num,A
    221    0000F8 D3F3                     OUT     (SDA_outport),A
    222    0000FA DBF3                     IN      A,(SDA_inport)
    223    0000FC CBEF                     SET     SDA_inport_num,A
    224    0000FE D3F3                     OUT     (SDA_inport),A
    225    000100          //SCL output 1
    226    000100 CD....                   CALL    LWRD I2C_wait5us
    227    000103 DBF4                     IN      A,(SCL_doport)
    228    000105 CBC7                     SET     SCL_doport_num,A
    229    000107 D3F4                     OUT     (SCL_doport),A
    230    000109          
    231    000109 DBF4                     IN      A,(SDA_dinport)
    232    00010B CB4F                     BIT     SDA_dinport_num,A
    233    00010D 2020                     JR      NZ,GetNACK
    234    00010F          
    235    00010F 0E00                     LD      C,00H
    236    000111 78                       LD      A,B
    237    000112 FE01                     CP      01H
    238    000114 280E                     JR      Z,I2Creadaddbyte
    239    000116          
    240    000116 DBF3                     IN      A,(SDA_inport)
    241    000118 CBAF                     RES     SDA_inport_num,A
    242    00011A D3F3                     OUT     (SDA_inport),A
    243    00011C          
    244    00011C DBF4                     IN      A,(SDA_doport)
    245    00011E CB8F                     RES     SDA_doport_num,A
    246    000120 D3F4                     OUT     (SDA_doport),A
    247    000122 1813                     JR      ACKgetok
    248    000124          I2Creadaddbyte:
    249    000124 CD....                   CALL    LWRD I2C_wait5us
    250    000127 DBF4                     IN      A,(SCL_doport)
    251    000129 CB87                     RES     SCL_doport_num,A
    252    00012B D3F4                     OUT     (SCL_doport),A
    253    00012D 181D                     JR      I2Ctransok
    254    00012F          GetNACK:
    255    00012F 0E01                     LD      C,01H
    256    000131 DBF4                     IN      A,(SDA_doport)
    257    000133 CBCF                     SET     SDA_doport_num,A
    258    000135 D3F4                     OUT     (SDA_doport),A
    259    000137          ACKgetok:
    260    000137 DBF3                     IN      A,(SDA_outport)
    261    000139 CBCF                     SET     SDA_outport_num,A
    262    00013B D3F3                     OUT     (SDA_outport),A
    263    00013D          
    264    00013D CD....                   CALL    LWRD I2C_wait5us
    265    000140          
    266    000140 DBF4                     IN      A,(SCL_doport)
    267    000142 CB87                     RES     SCL_doport_num,A
    268    000144 D3F4                     OUT     (SCL_doport),A
    269    000146          
    270    000146 DBF4                     IN      A,(SDA_doport)
    271    000148 CB8F                     RES     SDA_doport_num,A
    272    00014A D3F4                     OUT     (SDA_doport),A
    273    00014C          I2Ctransok:
    274    00014C 79                       LD      A,C
    275    00014D C1                       POP     BC
    276    00014E C9                       RET
    277    00014F          //==================================================
    278    00014F          
    279    00014F          //==================================================
    280    00014F          //A入口为准备响应,返回为接受到的数值
    281    00014F          I2Crecebyte:
    282    00014F C5                      PUSH    BC
    283    000150 47                      LD      B,A
    284    000151 C5                      PUSH    BC
    285    000152          
    286    000152 DBF3                    IN      A,(SCL_outport)
    287    000154 CB87                    RES     SCL_outport_num,A
    288    000156 D3F3                    OUT     (SCL_outport),A
    289    000158 DBF3                    IN      A,(SCL_inport)
    290    00015A CBE7                    SET     SCL_inport_num,A
    291    00015C D3F3                    OUT     (SCL_inport),A
    292    00015E          waitsclrelease:
    293    00015E DBF4                    IN      A,(SCL_dinport)
    294    000160 CB47                    BIT     SCL_dinport_num,A
    295    000162 28FA                    JR      Z,waitsclrelease
    296    000164          
    297    000164 DBF3                    IN      A,(SCL_inport)
    298    000166 CBA7                    RES     SCL_inport_num,A
    299    000168 D3F3                    OUT     (SCL_inport),A
    300    00016A          
    301    00016A DBF4                    IN      A,(SCL_doport)
    302    00016C CBC7                    SET     SCL_doport_num,A
    303    00016E D3F4                    OUT     (SCL_doport),A
    304    000170 DBF3                    IN      A,(SCL_outport)
    305    000172 CBC7                    SET     SCL_outport_num,A
    306    000174 D3F3                    OUT     (SCL_outport),A
    307    000176          
    308    000176 0608                    LD      B,08H
    309    000178          SDAInextbit:
    310    000178 DBF4                    IN      A,(SCL_doport)
    311    00017A CBC7                    SET     SCL_doport_num,A
    312    00017C D3F4                    OUT     (SCL_doport),A
    313    00017E          
    314    00017E CD....                  CALL    LWRD I2C_wait3us
    315    000181          
    316    000181 DBF4                    IN      A,(SDA_dinport)
    317    000183 CB4F                    BIT     SDA_dinport_num,A
    318    000185 2805                    JR      Z,SDAI0
    319    000187          SDAI1:
    320    000187 37                      SCF
    321    000188 CB11                    RL      C
    322    00018A 1802                    JR      SDAI_OK
    323    00018C          SDAI0:
    324    00018C CB21                    SLA     C
    325    00018E          SDAI_OK:
    326    00018E 78                      LD      A,B
    327    00018F FE01                    CP      01H
    328    000191 280D                    JR      Z,I2CRlastbit
    329    000193          
    330    000193 C5                      PUSH    BC
    331    000194 C1                      POP     BC
    332    000195          
    333    000195 DBF4                    IN      A,(SCL_doport)
    334    000197 CB87                    RES     SCL_doport_num,A
    335    000199 D3F4                    OUT     (SCL_doport),A
    336    00019B          
    337    00019B CD....                  CALL    LWRD I2C_wait5us
    338    00019E 10D8                    DJNZ    SDAInextbit
    339    0001A0          I2CRlastbit:
    340    0001A0 DBF3                    IN      A,(SDA_inport)
    341    0001A2 CBAF                    RES     SDA_inport_num,A
    342    0001A4 D3F3                    OUT     (SDA_inport),A
    343    0001A6          
    344    0001A6 CB41                    BIT     0,C
    345    0001A8 2008                    JR      NZ,I2CRlastbit1
    346    0001AA DBF4                    IN      A,(SDA_doport)
    347    0001AC CB8F                    RES     SDA_doport_num,A
    348    0001AE D3F4                    OUT     (SDA_doport),A
    349    0001B0 1806                    JR      I2CRlastbitOK
    350    0001B2          I2CRlastbit1:
    351    0001B2 DBF4                    IN      A,(SDA_doport)
    352    0001B4 CBCF                    SET     SDA_doport_num,A
    353    0001B6 D3F4                    OUT     (SDA_doport),A
    354    0001B8          I2CRlastbitOK:
    355    0001B8 DBF3                    IN      A,(SDA_outport)
    356    0001BA CBCF                    SET     SDA_outport_num,A
    357    0001BC D3F3                    OUT     (SDA_outport),A
    358    0001BE          
    359    0001BE DBF4                    IN      A,(SCL_doport)
    360    0001C0 CB87                    RES     SCL_doport_num,A
    361    0001C2 D3F4                    OUT     (SCL_doport),A
    362    0001C4          
    363    0001C4 79                      LD      A,C
    364    0001C5 C1                      POP     BC
    365    0001C6 4F                      LD      C,A
    366    0001C7 78                      LD      A,B
    367    0001C8 FE00                    CP      00H
    368    0001CA 2026                    JR      NZ,GenNACK
    369    0001CC          
    370    0001CC DBF4                    IN      A,(SDA_doport)
    371    0001CE CB8F                    RES     SDA_doport_num,A
    372    0001D0 D3F4                    OUT     (SDA_doport),A

⌨️ 快捷键说明

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