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

📄 csy.lst

📁 本程序能实现温度的实时采集与显示
💻 LST
📖 第 1 页 / 共 5 页
字号:
 258   1                      for(m=0;m<128;m++)
 259   1                              write_flash_byte(lead_add+m,buffer[m],DATA_FLASH);
 260   1      
 261   1      }
 262          
 263          
 264          //温度显示开始
 265          /*----------------------------------------------------
 266          *   整型转换成字符型子程序
 267          *----------------------------------------------------*/
 268          unsigned  inttochar(unsigned  int int1)
 269           {
 270   1       unsigned char ch1;
 271   1       switch(int1)
 272   1          {
 273   2          case(0):ch1='0';break;
 274   2          case(1):ch1='1';break;
 275   2          case(2):ch1='2';break;
 276   2          case(3):ch1='3';break;
 277   2          case(4):ch1='4';break;
 278   2          case(5):ch1='5';break;
 279   2          case(6):ch1='6';break;
 280   2          case(7):ch1='7';break;
 281   2          case(8):ch1='8';break;
 282   2          case(9):ch1='9';break;
 283   2          default:break;
 284   2          }
 285   1          return(ch1);
 286   1       }
 287          /*----------------------------------------------------
 288          *   整型转换成浮点型子程序
 289          *----------------------------------------------------*/
 290          float  inttofloat(unsigned  int int1)
 291           {
 292   1       float ch1;
 293   1       switch(int1)
 294   1          {
 295   2          case(0):ch1=0;break;
 296   2          case(1):ch1=1;break;
 297   2          case(2):ch1=2;break;
 298   2          case(3):ch1=3;break;
 299   2          case(4):ch1=4;break;
 300   2          case(5):ch1=5;break;
 301   2          case(6):ch1=6;break;
 302   2          case(7):ch1=7;break;
 303   2          case(8):ch1=8;break;
C51 COMPILER V7.06   CSY                                                                   11/16/2007 16:56:48 PAGE 6   

 304   2          case(9):ch1=9;break;
 305   2          default:break;
 306   2          }
 307   1          return(ch1);
 308   1       } 
 309          /*----------------------------------------------------
 310          *   delay N count  c里的一个while语句相当于汇编里的一个DJNZ语句,即两个机器周期
 311          *----------------------------------------------------*/
 312          void Delay_Count (unsigned char Count ) //延时时间为:(Count*2+5)*0.362  us
 313          {
 314   1          while(--Count);  
 315   1      }
 316          
 317          
 318          /*----------------------------------------------------
 319          *   HEX->BCD查表程序,小数部分
 320          *----------------------------------------------------*/
 321          unsigned char hextobcd1(unsigned char tab)
 322          {
 323   1      unsigned int tab1;
 324   1              switch(tab)
 325   1              {
 326   2                      case(0x00):     tab1=0x000; break;
 327   2                      case(0x01): tab1=0x001; break;
 328   2                      case(0x02): tab1=0x001; break;
 329   2                      case(0x03): tab1=0x002; break;
 330   2                      case(0x04): tab1=0x003; break;
 331   2                      case(0x05): tab1=0x003; break;
 332   2                      case(0x06): tab1=0x004; break;
 333   2                      case(0x07): tab1=0x004; break;
 334   2                      case(0x08): tab1=0x005; break;
 335   2                      case(0x09): tab1=0x006; break;
 336   2                      case(0x0A): tab1=0x006; break;
 337   2                      case(0x0B): tab1=0x007; break;
 338   2                      case(0x0C): tab1=0x008; break;
 339   2                      case(0x0D): tab1=0x008; break;
 340   2                      case(0x0E): tab1=0x009; break;
 341   2                      case(0x0F): tab1=0x009; break;
 342   2      
 343   2                      default: tab1=0x00;break;
 344   2              }
 345   1              return(tab1);
 346   1      }
 347          
 348          /*----------------------------------------------------
 349          *   start Reset Pulse
 350          ----------------------------------------------------*/
 351          void tmreset(void)
 352          {
 353   1          TMDAT=0;
 354   1         Delay_Count(255);
 355   1         Delay_Count(255);
 356   1         Delay_Count(255);
 357   1         Delay_Count(255);
 358   1          TMDAT=1;
 359   1              Delay_Count(70);
 360   1              while(TMDAT);
 361   1      //      printf("已调用完判忙函数3\r\n");
 362   1              while(~TMDAT);
 363   1      //      printf("已调用完判忙函数2\r\n");
 364   1          Delay_Count(255);
 365   1      
C51 COMPILER V7.06   CSY                                                                   11/16/2007 16:56:48 PAGE 7   

 366   1      }
 367          
 368          
 369          /*----------------------------------------------------
 370          *   start Reset Pulse
 371          ----------------------------------------------------/
 372          void  tmreset()
 373          {
 374          
 375          //      P0=0xfe;
 376          
 377          //      FLAG1=0;
 378              TMDAT=1;
 379              Delay_Count(1);             //2.5us
 380              TMDAT=0;
 381              Delay_Count(250);   //505us
 382              Delay_Count(250);   //505us
 383              Delay_Count(250);   //505us
 384              TMDAT=1;
 385              Delay_Count(28);    //61us
 386              Delay_Count(28);    //61us
 387              Delay_Count(28);    //61us
 388              while(TMDAT);
 389          
 390          //      printf("初始化成功\n");
 391           while(~TMDAT);
 392           //printf("初始化成功1\n");
 393                                  Delay_Count(110);       //225us
 394                                  Delay_Count(110);       //225us
 395                                  Delay_Count(110);       //225us
 396                          
 397          }
 398          
 399          /*----------------------------------------------------
 400          *   Read a bit from 1820
 401          *----------------------------------------------------*/
 402          bit tmrbit(void)
 403          {
 404   1       int i=0;
 405   1          bit dat;
 406   1          TMDAT=0;
 407   1              _nop_();
 408   1          _nop_();
 409   1          _nop_();
 410   1      
 411   1              _nop_();
 412   1          _nop_();
 413   1          _nop_();
 414   1      
 415   1              _nop_();
 416   1          _nop_();
 417   1          _nop_();
 418   1      
 419   1              _nop_();
 420   1          _nop_();
 421   1          _nop_();
 422   1          TMDAT=1;
 423   1          _nop_();
 424   1      
 425   1          _nop_();
 426   1      
 427   1          _nop_();
C51 COMPILER V7.06   CSY                                                                   11/16/2007 16:56:48 PAGE 8   

 428   1      
 429   1          _nop_();
 430   1          dat = TMDAT;
 431   1          Delay_Count(30);
 432   1      
 433   1          Delay_Count(30);
 434   1      
 435   1          Delay_Count(30);
 436   1      
 437   1          Delay_Count(30);
 438   1          TMDAT=1;
 439   1          return dat;
 440   1      }
 441          /*----------------------------------------------------
 442          *   Read a byte from 1820
 443          *----------------------------------------------------*/
 444          unsigned char tmrbyte()
 445          {
 446   1      unsigned char i,j,dat=0;
 447   1          for(i=1;i<=8;i++)
 448   1          {
 449   2              j=tmrbit();
 450   2              dat=(j<<7)|(dat>>1);
 451   2          }
 452   1          return dat;
 453   1      }
 454          /*----------------------------------------------------
 455          *   Write a byte from 1820
 456          *----------------------------------------------------*/
 457          void tmwbyte(unsigned char dat)
 458          {
 459   1       unsigned char i;
 460   1       for(i=0;i<8;i++)
 461   1       {
 462   2       TMDAT=0;
 463   2      _nop_();
 464   2      _nop_();
 465   2      _nop_();
 466   2      _nop_();
 467   2      
 468   2      _nop_();
 469   2      _nop_();
 470   2      _nop_();
 471   2      _nop_();
 472   2      
 473   2      _nop_();
 474   2      _nop_();
 475   2      _nop_();
 476   2      _nop_();
 477   2      
 478   2      _nop_();
 479   2      _nop_();
 480   2      _nop_();
 481   2      _nop_();
 482   2      TMDAT=dat&0x01;
 483   2      Delay_Count(20);
 484   2      _nop_();
 485   2      _nop_();
 486   2      
 487   2      Delay_Count(20);
 488   2      _nop_();
 489   2      _nop_();
C51 COMPILER V7.06   CSY                                                                   11/16/2007 16:56:48 PAGE 9   

 490   2      
 491   2      Delay_Count(20);
 492   2      _nop_();
 493   2      _nop_();
 494   2      
 495   2      Delay_Count(20);
 496   2      _nop_();
 497   2      _nop_();
 498   2      
 499   2      TMDAT=1;
 500   2      _nop_();
 501   2      _nop_();
 502   2      
 503   2      _nop_();
 504   2      _nop_();
 505   2      
 506   2      _nop_();
 507   2      _nop_();
 508   2      
 509   2      _nop_();
 510   2      _nop_();
 511   2      dat>>=1;
 512   2      }
 513   1      }
 514          /*----------------------------------------------------
 515          *    Main
 516          *----------------------------------------------------*/
 517          void temp()
 518          {
 519   1      unsigned char a,b,a2,b2,i,j,cha[6];
 520   1      unsigned int w1;
 521   1      unsigned int da1,da2;
 522   1      //while(1)
 523   1      //{

⌨️ 快捷键说明

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