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

📄 key_disp.lst

📁 MCU51-JZ01单片机开发板实验例程
💻 LST
📖 第 1 页 / 共 3 页
字号:
 381   1              DQ1 = 1; i++; i++;                                                      //延时  
 382   1              dat = DQ1;      
 383   1              i = 8; while (i>0) i--;                                                 // 延时
 384   1              return (dat);
 385   1      }       
 386          bit tmp2read (void)                                                             // 读取数据的一位
 387          { 
 388   1              unsigned int i;
 389   1              bit dat;
 390   1              DQ2 = 0; i++;   
 391   1              DQ2 = 1; i++; i++;                                                      //延时  
 392   1              dat = DQ2;      
 393   1              i = 8; while (i>0) i--;                                                 // 延时
 394   1              return (dat);
 395   1      }
 396          unsigned char tmp1read2 (void)                                          //读一个字节
 397          {
 398   1              unsigned char i,j,dat;  
 399   1              dat = 0;        
 400   1              for (i=1;i<=8;i++)
 401   1              {
 402   2                      j = tmp1read ();        
 403   2                      dat = (j << 7) | (dat >> 1);    
 404   2              }
 405   1              return (dat);
 406   1      }       
 407          unsigned char tmp2read2 (void)                                          //读一个字节
 408          {
 409   1              unsigned char i,j,dat;  
 410   1              dat = 0;        
 411   1              for (i=1;i<=8;i++)
 412   1              {
 413   2                      j = tmp2read ();        
 414   2                      dat = (j << 7) | (dat >> 1);    
 415   2              }
 416   1              return (dat);
 417   1      }
 418          void tmp1write (unsigned char dat)                                      //写一个字节
 419          {   
 420   1              unsigned int i;
 421   1              unsigned char j;
 422   1              bit testb;      
 423   1              for (j=1;j<=8;j++)
 424   1              {       
 425   2                      testb = dat & 0x01;
 426   2                      dat = dat >> 1; 
C51 COMPILER V7.50   KEY_DISP                                                              12/06/2006 14:10:24 PAGE 8   

 427   2                      if (testb)
 428   2                      {       
 429   3                              DQ1 = 0;                                                // 写0 
 430   3                              i++; i++;  
 431   3                              DQ1 = 1;        
 432   3                              i = 8; while (i>0) i--; 
 433   3                      }
 434   2                      else    
 435   2                      {
 436   3                              DQ1 = 0;                                                // 写0 
 437   3                              i = 8; while (i>0) i--; 
 438   3                              DQ1 = 1;
 439   3                              i++; i++;  
 440   3                      }
 441   2              }
 442   1      }
 443          void tmp2write (unsigned char dat)                                      //写一个字节
 444          {   
 445   1              unsigned int i;
 446   1              unsigned char j;
 447   1              bit testb;      
 448   1              for (j=1;j<=8;j++)
 449   1              {       
 450   2                      testb = dat & 0x01;
 451   2                      dat = dat >> 1; 
 452   2                      if (testb)
 453   2                      {       
 454   3                              DQ2 = 0;                                                // 写0 
 455   3                              i++; i++;  
 456   3                              DQ2 = 1;        
 457   3                              i = 8; while (i>0) i--; 
 458   3                      }
 459   2                      else    
 460   2                      {
 461   3                              DQ2 = 0;                                                // 写0 
 462   3                              i = 8; while (i>0) i--; 
 463   3                              DQ2 = 1;
 464   3                              i++; i++;  
 465   3                      }
 466   2              }
 467   1      }
 468          
 469          void tmp1change(void)                                           // ds1820 开始转换
 470          {  
 471   1              tm1reset ();                                                    // 复位
 472   1              
 473   1              delay1ms (1);                                                   // 延时
 474   1              tmp1write (0xcc);                                               // 跳过序列号命令
 475   1              tmp1write (0x44);                                               // 发转换命令 44H,      
 476   1      }
 477          void tmp2change(void)                                           // ds1820 开始转换
 478          {  
 479   1              tm2reset ();                                                    // 复位
 480   1              
 481   1              delay1ms (1);                                               // 延时
 482   1              tmp2write (0xcc);                                               // 跳过序列号命令
 483   1              tmp2write (0x44);                                               // 发转换命令 44H,      
 484   1      }
 485          
 486          void tmp1 (void)                                                                // 读取温度
 487          { 
 488   1      
C51 COMPILER V7.50   KEY_DISP                                                              12/06/2006 14:10:24 PAGE 9   

 489   1              unsigned int temp;
 490   1              unsigned char Tl,Th;
 491   1              tm1reset ();                                                            // 复位
 492   1              delay1ms (1);                                                           // 延时
 493   1              tmp1write (0xcc);                                               // 跳过序列号命令
 494   1              tmp1write (0xbe);                                               // 发送读取命令
 495   1              Tl = tmp1read2 ();                                          // 读取低位温度     
 496   1              Th = tmp1read2 ();                                          // 读取高位温度     
 497   1          Temph = Th;
 498   1              if(flag)
 499   1              {
 500   2                      Templ = ~Tl+1;                                      // 如果为负温则去除其补码
 501   2                      Temph = ~Th;
 502   2              }
 503   1              else    
 504   1              {
 505   2                      Templ = Tl;
 506   2                  Temph = Th;
 507   2              }
 508   1              temp = Temph;
 509   1              Offset = (unsigned int)((Templ&0x0F)*0.625);
 510   1      
 511   1      }
 512          void tmp2 (void)                                                                // 读取温度
 513          { 
 514   1      
 515   1              unsigned char Tl,Th;
 516   1              tm2reset ();                                                            // 复位
 517   1              delay1ms (1);                                                           // 延时
 518   1              tmp2write (0xcc);                                               // 跳过序列号命令
 519   1              tmp2write (0xbe);                                               // 发送读取命令
 520   1              Tl = tmp2read2 ();                                          // 读取低位温度     
 521   1              Th = tmp2read2 ();                                          // 读取高位温度     
 522   1          Temph = Th;
 523   1              if(flag)
 524   1              {
 525   2                      Templ = ~Tl+1;                                      // 如果为负温则去除其补码
 526   2                      Temph = ~Th;
 527   2              }
 528   1              else    
 529   1              {
 530   2                      Templ = Tl;
 531   2                  Temph = Th;
 532   2              }
 533   1              Offset = (unsigned int)((Templ&0x0F)*0.625);
 534   1      
 535   1      }
 536          unsigned char ReadRom1()                            // 读取器件序列号子程序
 537          {
 538   1      
 539   1              tm1reset ();                                                            // 复位
 540   1              delay1ms (1);                                                           // 延时
 541   1              tmp1write(0x33);                                                        // 发送读序列号子程序
 542   1          Family_Code = tmp1read2 ();                             // 读取DS18B20家族码        
 543   1          return Family_Code;
 544   1          
 545   1      } 
 546          unsigned char ReadRom2()                            // 读取器件序列号子程序
 547          {
 548   1      
 549   1              tm2reset ();                                                            // 复位
 550   1              delay1ms (1);                                                           // 延时
C51 COMPILER V7.50   KEY_DISP                                                              12/06/2006 14:10:24 PAGE 10  

 551   1              tmp2write(0x33);                                                        // 发送读序列号子程序
 552   1          Family_Code = tmp2read2 ();                             // 读取DS18B20家族码        
 553   1          return Family_Code;
 554   1          
 555   1      }     
 556          /*===========================================================================
 557                                    End of files
 558          ===========================================================================*/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1192    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      8       9
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       4
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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