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

📄 iic_master.lst

📁 51单片机相关驱动程序 51单片机最小系统测试程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 178   2              _nop_();
 179   2              SCL = 0;
C51 COMPILER V7.08   IIC_MASTER                                                            03/31/2006 18:35:32 PAGE 4   

 180   2             // SDA = 1;
 181   2              return TRUE;
 182   2          }
 183   1          else
 184   1          {
 185   2              return FALSE;
 186   2          }
 187   1      }
 188          
 189          /*********************************************************************************************************
 190          ** 函数名称: IICStop
 191          ** 功能描述: 发送IIC结束信号
 192          ** 输 入: 无
 193          ** 输 出: 无
 194          ** 全局变量: 无
 195          ** 调用模块: 无
 196          ********************************************************************************************************/
 197                  void IICStop(void)
 198          {
 199   1              SCL = 1;
 200   1              SDA = 0;
 201   1          _nop_();
 202   1          _nop_();
 203   1         
 204   1          SDA = 1;
 205   1          _nop_();
 206   1          _nop_();
 207   1          _nop_();
 208   1         // SCL = 0;
 209   1      }
 210          
 211          /*********************************************************************************************************
 212          ** 函数名称: IIC_ACK
 213          ** 功能描述: 发送IIC应答信号
 214          ** 输 入: 无
 215          ** 输 出: 无
 216          ** 全局变量: 无
 217          ** 调用模块: 无
 218          ********************************************************************************************************/
 219                  void IIC_ACK(void)
 220          {
 221   1          SDA = 0;
 222   1          _nop_();
 223   1          _nop_();
 224   1          SCL = 1;
 225   1          _nop_();
 226   1          _nop_();
 227   1          _nop_();
 228   1          _nop_();
 229   1          SCL = 0;
 230   1      }
 231          
 232          /*********************************************************************************************************
 233          ** 函数名称: IIC_NO_ACK
 234          ** 功能描述: 发送IIC无应答信号
 235          ** 输 入: 无
 236          ** 输 出: 无
 237          ** 全局变量: 无
 238          ** 调用模块: 无
 239          ********************************************************************************************************/
 240                  void IIC_NO_ACK(void)
 241          {
C51 COMPILER V7.08   IIC_MASTER                                                            03/31/2006 18:35:32 PAGE 5   

 242   1          SDA = 1;
 243   1          _nop_();
 244   1          _nop_();
 245   1          SCL = 1;
 246   1          _nop_();
 247   1          _nop_();
 248   1          _nop_();
 249   1          _nop_();
 250   1          SCL = 0;
 251   1          return;
 252   1      }
 253          
 254          /*********************************************************************************************************
 255          ** 函数名称: IICSend
 256          ** 功能描述: 发送一个字节
 257          ** 输 入: IIC_data:数据
 258          ** 输 出: TRUE:成功
 259          **         FALSE:失败
 260          ** 全局变量: 无
 261          ** 调用模块: 无
 262          ********************************************************************************************************/
 263                  uint8 IICSend(uint8 IIC_data)
 264          {
 265   1          uint8 i;
 266   1          
 267   1          for (i = 0; i < 8; i++)
 268   1          {
 269   2              IIC_data = IIC_data << 1;
 270   2              F0 = SDA = CY;
 271   2              SCL = 1;
 272   2              if (F0 != SDA)
 273   2              {
 274   3                  SCL = 0;
 275   3                  return FALSE;
 276   3              }
 277   2              _nop_();
 278   2              _nop_();
 279   2              SCL = 0;
 280   2          }
 281   1      /*
 282   1      --------------------------------------------
 283   1      do{
 284   1      */
 285   1              SCL=0;
 286   1          SDA = 1;
 287   1          _nop_();
 288   1          _nop_();
 289   1          SCL = 1;
 290   1          _nop_();
 291   1          _nop_();
 292   1      /*
 293   1              }
 294   1      while(SDA);
 295   1              
 296   1      /*
 297   1      -----------------------------------------
 298   1      */
 299   1          if (SDA == 1)
 300   1          {
 301   2              SCL = 0;
 302   2              return FALSE;
 303   2          }
C51 COMPILER V7.08   IIC_MASTER                                                            03/31/2006 18:35:32 PAGE 6   

 304   1          else
 305   1          {
 306   2              SCL = 0;
 307   2              return TRUE;
 308   2          }
 309   1      /*
 310   1      --------------------------------------------
 311   1      */
 312   1      }
 313          
 314          /*********************************************************************************************************
 315          ** 函数名称: IICReceive
 316          ** 功能描述: 读取一个字节
 317          ** 输 入: 无
 318          ** 输 出: 读取的字节
 319          ** 全局变量: 无
 320          ** 调用模块: 无
 321          ********************************************************************************************************/
 322                  uint8 IICReceive(void)
 323          {
 324   1          uint8 i,r;
 325   1          
 326   1          r = 0;
 327   1          SDA = 1;
 328   1          for (i = 0; i < 8; i++)
 329   1          {
 330   2              r = r * 2;
 331   2              SCL = 1;
 332   2              _nop_();
 333   2              _nop_();
 334   2              if (SDA == 1)
 335   2              {
 336   3                  r++;
 337   3              }
 338   2              SCL = 0;
 339   2          }
 340   1          return r;
 341   1      }
 342          
 343          /*********************************************************************************************/
 344          /*                                 End of File                                               */
 345          /*********************************************************************************************/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    324    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      13
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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