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

📄 twowire.lst

📁 车载显示屏
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.12  TWOWIRE                                                                09/20/2007 22:17:29 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE TWOWIRE
OBJECT MODULE PLACED IN TWOWIRE.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\source\TWOWIRE.C BROWSE NOINTPROMOTE INCDIR(Z:\cb\T112项目\T112_AV1.8编写
                    -文件\1.8\include\;.\include\;.\source\) DEBUG OBJECTEXTEND PRINT(.\TWOWIRE.lst) OBJECT(TWOWIRE.obj) 

stmt level    source

   1          //---------------------------------------------------------------------------
   2          // Terawins Inc. Company Confidential Strictly Private
   3          //
   4          // $Archive: $
   5          // $Revision: 1.9 $
   6          // $Author: jwang $
   7          // $Date: 2002/07/08 22:34:39 $
   8          //
   9          // --------------------------------------------------------------------------
  10          // >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  11          // --------------------------------------------------------------------------
  12          // Copyright 2002 (c) Terawins Inc.
  13          // --------------------------------------------------------------------------
  14          				
  15          				#include "reg51.h"
  16          				#include "common.h"
  17          				#include "System.h"
  18          				#include "TW10xReg.h"
  19          				#include "TwoWire.h"
  20          
  21          
  22          				#define TW_SLOW_SPEED
  23          				//----------------------------------------
  24          				// S_Condition for TWD protocol
  25          				//----------------------------------------
  26          				#if defined(TW_SLOW_SPEED)
  27          				void StartCondition(void)
  28          				{
  29   1      				    uCHAR ix;
  30   1      				    uCHAR cTWtrytime=0;
  31   1      				    EA=0;
  32   1      				    while(++cTWtrytime)
  33   1      				    {
  34   2      				        Set_SDA_High;
  35   2      				        Set_SCL_High;        /* make sure two line is release */
  36   2      				        for(ix = 0; ix < TWD_LONG_TIME; ix++)
  37   2      				        { };  /* Delay 12us */
  38   2      				
  39   2      				        Set_SDA_Low;
  40   2      				        for(ix = 0; ix < TWD_LONG_TIME; ix++)
  41   2      				        { };  /* Delay 12us */
  42   2      				
  43   2      				        if((SCL_High)&&(SDA_Low))
  44   2      				            break;
  45   2      				    }
  46   1      				
  47   1      				    for(ix = 0; ix < TWD_SHORT_TIME; ix++)
  48   1      				    { };  /* Delay 12us */
  49   1      				}
  50          				
  51          				//----------------------------------------
  52          				// P_Condition for TWD protocol
  53          				//----------------------------------------
  54          				void StopCondition(void)
