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

📄 c21-2.lst

📁 C51单片机模拟I2C传输协议进行数据的读取写入
💻 LST
📖 第 1 页 / 共 2 页
字号:
 182   1      /**********************************************************************************/
 183   1        if(status==1)
 184   1        {
 185   2          switch(cnt2)
 186   2          {
 187   3            case 0:P0=SEG7[status];P2=ACT[0];break;
 188   3            case 1:if(set1_flag)P0=0x01;
 189   3                   else P0=0x00;P2=ACT[1];break;
 190   3            case 2:P0=SEG7[set1_m%10];P2=ACT[2];break;
 191   3            case 3:P0=SEG7[set1_m/10];P2=ACT[3];break;
 192   3            case 4:P0=SEG7[set1_h%10];P2=ACT[4];break;
 193   3            case 5:P0=SEG7[set1_h/10];P2=ACT[5];break;
 194   3            default:if(bit_flag){P0=SEG7[set1_m%10];P2=ACT[2];bit_flag=~bit_flag;}
 195   3                    else {P0=SEG7[set1_m/10];P2=ACT[3];bit_flag=~bit_flag;}break;
 196   3          }
 197   2        }
 198   1      /**********************************************************************************/
 199   1        if(status==2)
 200   1        {
 201   2          switch(cnt2)
 202   2          {
 203   3            case 0:P0=SEG7[status];P2=ACT[0];break;
 204   3            case 1:if(set1_flag)P0=0x01;
 205   3                   else P0=0x00;P2=ACT[1];break;
 206   3            case 2:P0=SEG7[set1_m%10];P2=ACT[2];break;
 207   3            case 3:P0=SEG7[set1_m/10];P2=ACT[3];break;
 208   3            case 4:P0=SEG7[set1_h%10];P2=ACT[4];break;
 209   3            case 5:P0=SEG7[set1_h/10];P2=ACT[5];break;
 210   3            default:if(bit_flag){P0=SEG7[set1_h%10];P2=ACT[4];bit_flag=~bit_flag;}
 211   3                    else {P0=SEG7[set1_h/10];P2=ACT[5];bit_flag=~bit_flag;}break;
 212   3          }
 213   2        }
 214   1      /**********************************************************************************/
 215   1        if(status==3)
 216   1        {
 217   2          switch(cnt2)
 218   2          {
 219   3            case 0:P0=SEG7[status];P2=ACT[0];break;
 220   3            case 1:if(set2_flag)P0=0x01;
 221   3                   else P0=0x00;P2=ACT[1];break;
 222   3            case 2:P0=SEG7[set2_m%10];P2=ACT[2];break;
 223   3            case 3:P0=SEG7[set2_m/10];P2=ACT[3];break;
 224   3            case 4:P0=SEG7[set2_h%10];P2=ACT[4];break;
 225   3            case 5:P0=SEG7[set2_h/10];P2=ACT[5];break;
 226   3            default:if(bit_flag){P0=SEG7[set2_m%10];P2=ACT[2];bit_flag=~bit_flag;}
 227   3                    else {P0=SEG7[set2_m/10];P2=ACT[3];bit_flag=~bit_flag;}break;
 228   3          }
 229   2        }
 230   1      /*********************************************************************************/
 231   1        if(status==4)
 232   1        {
 233   2          switch(cnt2)
 234   2          {
 235   3            case 0:P0=SEG7[status];P2=ACT[0];break;
 236   3            case 1:if(set2_flag)P0=0x01;
 237   3                   else P0=0x00;P2=ACT[1];break;
 238   3            case 2:P0=SEG7[set2_m%10];P2=ACT[2];break;
 239   3            case 3:P0=SEG7[set2_m/10];P2=ACT[3];break;
 240   3            case 4:P0=SEG7[set2_h%10];P2=ACT[4];break;
 241   3            case 5:P0=SEG7[set2_h/10];P2=ACT[5];break;
C51 COMPILER V7.06   C21_2                                                                 09/23/2008 23:35:30 PAGE 5   

 242   3            default:if(bit_flag){P0=SEG7[set2_h%10];P2=ACT[4];bit_flag=~bit_flag;}
 243   3                    else {P0=SEG7[set2_h/10];P2=ACT[5];bit_flag=~bit_flag;}break;
 244   3          }
 245   2        }
 246   1      }
 247          //================================================================================
 248          void start(void)
 249          {
 250   1        SDA=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 251   1        SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 252   1        SDA=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 253   1        SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 254   1      }
 255          //================================================================================
 256          void stop(void)
 257          {
 258   1        SDA=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 259   1        SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 260   1        SDA=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 261   1      }
 262          //================================================================================
 263          void ack(void)
 264          {
 265   1        SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 266   1        SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 267   1      }
 268          //================================================================================
 269          void shift8(uchar a)
 270          {
 271   1        uchar data i;
 272   1        com_data=a;
 273   1        for(i=0;i<8;i++)
 274   1        {
 275   2          SDA=mos_bit;
 276   2          SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 277   2          SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 278   2          com_data=com_data*2;
 279   2        }
 280   1      }
 281          //================================================================================
 282          uchar rd_2401(char a)
 283          {
 284   1        uchar data i,command;
 285   1        SDA=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 286   1        SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 287   1        start();
 288   1        command=160;
 289   1        shift8(command);
 290   1        ack();
 291   1        shift8(a);
 292   1        ack();
 293   1        start();
 294   1        command=161;
 295   1        shift8(command);
 296   1        ack();
 297   1        SDA=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 298   1        for(i=0;i<8;i++)
 299   1        {
 300   2          com_data=com_data*2;
 301   2          SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 302   2          low_bit=SDA;
 303   2          SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
C51 COMPILER V7.06   C21_2                                                                 09/23/2008 23:35:30 PAGE 6   

 304   2        }
 305   1        stop();
 306   1        return com_data;
 307   1      }
 308          //=================================================================================
 309          void wr_2401(char a,uchar b)
 310          {
 311   1        uchar data command=160;
 312   1        _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 313   1        SDA=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 314   1        SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 315   1        start();
 316   1        shift8(command);
 317   1        ack();
 318   1        shift8(a);
 319   1        ack();
 320   1        shift8(b);
 321   1        ack();
 322   1        stop();
 323   1        _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 324   1      }
 325          //=================================================================================
 326          void ic_delay(uint n)
 327          {
 328   1        uint i;
 329   1        for(i=0;i<n;i++)
 330   1        {;}
 331   1      }
 332          
 333            
 334            
 335            
 336          
 337            
 338            
 339          
 340          
 341          
 342          
 343            
 344          
 345          
 346          
 347          
 348          
 349          
 350              
 351              
 352            
 353          
 354          
 355          
 356          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1723    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     11       1
   IDATA SIZE       =   ----    ----
C51 COMPILER V7.06   C21_2                                                                 09/23/2008 23:35:30 PAGE 7   

   BIT SIZE         =      3    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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