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

📄 iic.lst

📁 STC51系列单片机通过vk3x系列芯片扩展串口的源码
💻 LST
📖 第 1 页 / 共 2 页
字号:
 202   1                      delay(1);
 203   1              clk=1;
 204   1                      delay(1);
 205   1          clk=0;
 206   1                      delay(1);
 207   1      
 208   1      
 209   1         if(_data2&0x01)
 210   1                      sda=1;
 211   1              else sda=0;
 212   1                      delay(1);
 213   1              clk=1;
 214   1                      delay(1);
 215   1              clk=0;
 216   1                      delay(1);
 217   1      
 218   1      
 219   1              clk=1; //ack
 220   1                      delay(1);
 221   1              clk=0;
 222   1                      delay(1); 
 223   1      
 224   1      
 225   1      
 226   1        if(!(_data1&0x01))
 227   1               {
 228   2                if(_data3&0x80)
 229   2                              sda=1;
 230   2                  else sda=0;
 231   2                      delay(1);
 232   2                      clk=1;
 233   2                      delay(1);
 234   2                      clk=0;  
 235   2                      delay(1);
 236   2      
 237   2                if(_data3&0x40)
 238   2                              sda=1;
 239   2                      else sda=0;
 240   2                      delay(1);
C51 COMPILER V7.06   IIC                                                                   06/14/2007 11:15:50 PAGE 5   

 241   2                      clk=1;
 242   2                      delay(1);
 243   2                      clk=0;  
 244   2                      delay(1);
 245   2                      
 246   2                if(_data3&0x20)
 247   2                              sda=1;
 248   2                      else sda=0;
 249   2                      delay(1);
 250   2                      clk=1;
 251   2                      delay(1);
 252   2                      clk=0;  
 253   2                      delay(1);
 254   2                      
 255   2                if(_data3&0x10)
 256   2                              sda=1;
 257   2                      else sda=0;
 258   2                      delay(1);
 259   2                      clk=1;
 260   2                      delay(1);
 261   2                      clk=0;  
 262   2                      delay(1);
 263   2                      
 264   2                if(_data3&0x08)
 265   2                              sda=1;
 266   2                      else sda=0;
 267   2                      delay(1);
 268   2                      clk=1;
 269   2                      delay(1);
 270   2                      clk=0;  
 271   2                      delay(1);
 272   2                      
 273   2                if(_data3&0x04)
 274   2                              sda=1;
 275   2                      else sda=0;
 276   2                      delay(1);
 277   2                      clk=1;
 278   2                      delay(1);
 279   2                      clk=0;  
 280   2                      delay(1);
 281   2                      
 282   2                if(_data3&0x02)
 283   2                              sda=1;
 284   2                      else sda=0;
 285   2                      delay(1);
 286   2                      clk=1;
 287   2                      delay(1);
 288   2                      clk=0;  
 289   2                      delay(1);
 290   2                      
 291   2                if(_data3&0x01)
 292   2                              sda=1;
 293   2                      else sda=0;
 294   2                      delay(1);
 295   2                      clk=1;
 296   2                      delay(1);
 297   2                      clk=0;  
 298   2                      delay(1);
 299   2              
 300   2      
 301   2                      clk=1; //ack
 302   2                      delay(1);
C51 COMPILER V7.06   IIC                                                                   06/14/2007 11:15:50 PAGE 6   

 303   2                      clk=0;
 304   2      
 305   2                      delay(1);
 306   2              sda=0;//stop bit
 307   2                      delay(1);       
 308   2                      clk=1;
 309   2                      delay(1);
 310   2                      sda=1;
 311   2               }
 312   1        else
 313   1          {
 314   2                      clk=1;
 315   2                      delay(1);
 316   2                      if(sda)
 317   2                              i=i+128;
 318   2                      clk=0;
 319   2                      delay(1);               
 320   2                      clk=1;
 321   2                      delay(1);
 322   2                      if(sda)
 323   2                              i=i+64;
 324   2                      clk=0;
 325   2                      delay(1);               
 326   2                      clk=1;
 327   2                      delay(1);
 328   2                      if(sda)
 329   2                              i=i+32;
 330   2                      clk=0;
 331   2                      delay(1);               
 332   2                      clk=1;
 333   2                      delay(1);
 334   2                      if(sda)
 335   2                              i=i+16;
 336   2                      clk=0;
 337   2                      delay(1);               
 338   2                      clk=1;
 339   2                      delay(1);
 340   2                      if(sda)
 341   2                              i=i+8;
 342   2                      clk=0;
 343   2                      delay(1);               
 344   2                      clk=1;
 345   2                      delay(1);
 346   2                      if(sda)
 347   2                              i=i+4;
 348   2                      clk=0;
 349   2                      delay(1);               
 350   2                      clk=1;
 351   2                      delay(1);
 352   2                      if(sda)
 353   2                              i=i+2;
 354   2                      clk=0;
 355   2                      delay(1);               
 356   2                      clk=1;
 357   2                      delay(1);
 358   2                      if(sda)
 359   2                              i=i+1;
 360   2                      clk=0;
 361   2                      delay(1);       
 362   2              
 363   2      
 364   2      
C51 COMPILER V7.06   IIC                                                                   06/14/2007 11:15:50 PAGE 7   

 365   2              sda=0;
 366   2                      delay(1);
 367   2                      clk=1; //ack
 368   2                      delay(1);
 369   2                      clk=0;
 370   2      
 371   2                      delay(1);
 372   2              sda=0;//stop bit
 373   2                      delay(1);       
 374   2                      clk=1;
 375   2                      delay(1);
 376   2                      sda=1;
 377   2         }
 378   1              return i;
 379   1      }
 380          //模拟SPI时序,data1,data2是写入的两个数据,这里仅返回第二个数据
 381          //*************************************************************************
 382          
 383          //*************************************************************************
 384          void write_reg(unsigned char port,unsigned char reg,unsigned char dat)
 385          {       
 386   1              send(0x90,(((port-1)<<4)+reg),dat);
 387   1      }
 388          //写寄存器,port为子串口的路数,reg为寄存器的地址,dat为写入寄存器的数据
 389          //*************************************************************************
 390          
 391          //*************************************************************************
 392          unsigned char read_reg(unsigned char port,unsigned char reg)
 393          {
 394   1              return send(0x91,(((port-1)<<4)+reg),0x00);
 395   1      }
 396          //读寄存器,琾ort为子串口的路数,reg为寄存器的地址,返回寄存器的值
 397          //***************************************************************************


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