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

📄 access.lst

📁 Realtek 公司的RTD2523A芯片原厂source code,没有被修改过的。
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V6.20c  ACCESS                                                                04/15/2004 12:59:25 PAGE 1   


C51 COMPILER V6.20c, COMPILATION OF MODULE ACCESS
OBJECT MODULE PLACED IN .\Output\Access.obj
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE Code\Access.c OPTIMIZE(9,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Output\Ac
                    -cess.lst) OBJECT(.\Output\Access.obj) 

stmt level    source

   1          #define __ACCESS__
   2          
   3          #include "reg52.h"
   4          #include "intrins.h"
   5          
   6          #include "Header\MAIN_DEF.H"
   7          #include "Header\ACCESS.h"
   8          #include "Header\CONFIG.H"
   9          #include "Header\MTV512.H"
  10          #include "Header\OSD.H"
  11          #include "Header\Power_Ctrl.h"
  12          
  13          #if (MCU_TYPE == MCU_MTV512)
              ///////////////////////////////////////////////////////////////////////
              // SCL Processor                                                                                          
             -      //
              ///////////////////////////////////////////////////////////////////////
              void MCU_WriteI2cScl(bit Status)
              {
                  bIIC_SCL    = Status;
              }	
              ///////////////////////////////////////////////////////////////////////
              // SDA Processor                                                                                          
             -     //
              ///////////////////////////////////////////////////////////////////////
              void MCU_WriteI2cSda(bit Status)
              {
                  bIIC_SDA    = Status;
              }	
              
              bit MCU_ReadI2cSda(void)
              {
                  return (bIIC_SDA);
              }		
              ///////////////////////////////////////////////////////////////////////
              // RTD Reset Processor                                                                                    
             -  //
              ///////////////////////////////////////////////////////////////////////
              #if (RESET_TYPE == RESET_IN)
              void MCU_WriteRtdReset(bit Status)
              {
                  bRTD_RST    = Status;
              }
              
              bit MCU_ReadRtdReset(void)
              {
                  return (bRTD_RST);
              }	
              #endif
              
              	
              ///////////////////////////////////////////////////////////////////////
              // RTD SDIO Processor                                                                                     
             -  //
