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

📄 iic-24c64.lst

📁 全数字高清电视数字调谐器
💻 LST
📖 第 1 页 / 共 2 页
字号:
 207   1            unsigned char dd=0xa0;
 208   1            unsigned char s;
 209   1            unsigned char c;
 210   1               s=address;
 211   1               c=address>>8;  
 212   1            delay1(600);
 213   1           i2c_start();
 214   1           i2c_sendbyte(dd);  
 215   1            if(wait_ack())
 216   1                  {
 217   2                     i2c_stop();               
 218   2                   return(0);
 219   2                     }     
 220   1                i2c_sendbyte(c);
 221   1                if(wait_ack())
 222   1                  {
 223   2                     i2c_stop();              
 224   2                   return(0);
 225   2                     }          
 226   1              i2c_sendbyte(s);
 227   1                 if(wait_ack())
 228   1                     {
 229   2                     i2c_stop();             
 230   2                     return(0);
 231   2                     }
 232   1                   if(su>32)
 233   1                     {
 234   2                      for(i=0;i<32;i++)
 235   2                         {
 236   3                           i2c_sendbyte(fb[i]);       
 237   3                            if(wait_ack())
 238   3                              {
 239   4                               i2c_stop();             
 240   4                                return(0);
 241   4                               } 
C51 COMPILER V7.01  IIC_24C64                                                              08/17/2003 17:24:34 PAGE 5   

 242   3                          }                   
 243   2                          i2c_stop(); 
 244   2                          delay1(600);
 245   2                          address=address+32;
 246   2                          s=address;
 247   2                           c=address>>8;
 248   2                          i2c_start();
 249   2                          i2c_sendbyte(dd);   
 250   2                             if(wait_ack())
 251   2                                 {
 252   3                                  i2c_stop();               
 253   3                                  return(0);
 254   3                                  }     
 255   2                           i2c_sendbyte(c);
 256   2                               if(wait_ack())
 257   2                                 {
 258   3                                  i2c_stop();              
 259   3                                  return(0);
 260   3                                  }     
 261   2                         i2c_sendbyte(s);
 262   2                               if(wait_ack())
 263   2                                  {
 264   3                                   i2c_stop();             
 265   3                                   return(0);
 266   3                                  } 
 267   2                        for(i=32;i<su;i++)
 268   2                             {
 269   3                             i2c_sendbyte(fb[i]);     
 270   3                              if(wait_ack())
 271   3                                   {
 272   4                                   i2c_stop();             
 273   4                                   return(0);
 274   4                                   } 
 275   3                               }   
 276   2                               i2c_stop();
 277   2                             return(1);
 278   2                         }
 279   1              else {           
 280   2                      for(i=0;i<su;i++)
 281   2                         {
 282   3                           i2c_sendbyte(fb[i]);       
 283   3                          if(wait_ack())
 284   3                              {
 285   4                              i2c_stop();             
 286   4                              return(0);
 287   4                              } 
 288   3                           }                    
 289   2                    i2c_stop();
 290   2                    return(1);
 291   2                    }
 292   1      }
 293          
 294          unsigned char i2c_reada(unsigned int address)//单字节读
 295          {
 296   1            unsigned char dd=0xa0;
 297   1            unsigned char dc=0xa1;        
 298   1            unsigned char s;
 299   1            unsigned char c;
 300   1                s=address;
 301   1                c=address>>8;
 302   1                delay1(2000);
 303   1                
C51 COMPILER V7.01  IIC_24C64                                                              08/17/2003 17:24:34 PAGE 6   

 304   1           i2c_start();
 305   1                i2c_sendbyte(dd);
 306   1           if(wait_ack())
 307   1                    {
 308   2                     i2c_stop();
 309   2                   return(0);
 310   2                     }
 311   1                i2c_sendbyte(c);
 312   1                if(wait_ack())
 313   1                  {
 314   2                     i2c_stop();
 315   2                   return(0);
 316   2                     }
 317   1               i2c_sendbyte(s);
 318   1                if(wait_ack())
 319   1                  {
 320   2                     i2c_stop();
 321   2                   return(0);
 322   2                     }
 323   1                i2c_stop();
 324   1                
 325   1                      delay1(300);
 326   1                  i2c_start();
 327   1                      i2c_sendbyte(dc);
 328   1              if(wait_ack())
 329   1                  {
 330   2                     i2c_stop();
 331   2                   return(0);
 332   2                     }
 333   1               s=i2c_readbyte();
 334   1                      sendnot_ack();
 335   1                      i2c_stop();      
 336   1            return(s);
 337   1      }
 338          
 339          bit i2c_writea(unsigned int address,unsigned char fb)//单字节写
 340          {
 341   1              unsigned char dd=0xa0;
 342   1                unsigned char ae;
 343   1                unsigned char ar;
 344   1               ae=address;
 345   1               ar=address>>8; 
 346   1            delay1(600);
 347   1           i2c_start();
 348   1           i2c_sendbyte(dd);  
 349   1            if(wait_ack())
 350   1                  {
 351   2                     i2c_stop();               
 352   2                   return(0);
 353   2                     }     
 354   1                i2c_sendbyte(ar);
 355   1                if(wait_ack())
 356   1                  {
 357   2                     i2c_stop();              
 358   2                   return(0);
 359   2                     }          
 360   1              i2c_sendbyte(ae);
 361   1                 if(wait_ack())
 362   1                     {
 363   2                     i2c_stop();             
 364   2                     return(0);
 365   2                     }
C51 COMPILER V7.01  IIC_24C64                                                              08/17/2003 17:24:34 PAGE 7   

 366   1              i2c_sendbyte(fb);
 367   1                   if(wait_ack())
 368   1                     {
 369   2                     i2c_stop();             
 370   2                     return(0);
 371   2                     }
 372   1                 i2c_stop();
 373   1                 return(1);
 374   1      }
 375          
 376          void wirte_24c64(unsigned int address,unsigned char fb[],unsigned char su)
 377          {
 378   1      unsigned char i;  
 379   1        for(i=0;i<4;i++)
 380   1          {
 381   2        if(i2c_write(address,fb,su))    
 382   2           return;
 383   2          }
 384   1      }
 385          
 386          void wirte_24c64a(unsigned int address,unsigned char fb)
 387          {
 388   1      unsigned char i;  
 389   1        for(i=0;i<4;i++)
 390   1          {
 391   2        if(i2c_writea(address,fb))    
 392   2           return;
 393   2          }
 394   1      }
 395          
 396          
 397          void read_24c64(unsigned int address,unsigned char fb[],unsigned char su)//多字节读
 398          {
 399   1      unsigned char i;
 400   1       for(i=0;i<4;i++)
 401   1          {
 402   2        if(i2c_read(address,fb,su))    
 403   2           return;
 404   2          }
 405   1      }


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