C51 COMPILER V6.12  TWOWIRE                                                                09/20/2007 22:17:29 PAGE 2   

  55          				{
  56   1      				    uCHAR ix;
  57   1      				    uCHAR cTWtrytime=0;
  58   1      				
  59   1      				    Set_SDA_Low;
  60   1      				    Set_SCL_High;
  61   1      				    for(ix = 0; ix < TWD_SHORT_TIME; ix++)
  62   1      				    { };  /* delay 12us */
  63   1      				
  64   1      				    while(SCL_Low && ++cTWtrytime)
  65   1      				    { };
  66   1      				
  67   1      				    for(ix = 0; ix < TWD_SHORT_TIME; ix++)
  68   1      				    { };  /* delay 12us */
  69   1      				
  70   1      				    Set_SDA_High;
  71   1      				    for(ix = 0; ix < TWD_SHORT_TIME; ix++)
  72   1      				    { };  /* delay 12us */
  73   1      					EA=1;
  74   1      				}
  75          				
  76          				//--------------------------------------------------
  77          				// 	  Send_Byte
  78          				//    Send a byte to master with a acknowledge bit
  79          				//--------------------------------------------------
  80          				uCHAR Send_Byte(uCHAR cData)
  81          				{
  82   1      				    uCHAR ix, j, cAcknowledge;
  83   1      				    uCHAR cTWtrytime=0;
  84   1      				
  85   1      				    cAcknowledge = 0;
  86   1      				
  87   1      				    for(ix = 0; ix < 8; ix++)
  88   1      				    {
  89   2      				        Set_SCL_Low;
  90   2      				        for(j = 0; j < TWD_SHORT_TIME; j++)
  91   2      				        { };
  92   2      				
  93   2      				        if(cData&0x80)Set_SDA_High;
  94   2      						else Set_SDA_Low;
  95   2      						cData<<=1;
  96   2      				
  97   2      				        for(j = 0; j < TWD_SHORT_TIME; j++)
  98   2      				        { };
  99   2      				
 100   2      				        Set_SCL_High;
 101   2      				        while(SCL_Low && ++cTWtrytime)
 102   2      				        { };
 103   2      				
 104   2      				        for(j = 0; j < TWD_SHORT_TIME; j++)
 105   2      				        { };
 106   2      				    }
 107   1      				    for(j = 0; j < TWD_SHORT_TIME; j++)
 108   1      				    { };
 109   1      				
 110   1      				    Set_SCL_Low;
 111   1      				    for(j = 0; j < TWD_SHORT_TIME; j++)
 112   1      				    { };
 113   1      				
 114   1      				    Set_SDA_High;                /* release data line for acknowledge */
 115   1      				    for(j = 0; j < TWD_SHORT_TIME; j++)
 116   1      				    { };
C51 COMPILER V6.12  TWOWIRE                                                                09/20/2007 22:17:29 PAGE 3   

 117   1      				
 118   1      				    Set_SCL_High;                /* Send a clock for Acknowledge */
 119   1      				    while(SCL_Low)
 120   1      				    { };
 121   1      				    for(j = 0; j < TWD_SHORT_TIME; j++)
 122   1      				    { };
 123   1      				
 124   1      				    if(SDA_High) 
 125   1      				       cAcknowledge = 1; /* No Acknowledge */
 126   1      				    Set_SCL_Low;                   /* Finish Acknoledge */
 127   1      				    for(j = 0; j < TWD_SHORT_TIME; j++)
 128   1      				    { };
 129   1      				
 130   1      				    return(cAcknowledge);
 131   1      				}
 132          				
 133          				//--------------------------------------------------
 134          				// Read_Byte
 135          				//    Read a byte from master with a acknowledge bit
 136          				//--------------------------------------------------
 137          				uCHAR Read_Byte(uCHAR cNum)
 138          				{
 139   1      				    uCHAR ix, j;
 140   1      				    uCHAR cRetval=0;
 141   1      				
 142   1      				    for(ix=0;ix<8;ix++){
 143   2      				          Set_SCL_High;
 144   2      				          while(SCL_Low){};
 145   2      				          for(j=0;j<TWD_SHORT_TIME;j++){};
 146   2      				          cRetval = (SDA_High)? (cRetval|(1<<(7-ix))):cRetval ;  /* MSB First */
 147   2      						  Set_SCL_Low;
 148   2      					  	  
 149   2      				     }
 150   1      				
 151   1      				     if(cNum==1)
 152   1      				     	Set_SDA_High;
 153   1      				     else
 154   1      						Set_SDA_Low;
 155   1      				     //SDA = (cNum==1) 1:0;
 156   1      				     Set_SCL_High;
 157   1      				     while(SCL_Low){};
 158   1      				     for(j = 0; j < TWD_SHORT_TIME; j++)
 159   1      				     { };
 160   1      				
 161   1      				    Set_SCL_Low;
 162   1      				
 163   1      				    Set_SDA_High;
 164   1      				    for(j = 0; j < TWD_SHORT_TIME; j++)
 165   1      				    { };
 166   1      				
 167   1      				    return cRetval;
 168   1      				}
 169          				
 170          				#else
              				// for fast Two Wire Bus Speed
              				
              				void StartCondition(void)
              				{
              				//    uCHAR ix;
              				    uCHAR cTWtrytime=0;
              				
              				    while(++cTWtrytime)
C51 COMPILER V6.12  TWOWIRE                                                                09/20/2007 22:17:29 PAGE 4   

              				    {
              				        Set_SDA_High;
              				        Set_SCL_High;        /* make sure two line is release */
              				
              				        Set_SDA_Low;
              				
              				        if((SCL_High)&&(SDA_Low))
              				            break;
              				    }
              				}
              				
              				//----------------------------------------
              				// P_Condition for TWD protocol
              				//----------------------------------------
              				void StopCondition(void)
              				{
              				//    uCHAR ix;
              				    uCHAR cTWtrytime=0;
              				
              				    Set_SDA_Low;
              				    Set_SCL_High;
              				
              				    Set_SDA_High;
              				}
              				
              				//--------------------------------------------------
              				// Send_Byte
              				//    Send a byte to master with a acknowledge bit
              				//--------------------------------------------------
              				uCHAR Send_Byte(uCHAR cData)
              				{
              				    uCHAR ix;
              				    uCHAR cAcknowledge;
              				    uCHAR cTWtrytime=0;
              				
              				    cAcknowledge = 0;
              				
              				    for(ix = 0; ix < 8; ix++)
              				    {
              				        Set_SCL_Low;
              				        //        (cData&(1<<(7-ix)))?(Set_SDA_High):(Set_SDA_Low);  /* MSB First */
              				        if(cData&0x80)Set_SDA_High;
              						else Set_SDA_Low;
              						cData<<=1;
              				

⌨️ 快捷键说明

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