C51 COMPILER V6.20c  ACCESS                                                                04/15/2004 12:59:25 PAGE 2   

              ///////////////////////////////////////////////////////////////////////
              /*
              void MCU_WriteRtdSdio(bit Status)
              {
                     bRTD_SDIO_0 = Status;
              }	
              
              bit MCU_ReadRtdSdio(void)
              {
                     return(bRTD_SDIO_0);
              }	
              
              ///////////////////////////////////////////////////////////////////////
              // RTD Sclk Processor                                                                                     
             -   //
              ///////////////////////////////////////////////////////////////////////
              void MCU_WriteRtdSclk(bit Status)
              {
                  bRTD_SCLK   = Status;
              }	
              ///////////////////////////////////////////////////////////////////////
              // RTD Scsb Processor                                                                                     
             -  //
              ///////////////////////////////////////////////////////////////////////
              void MCU_WriteRtdScsb(bit Status)
              {
                  bRTD_SCSB   = Status;
              }	
              */
              ///////////////////////////////////////////////////////////////////////
              // VIDEO POWER Processor                                                                                //
              ///////////////////////////////////////////////////////////////////////
              #if (VIDEO_CHIP != VDC_NONE)
              void MCU_WriteVideoPower(bit Status)
              {
                  bVDC_PWR    = Status;
              }	
              #endif
              
              ///////////////////////////////////////////////////////////////////////
              // PANEL POWER Processor                                                                                 /
             -/
              ///////////////////////////////////////////////////////////////////////
              void MCU_WritePanelPower(bit Status)
              {
                  bPANEL_PWR  = Status;
              }	
              
              ///////////////////////////////////////////////////////////////////////
              // BACKLIGHT POWER Processor                                                                         //
              ///////////////////////////////////////////////////////////////////////
              void MCU_WriteBacklightPower(bit Status)
              {	
                  bLIGHT_PWR  = (Status);
              }
              
              
              ///////////////////////////////////////////////////////////////////////
              // VGA CONNECT Processor                                                                                //
              ///////////////////////////////////////////////////////////////////////
              bit MCU_ReadVgaConnect(void)
              {
C51 COMPILER V6.20c  ACCESS                                                                04/15/2004 12:59:25 PAGE 3   

                  return (bVGA_CONNECT);
              }
              
              #endif
 114          
 115          void BitDly(void)
 116          {
 117   1          _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
 118   1          _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
 119   1          _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
 120   1          _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
 121   1      }
 122          
 123          void I2CRead(unsigned char addr, unsigned char index, unsigned char count)
 124          {
 125   1          unsigned char   n;
 126   1      
 127   1          if (count)
 128   1          {
 129   2              I2CSendAddr(addr, index, 0);
 130   2              
 131   2              I2CSendAddr(addr, 0, 1);
 132   2      
 133   2              count   = count - 1;
 134   2      
 135   2              for (n = 0; n < count; n++)     Data[n] = I2CGetByte(0);
 136   2      
 137   2              Data[count] = I2CGetByte(1);
 138   2      
 139   2              I2CSendStop();
 140   2          }
 141   1      }
 142          
 143          void I2CWrite(unsigned char *array)
 144          {
 145   1          unsigned char   n, len;
 146   1      
 147   1          if (3 <= array[0])
 148   1          {
 149   2              len     = array[0];
 150   2              I2CSendAddr(array[1], array[2], 0);     
 151   2      
 152   2              for (n = 3; n < len; n++)   I2CSendByte(array[n]);
 153   2      
 154   2              I2CSendStop();
 155   2          }
 156   1      }
 157          
 158          
 159          unsigned char I2CGetByte(unsigned char ack) 
 160          {
 161   1          unsigned char   r, m;
 162   1      
 163   1          r = 0;
 164   1      
 165   1      #if (MCU_TYPE == MCU_STD8051)
 166   1          for (m = 0; m < 8; m++)         // Each bit at a time, MSB first
 167   1          {
 168   2              bIIC_SCL    = 1;
 169   2              BitDly();                   // Delay
 170   2      
 171   2              r   = (r << 1) | bIIC_SDA;
C51 COMPILER V6.20c  ACCESS                                                                04/15/2004 12:59:25 PAGE 4   

 172   2      
 173   2              bIIC_SCL    = 0;
 174   2              BitDly();                   // Delay
 175   2          }  
 176   1      
 177   1          // Send ACK according to 'ack'
 178   1          bIIC_SDA    = (bit)(ack & 0x01);
 179   1          BitDly();                       // Delay
 180   1          
 181   1          bIIC_SCL    = 1; 
 182   1          BitDly();                       // Delay
 183   1          
 184   1          bIIC_SCL    = 0; 
 185   1          BitDly();                       // Delay
 186   1          
 187   1          bIIC_SDA    = 1;
 188   1      
 189   1      #else
                 
                  for (m = 0; m < 8; m++)         // Each bit at a time, MSB first
                  {
                      MCU_WriteI2cScl(_HIGH);
                      BitDly();                   // Delay
                      r   = (r << 1) | MCU_ReadI2cSda();
                      MCU_WriteI2cScl(_LOW);
                      BitDly();                   // Delay
                  }  
                  // Send ACK according to 'ack'
                  MCU_WriteI2cSda((bit)(ack & 0x01));
                  BitDly();                       // Delay
                  MCU_WriteI2cScl(_HIGH);
                  BitDly();                       // Delay
                  MCU_WriteI2cScl(_LOW);
                  BitDly();                       // Delay
                  MCU_WriteI2cSda(_HIGH);
              
              #endif
 209   1      
 210   1          return (r);
 211   1      }
 212          
 213          void I2CSendByte(unsigned char send)
 214          {
 215   1          unsigned char   m;
 216   1      
 217   1      #if (MCU_TYPE == MCU_STD8051)
 218   1      
 219   1          for (m = 0; m < 8; m++)
 220   1          {
 221   2              bIIC_SDA    = (bit)(send & 0x80);   // Send each bit, MSB first
 222   2              BitDly();
 223   2      
 224   2              bIIC_SCL    = 1;
 225   2              BitDly();
 226   2      
 227   2              bIIC_SCL    = 0;
 228   2      
 229   2              send    = send << 1;
 230   2          }
 231   1      
 232   1          bIIC_SDA    = 1;
 233   1          bIIC_SCL    = 1;
C51 COMPILER V6.20c  ACCESS                                                                04/15/2004 12:59:25 PAGE 5   

 234   1          BitDly();
 235   1      
 236   1          bIIC_SCL    = 0;
 237   1          BitDly();
 238   1      
 239   1      #else
              
                  for (m = 0; m < 8; m++)
                  {
                      MCU_WriteI2cSda((bit)(send & 0x80));   // Send each bit, MSB first
                      BitDly();
                      MCU_WriteI2cScl(_HIGH);
                      BitDly();
                      MCU_WriteI2cScl(_LOW);;
                      send    = send << 1;
                  }
                  MCU_WriteI2cSda(_HIGH);
                  MCU_WriteI2cScl(_HIGH);
                  BitDly();
                  MCU_WriteI2cScl(_LOW);;
                  BitDly();
              
              #endif
 257   1      } 
 258          
 259          void I2CSendAddr(unsigned char addr, unsigned char index, unsigned char rd)
 260          {         
 261   1      #if (MCU_TYPE == MCU_STD8051)
 262   1      
 263   1          bIIC_SCL    = 1;
 264   1          bIIC_SDA    = 0;    // Start
 265   1          BitDly();
 266   1      
 267   1          bIIC_SCL    = 0;
 268   1          I2CSendByte(addr + rd);             // Send address byte
 269   1      
 270   1          if (0 == rd)    I2CSendByte(index); // Send index byte  
 271   1      
 272   1      #else
              
                  MCU_WriteI2cScl(_HIGH);
                  MCU_WriteI2cSda(_LOW);              // Start
                  BitDly();
                  MCU_WriteI2cScl(_LOW);;
                  I2CSendByte(addr + rd);             // Send address byte
                  
                  if (0 == rd)    I2CSendByte(index); // Send index byte 
              
              #endif
 283   1      }
 284          
 285          void I2CSendStop(void)
 286          {
 287   1      #if (MCU_TYPE == MCU_STD8051)

⌨️ 快捷键说明

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