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

📄 i2c_driver.lst

📁 MP3 整个 SDK
💻 LST
📖 第 1 页 / 共 3 页
字号:
################################################################################
#                                                                              #
#     IAR Systems Z80/64180 Assembler V3.03A/WIN 25/Dec/106  17:01:39          #
#                                                                              #
#           Target option =  z80                                               #
#           Source file   =  d:\case_i_d90f\ap\ap_radio\philips\i2c_driver.msa #
#           List file     =  d:\case_i_d90f\ap\ap_radio\list\i2c_driver.lst    #
#           Object file   =  d:\case_i_d90f\ap\ap_radio\obj\i2c_driver.r01     #
#           Command line  =  -v0 -OD:\case_i_d90f\ap\ap_radio\Obj\ -s+ -M<>    #
#                            -w+ -r -LD:\case_i_d90f\ap\ap_radio\List\ -t8     #
#                            -Id:\sdk_i_90f\inc\ -Id:\case_i_d90f\inc\         #
#                            D:\CASE_I_D90F\AP\AP_RADIO\PHILIPS\I2C_Driver.msa #
#                                                                              #
#                                               (c) Copyright IAR Systems 1996 #
################################################################################

      1    000000          /***************************************************
                            ************************
      2    000000                    GL3961 I2C Driver Interface
      3    000000                    writen by GONGJIAN
      4    000000                    last update 05-3-30 10:04
      5    000000          ****************************************************
                                                                ****************
                                                                ********/
      6    000000          #include "I2C_register.h"
      7    000000          
      8    000000          public      I2C_Init
      9    000000          public      I2C_Start
     10    000000          //public      I2C_Write
     11    000000          public      I2C_Writeonebyte
     12    000000          //public      I2C_Read
     13    000000          public      I2C_ReadOneByte
     14    000000          //public      I2C_Restart
     15    000000          public      I2C_Stop                    
     16    000000          public      I2C_Exit
     17    000000          public      I2C_Transaddr                    
     18    000000          //public      Wait_Stop                      
     19    000000          //public      Trans_complete
     20    000000          //public      Recv_complete 
     21    000000          public      DELAY_15us
     22    000000          
     23    000000          //**************************************************
 *********                       
     24    000000                         rseg I2C_driver                      
       
     25    000000           
     26    000000 40       I2CSPEED    DEFB   40H 
     27    000001                                                              
                           
     28    000001          /***************************************************
 **************************
     29    000001                  I2C Init
     30    000001                    input parameter:E:00H for 100k;40H for 400
                                             K 
     31    000001                    output parameter:NO
     32    000001          ****************************************************
                                                          **********************
                                                          ***/
     33    000001          I2C_Init: 
     34    000001 7B                    LD    A,E
     35    000002 32....                LD    (I2CSPEED),A             //I2C SP
                                                         EED 
     36    000005          
     37    000005                     //  LD    A,00H               
     38    000005                     //  OUT   (MFPSEL),A
     39    000005 3E20                   LD    A,20H                //by jmzhan
                                                  g from 80h->20h       
     40    000007 D3EE                  OUT   (MFPSEL),A               //Mode c
                                                                        hange to
                                                                         F2
     41    000009                       
     42    000009 3A....                LD    A,(I2CSPEED)
     43    00000C C680                  ADD   A,80H        
     44    00000E D37A                  OUT   (I2CCTL),A               //Enable
                                                                         I2C;Dis
                                                                        able IRQ
     45    000010 C9                    RET
     46    000011          
     47    000011          /***************************************************
                             **************************
     48    000011                  I2C Start
     49    000011                    input parameter:E:slave address;          
                                                     
     50    000011                    output parameter:A:01-sucess;00-fail.
     51    000011          ****************************************************
 **************************/
     52    000011          I2C_Start:
     53    000011 D5                    PUSH   DE             
     54    000012 7B                    LD     A,E
     55    000013 D371                  OUT    (I2CADDR),A                //Sla
 ve address
     56    000015                       
     57    000015 3A....                LD     A,(I2CSPEED)
     58    000018 C686                  ADD    A,86H
     59    00001A D37A                  OUT    (I2CCTL),A                 //Sta
 rt condition
     60    00001C                       
     61    00001C CD....                CALL   LWRD Trans_complete        //Jud
 ge address tansmit complete
     62    00001F          
     63    00001F D1                    POP    DE
     64    000020 C9                    RET
     65    000021          
     66    000021          /***************************************************
                             **************************
     67    000021                  I2C Write One Frame
     68    000021                    input parameter:DE:Sendbuffer address
     69    000021                                    C:byte length
     70    000021                    output parameter:A:01-sucess;00-fail.
     71    000021          ****************************************************
 *************************/
     72    000021          //I2C_Write:
     73    000021          //             PUSH   BC
     74    000021          //             PUSH   DE
     75    000021          //             
     76    000021          //             LD     L,E
     77    000021          //             LD     H,D                           
          
     78    000021          //             LD     B,C             
     79    000021          //I2C_Write_loop:             
     80    000021          //             LD     A,(HL)
     81    000021          //             OUT    (I2CDAT),A
     82    000021          //             LD    A,(I2CSPEED)
     83    000021          //             ADD   A,82H
     84    000021          //             //LD     A,82H+I2Cmode
     85    000021          //               OUT    (I2CCTL),A                  
         //release i2c;Must need!!!
     86    000021          //               
     87    000021          //             CALL   LWRD Trans_complete           
 //Judge address tansmit complete?
     88    000021          //             CP     00H
     89    000021          //             JR     Z,I2C_Write_exit
     90    000021          //             
     91    000021          //             INC    HL
     92    000021          //                 
     93    000021          //             DJNZ   I2C_Write_loop
     94    000021          //             
     95    000021          //             LD     A,01H             
     96    000021          //I2C_Write_exit:                          
     97    000021          //             POP    DE
     98    000021          //             POP    BC
     99    000021          //             RET
    100    000021                       
    101    000021          /***************************************************
                                          **************************
    102    000021                  I2C Write One Byte
    103    000021                    input parameter:E:Write data.
    104    000021                                    C:02H-Stop;01H-Restart;els
                                                                    e send one b
                                                                    yte.
    105    000021                    output parameter:A:1-success;0:fail.
    106    000021          ****************************************************
 *************************/
    107    000021          I2C_Writeonebyte:
    108    000021 C5                    PUSH    BC
    109    000022 D5                    PUSH    DE
    110    000023                       
    111    000023 7B                    LD      A,E
    112    000024 D37C                  OUT     (I2CDAT),A
    113    000026                       
    114    000026 79                    LD      A,C
    115    000027 FE01                  CP      01H
    116    000029 2811                  JR      Z,Wr_Send_Restart
    117    00002B FE02                  CP      02H
    118    00002D 281E                  JR      Z,Wr_Send_Stop
    119    00002F                                                 
    120    00002F 3A....                LD      A,(I2CSPEED)                 //
                                                   send one byte
    121    000032 C682                  ADD     A,82H
    122    000034 D37A                    OUT     (I2CCTL),A                   
        //release i2c;Must need!!!!
    123    000036                         
    124    000036 CD....                CALL   LWRD Trans_complete             
    
    125    000039                       
    126    000039 C3....                JP     I2C_Writeonebyte_exit     
    127    00003C          
    128    00003C          Wr_Send_Restart:
    129    00003C CD....                CALL   LWRD I2C_Restart             //S
 end Restart & the last data
    130    00003F CD....                CALL   LWRD Trans_complete
    131    000042                       
    132    000042 3A....                LD     A,(I2CSPEED)
    133    000045 C682                  ADD    A,82H
    134    000047 D37A                    OUT    (I2CCTL),A                    
       //release i2c;Must need!!!!
    135    000049                         

⌨️ 快捷键说明

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