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

📄 fm24c16a.lst

📁 一个分选系统的软件:用SmallRtos操作系统
💻 LST
📖 第 1 页 / 共 2 页
字号:
 123              I_clock();
 124              FMSDAA = HIGH;
 125          }  */
 126          /****************************************************************************
 127          *    函数原型: bit function E_address(unsigned char Address);
 128          *    功    能: 向f24C16写入器件地址和一个指定的字节地址。
 129          *****************************************************************************/
 130          void E_addressA( unsigned char Device_Address,unsigned char Address )
 131          {
 132   1          I_startA() ;
 133   1          I_sendA( Device_Address&0xfe );
 134   1          I_sendA( Address );
 135   1      }
 136          /*********************************************************************************************************
 137          ** 函数名称: EepromReadByte
 138          ** 功能描述: 从指定的地址读出一个字节数据
 139          ** 输 入:   address,bytenumber
 140          ** 输 出:   所读数据
 141          ** 全局变量: 无
 142          ** 调用模块: SM_Receive
 143          ** 注  意:此函数不可重入,使用前要先申请信号量
 144          ** 作 者: 刘宝贵
 145          ** 日 期: 2004年5月5日
 146          **-------------------------------------------------------------------------------------------------------
 147          ** 修改人:
 148          ** 日 期:
 149          **-------------------------------------------------------------------------------------------------------
 150          *********************************************************************************************************/
 151          uint8 EepromReadByteA (uint16 address)
 152          {
 153   1          unsigned char a;
 154   1          unsigned char device_address,data_address;
 155   1          data_address=(unsigned char)address;
 156   1          device_address=(unsigned char)(address>>8);
 157   1          device_address=device_address<<1;
 158   1          device_address=device_address&0x0f;
 159   1          device_address=device_address|0xA1;
 160   1          I_initA();
 161   1          E_addressA( device_address,data_address );
 162   1          I_startA();
 163   1          I_sendA(device_address);
 164   1          a = I_receiveA();
 165   1          I_stopA();
 166   1          return(a);
 167   1      }
 168          /*********************************************************************************************************
 169          ** 函数名称: EepromReadWord
 170          ** 功能描述: 从指定的地址读出一个字节数据
 171          ** 输 入:   address,bytenumber
 172          ** 输 出:   所读数据
C51 COMPILER V7.06   FM24C16A                                                              06/06/2005 16:32:37 PAGE 4   

 173          ** 全局变量: 无
 174          ** 调用模块: SM_Receive
 175          ** 注  意:此函数不可重入,使用前要先申请信号量
 176          ** 作 者: 刘宝贵
 177          ** 日 期: 2004年5月5日
 178          **-------------------------------------------------------------------------------------------------------
 179          ** 修改人:
 180          ** 日 期:
 181          **-------------------------------------------------------------------------------------------------------
 182          *********************************************************************************************************/
 183          uint16 EepromReadWordA (uint16 address)
 184          {
 185   1          unsigned int a;
 186   1          unsigned char b,c;
 187   1          b =  EepromReadByteA(address);
 188   1          c =  EepromReadByteA(address+1);
 189   1          a=b;
 190   1          a=a<<8;
 191   1          a=a|c;
 192   1          return(a);
 193   1      }
 194          /*********************************************************************************************************
 195          ** 函数名称: EepromWriteByte
 196          ** 功能描述: 在指定的地址写入指定的字节
 197          ** 输 入:   address,temp
 198          ** 输 出:   无
 199          ** 全局变量: 
 200          ** 调用模块: SM_Send
 201          ** 注  意:此函数不可重入,使用前要先申请信号量
 202          ** 作 者: 刘宝贵
 203          ** 日 期: 2004年5月5日
 204          **-------------------------------------------------------------------------------------------------------
 205          ** 修改人:
 206          ** 日 期:
 207          **-------------------------------------------------------------------------------------------------------
 208          *********************************************************************************************************/
 209          void EepromWriteByteA(uint16 address ,uint8 temp)
 210          {
 211   1          uint8 device_address,data_address;
 212   1          data_address=(uint8)address;
 213   1          device_address=(uint8)(address>>8);
 214   1          device_address=device_address<<1;
 215   1          device_address=device_address&0xe;
 216   1          device_address=device_address|0xA0;
 217   1          I_initA();
 218   1          E_addressA( device_address,data_address );
 219   1          I_sendA(temp);
 220   1          I_stopA();
 221   1       }
 222          /*********************************************************************************************************
 223          ** 函数名称: EepromWriteWord
 224          ** 功能描述: 在指定的地址写入指定的字节
 225          ** 输 入:   address,temp16
 226          ** 输 出:   无
 227          ** 全局变量: 
 228          ** 调用模块: SM_Send
 229          ** 注  意:此函数不可重入,使用前要先申请信号量
 230          ** 作 者: 刘宝贵
 231          ** 日 期: 2004年5月5日
 232          **-------------------------------------------------------------------------------------------------------
 233          ** 修改人:
 234          ** 日 期:
C51 COMPILER V7.06   FM24C16A                                                              06/06/2005 16:32:37 PAGE 5   

 235          **-------------------------------------------------------------------------------------------------------
 236          *********************************************************************************************************/
 237          void EepromWriteWordA(uint16 address ,uint16 pata_data)
 238          {
 239   1          uint8 high_byte,low_byte;
 240   1          high_byte =(uint8)( pata_data>>8);
 241   1          EepromWriteByteA(address,high_byte);
 242   1          low_byte =(uint8)( pata_data&0xff);
 243   1          EepromWriteByteA( address+1, low_byte);
 244   1      }
 245          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    495    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1       4
   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 + -