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

📄 i2c.lst

📁 Bitek 公司 bit1611b模拟屏驱动芯片外接MCU驱动DEMO源码
💻 LST
📖 第 1 页 / 共 3 页
字号:
 466   1          I2C_SET_CLK(LOW);
 467   1          I2C_LOW;
 468   1      } /* I2C_SetACK */
 469          
 470          
 471          /* -------------------------------------------------------------------
 472              Name: I2C_SetNAK -
 473              Purpose: .
 474              Passed: None.
 475              Returns: None.
 476              Notes:
 477             ------------------------------------------------------------------- */
 478          void I2C_SetNAK (void)
 479          {
 480   1          I2C_SET_DAT(HIGH);
 481   1          I2C_SU_DAT;             // Added by JC 01:53PM  2005/11/23
C51 COMPILER V7.50   I2C                                                                   02/05/2007 16:33:25 PAGE 9   

 482   1      
 483   1          I2C_SET_CLK(HIGH);
 484   1          I2C_HIGH;
 485   1      
 486   1          I2C_SET_CLK(LOW);
 487   1          I2C_LOW;
 488   1      } /* I2C_SetNAK */
 489          
 490          
 491          /* -------------------------------------------------------------------
 492              Name: I2C_Start - START condition (SDA falling edge).
 493              Purpose: .
 494              Passed: None.
 495              Returns: None.
 496              Notes:
 497              Reference:
 498                  [1] p64
 499             ------------------------------------------------------------------- */
 500          void I2C_Start (void)
 501          {
 502   1          I2C_SET_DAT(HIGH);
 503   1      
 504   1          I2C_SET_CLK(HIGH);
 505   1          I2C_SU_STA;
 506   1      
 507   1      
 508   1          I2C_SET_DAT(LOW);
 509   1          I2C_HD_STA;          
 510   1      
 511   1          I2C_SET_CLK(LOW);
 512   1          I2C_LOW;             
 513   1      } /* I2C_Start */
 514          
 515          
 516          /* -------------------------------------------------------------------
 517              Name: I2C_Stop - STOP condition (SDA rising edge).
 518              Purpose: .
 519              Passed: None.
 520              Returns: None.
 521              Notes:
 522              Reference:
 523                  [1] p64
 524          
 525            ------------------------------------------------------------------- */
 526          void I2C_Stop (void)
 527          {
 528   1          I2C_SET_DAT(LOW);
 529   1      
 530   1          I2C_SET_CLK(HIGH);
 531   1          I2C_SU_STO;
 532   1      
 533   1          I2C_SET_DAT(HIGH);
 534   1      } /* I2C_Stop */
 535          
 536          
 537          #if (I2C_TX_BURST)
              /* -------------------------------------------------------------------
                  Name: I2C_TxBurst -
                  Purpose: To transmit bulk data to I2C slave device.
                  Passed:
                      bCNT: 1..255. (Excludes slave address and sub-address)
                  Returns: None.
C51 COMPILER V7.50   I2C                                                                   02/05/2007 16:33:25 PAGE 10  

                  Notes:
                      The bSLA should be the slave device's 'WRITE' module addres,
                      not 'READ' one.
                 ------------------------------------------------------------------- */
              void I2C_TxBurst (
              UB8  bSLA,          /* I2C slave address */
              UB8  bREG,          /* I2C sub-address */
              UB8  bCNT,          /* The number of data which will be transmitted */
              UB8  *pbDATA        /* Point to the first DATA item */
              )
              {
                  UB8 bIdx;
              
              
                  I2C_Start();
              
                  I2C_TxData(bSLA);
                  I2C_GetACK();
              
                  I2C_TxData(bREG);
                  I2C_GetACK();
              
                  for (bIdx = 0; bIdx < bCNT; bIdx++)
                  {
                      I2C_TxData(*pbDATA++);
                      I2C_GetACK();
                  } /* for */
              
                  I2C_Stop();
              } /* I2C_TxBurst */
              #endif
 575          
 576          
 577          #if (I2C_TX_BYTE)
 578          /* -------------------------------------------------------------------
 579              Name: I2C_TxByte -
 580              Purpose: To transmit one byte data to I2C slave device.
 581              Passed:
 582              Returns: None.
 583              Notes:
 584                  The bSLA should be the slave device's 'WRITE' module addres,
 585                  not 'READ' one.
 586             ------------------------------------------------------------------- */
 587          void I2C_TxByte (
 588          UB8 bSLA,          /* I2C slave address */
 589          UB8 bREG,          /* I2C sub-address */
 590          UB8 bDATA          /* DATA item */
 591          )
 592          {
 593   1          I2C_Start();
 594   1      
 595   1          I2C_TxData(bSLA);
 596   1          I2C_GetACK();
 597   1      
 598   1          I2C_TxData(bREG);
 599   1          I2C_GetACK();
 600   1      
 601   1          I2C_TxData(bDATA);
 602   1          I2C_GetACK();
 603   1      
 604   1          I2C_Stop();
 605   1      } /* I2C_TxByte */
C51 COMPILER V7.50   I2C                                                                   02/05/2007 16:33:25 PAGE 11  

 606          #endif
 607          
 608          
 609          /* -------------------------------------------------------------------
 610              Name: I2C_TxData -
 611              Purpose: To do I2C parallel serial conversion for transmission.
 612              Passed:
 613              Returns: None.
 614              Notes:
 615             ------------------------------------------------------------------- */
 616          void I2C_TxData (UB8 bData)
 617          {
 618   1          UB8     bMask;
 619   1      
 620   1      
 621   1          /* MSB is sent first */
 622   1          for (bMask = 0x80; bMask; bMask >>= 1)
 623   1          {
 624   2              I2C_SET_DAT(bData & bMask);
 625   2              I2C_SU_DAT;
 626   2      
 627   2              I2C_SET_CLK(HIGH);
 628   2              I2C_HIGH;
 629   2      
 630   2              I2C_SET_CLK(LOW);
 631   2          }
 632   1      
 633   1          I2C_SET_DAT(HIGH);      // Added by JC 01:47PM  2005/11/23
 634   1      } /* I2C_TxData */
 635          
 636          
 637          #if (I2C_TX_WORD)
              /* -------------------------------------------------------------------
                  Name: I2C_TxWord -
                  Purpose: To transmit bulk data to I2C slave device.
                  Passed:
                  Returns: None.
                  Notes:
                 ------------------------------------------------------------------- */
              void I2C_TxWord (
              UB8  bSLA,          /* I2C slave address */
              UB8  bREG,          /* I2C sub-address */
              UW16 wDATA          /* DATA item */
              )
              {
                  I2C_Start();                        
              
                  I2C_TxData(bSLA);                   
                  I2C_GetACK();                       
              
                  I2C_TxData(bREG);                   
                  I2C_GetACK();                       
              
                  I2C_TxData(wDATA & 0xFF);           
                  I2C_GetACK();                       
              
                  I2C_TxData(wDATA >> 8);             
                  I2C_GetACK();                       
              
                  I2C_Stop();                         
              } /* I2C_TxWord */
              #endif
C51 COMPILER V7.50   I2C                                                                   02/05/2007 16:33:25 PAGE 12  

 668          
 669          
 670          
 671          /* -------------------------------------------------------------------
 672              Name:  -
 673              Purpose: .
 674              Passed: None.
 675              Returns: None.
 676              Notes:
 677             ------------------------------------------------------------------- */
 678          
 679          
 680          /* **********************************************************************
 681          
 682              Description:
 683          
 684          
 685             ********************************************************************** */
 686          
 687          /* %% End Of File %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
 688          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    271    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       2
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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