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

📄 4.lst

📁 知道过程虚报絮烦那些幸福关系豆腐干活动法
💻 LST
📖 第 1 页 / 共 2 页
字号:
 305   2                      }
 306   1              else
 307   1                      { 
 308   2                      if (SetTF || !Key_SET)
 309   2                                      {
 310   3                              LED_One = (TMSetV) / 100;          //SET状态下显示设定值
 311   3                              LED_Two = (TMSetV - LED_One * 100)/10;
 312   3                                  LED_Three = TMSetV - LED_One * 100 - LED_Two * 10;
 313   3                                      }
 314   2                      else
 315   2                                      {
 316   3                              LED_One = (TMV) / 100;                                                  //转换百位值            
 317   3                              LED_Two = (TMV - LED_One * 100)/10;
 318   3                                  LED_Three = TMV - LED_One * 100 - LED_Two * 10;
 319   3                                      }
 320   2                      }
 321   1      
 322   1       //转LED字段    
 323   1              if (LED_One) //超过百时十位的处理
 324   1                      LED_Two = LEDDis[LED_Two];              
 325   1              else
 326   1                      {
 327   2                              if (LED_Two == 0)
 328   2                                      LED_Two = LEDDis[10];
 329   2                              else
 330   2                                      LED_Two = LEDDis[LED_Two];
 331   2                      }
 332   1              if (Sign)
 333   1                      LED_One = LEDDis[11];
 334   1              else
 335   1                      {
 336   2                              if (LED_One == 0)
 337   2                                      LED_One = LEDDis[10];
 338   2                              else
 339   2                                      LED_One = LEDDis[LED_One];
 340   2                      }
 341   1              LED_Three = LEDDis[LED_Three];
 342   1      }
 343          
 344          void InitDS1820(void)           //初始化DS1820
 345          {
 346   1              TMPort = 1;             //拉高TMPort
 347   1              _nop_();      //保持一个周期
 348   1              TMPort = 0;             //拉低TMPort
 349   1        Delay_510();  //延时  DS1820复位时间要500us的低电平
 350   1        TMPort = 1;   //拉高TMPort
 351   1              _nop_();      //保持  
 352   1              _nop_();
 353   1              _nop_();
 354   1      
 355   1        Delay_110();  //延时110us 等待DS1820回应
 356   1        if (!TMPort)  //回应信号为低电平
 357   1          DS1820ON = 1;
 358   1        else
 359   1          DS1820ON = 0;
 360   1        Delay_110();  //延时
 361   1        Delay_110();
 362   1        TMPort = 1;   //拉高TMPort
 363   1      }
C51 COMPILER V7.50   4                                                                     05/08/2008 15:16:11 PAGE 7   

 364          
 365          void ROMDS1820(void)  //跳过ROM匹配
 366          {
 367   1      #pragma asm
 368   1        MOV A,#0CCH
 369   1        MOV R2,#8
 370   1        CLR C
 371   1        WR1:
 372   1        CLR P1^0
 373   1        MOV R3,#6
 374   1        DJNZ R3,$
 375   1        RRC A
 376   1        MOV P1^0,C
 377   1        MOV R3,#23
 378   1        DJNZ R3,$
 379   1        SETB P1^0
 380   1        NOP
 381   1        DJNZ R2,WR1
 382   1        SETB P1^0
 383   1      #pragma endasm
 384   1      }
 385          
 386          void TMVDS1820(void)  //温度转换指令
 387          {
 388   1      #pragma asm
 389   1        MOV A,#44H
 390   1        MOV R2,#8
 391   1        CLR C
 392   1        WR2:
 393   1        CLR P1^0
 394   1        MOV R3,#6
 395   1        DJNZ R3,$
 396   1        RRC A
 397   1        MOV P1^0,C
 398   1        MOV R3,#23
 399   1        DJNZ R3,$
 400   1        SETB P1^0
 401   1        NOP
 402   1        DJNZ R2,WR2
 403   1        SETB P1^0
 404   1        //SETB P1^4    //测试
 405   1            //MOV R3,#0FFH
 406   1            //DJNZ R3,$
 407   1            //CLR P1^4
 408   1      #pragma endasm
 409   1      }
 410          
 411          void TMRDS1820(void)  //读出温度指令
 412          {
 413   1      #pragma asm
 414   1        MOV A,#0BEH
 415   1        MOV R2,#8
 416   1        CLR C
 417   1        WR3:
 418   1        CLR P1^0
 419   1        MOV R3,#6
 420   1        DJNZ R3,$
 421   1        RRC A
 422   1        MOV P1^0,C
 423   1        MOV R3,#23
 424   1        DJNZ R3,$
 425   1        SETB P1^0
C51 COMPILER V7.50   4                                                                     05/08/2008 15:16:11 PAGE 8   

 426   1        NOP
 427   1        DJNZ R2,WR3
 428   1        SETB P1^0
 429   1      #pragma endasm
 430   1      }
 431          
 432          void TMWDS1820(void)  //写入温度限制指令
 433          {
 434   1      #pragma asm
 435   1        MOV A,#04EH
 436   1        MOV R2,#8
 437   1        CLR C
 438   1        WR13:
 439   1        CLR P1^0
 440   1        MOV R3,#6
 441   1        DJNZ R3,$
 442   1        RRC A
 443   1        MOV P1^0,C
 444   1        MOV R3,#23
 445   1        DJNZ R3,$
 446   1        SETB P1^0
 447   1        NOP
 448   1        DJNZ R2,WR13
 449   1        SETB P1^0
 450   1        
 451   1      #pragma endasm
 452   1      }
 453          
 454          void TMREDS1820(void)           //COPY RAM to E2PRAM
 455          {
 456   1      #pragma asm
 457   1        MOV A,#48H
 458   1        MOV R2,#8
 459   1        CLR C
 460   1        WR33:
 461   1        CLR P1^0
 462   1        MOV R3,#6
 463   1        DJNZ R3,$
 464   1        RRC A
 465   1        MOV P1^0,C
 466   1        MOV R3,#23
 467   1        DJNZ R3,$
 468   1        SETB P1^0
 469   1        NOP
 470   1        DJNZ R2,WR33
 471   1        SETB P1^0
 472   1         
 473   1      #pragma endasm
 474   1      }
 475          
 476          void TMERDS1820(void)           //COPY E2PRAM to RAM
 477          {
 478   1      #pragma asm
 479   1        MOV A,#0B8H
 480   1        MOV R2,#8
 481   1        CLR C
 482   1        WR43:
 483   1        CLR P1^0
 484   1        MOV R3,#6
 485   1        DJNZ R3,$
 486   1        RRC A
 487   1        MOV P1^0,C
C51 COMPILER V7.50   4                                                                     05/08/2008 15:16:11 PAGE 9   

 488   1        MOV R3,#23
 489   1        DJNZ R3,$
 490   1        SETB P1^0
 491   1        NOP
 492   1        DJNZ R2,WR43
 493   1        SETB P1^0
 494   1        
 495   1      #pragma endasm
 496   1      }
 497          
 498          void WriteDS1820(void)  //写入温度限制值
 499          {
 500   1      #pragma asm
 501   1              MOV A,26H                                       //发出4EH写ROM指令后连发两个字节分别为上下限
 502   1        MOV R2,#8
 503   1        CLR C
 504   1        WR23:
 505   1        CLR P1^0
 506   1        MOV R3,#6
 507   1        DJNZ R3,$
 508   1        RRC A
 509   1        MOV P1^0,C
 510   1        MOV R3,#23
 511   1        DJNZ R3,$
 512   1        SETB P1^0
 513   1        NOP
 514   1        DJNZ R2,WR23
 515   1        SETB P1^0       
 516   1      #pragma endasm
 517   1      }
 518          
 519          void ReadDS1820(void) //读出温度值
 520          {
 521   1      #pragma asm
 522   1        MOV R4,#3 ; 将温度高位和低位,高温限制位从DS18B20中读出
 523   1        MOV R1,#29H ; 低位存入29H(TEMPER_L),高位存入28H(TEMPER_H),高温限制位存入27H(TMRomV)
 524   1        RE00:
 525   1        MOV R2,#8
 526   1        RE01:
 527   1        CLR C
 528   1        SETB P1^0
 529   1        NOP
 530   1        NOP
 531   1        CLR P1^0
 532   1        NOP
 533   1        NOP
 534   1        NOP
 535   1        SETB P1^0
 536   1        MOV R3,#09
 537   1        RE10: 
 538   1        DJNZ R3,RE10
 539   1        MOV C,P1^0
 540   1        MOV R3,#23
 541   1        RE20: 
 542   1        DJNZ R3,RE20
 543   1        RRC A
 544   1        DJNZ R2,RE01
 545   1        MOV @R1,A
 546   1        DEC R1
 547   1        DJNZ R4,RE00
 548   1        //SETB P1^2    //测试
 549   1        //MOV R3,#0FFH
C51 COMPILER V7.50   4                                                                     05/08/2008 15:16:11 PAGE 10  

 550   1        //DJNZ R3,$
 551   1        //CLR P1^2
 552   1      #pragma endasm
 553   1      }
 554          
 555          void Delay_510(void)    //延时510微秒
 556          {
 557   1      #pragma asm
 558   1              MOV R0,#7DH
 559   1              MOV R1,#02H
 560   1              TSR1:
 561   1              DJNZ R0,TSR1
 562   1              MOV R0,#7DH
 563   1              DJNZ R1,TSR1
 564   1      #pragma endasm
 565   1      }
 566          
 567          void Delay_110(void)    //延时110微秒
 568          {
 569   1      #pragma asm
 570   1              MOV R0,#19H
 571   1              MOV R1,#02H
 572   1              TSR2:
 573   1              DJNZ R0,TSR2
 574   1              MOV R0,#19H
 575   1              DJNZ R1,TSR2
 576   1      #pragma endasm
 577   1      }
 578          
 579          void Delay_10ms(void)   //延时10ms
 580          {
 581   1      #pragma asm
 582   1              MOV R0,#19H
 583   1              MOV R1,#0C8H
 584   1              TSR3:
 585   1              DJNZ R0,TSR3
 586   1              MOV R0,#19H
 587   1              DJNZ R1,TSR3
 588   1      #pragma endasm
 589   1      }
 590          
 591          void Delay_4s(void)     //延时4s
 592          {
 593   1      #pragma asm
 594   1        MOV R2,#28H
 595   1        TSR5:
 596   1              MOV R0,#0FAH
 597   1              MOV R1,#0C8H
 598   1              TSR4:
 599   1              DJNZ R0,TSR4
 600   1              MOV R0,#0FAH
 601   1              DJNZ R1,TSR4
 602   1        DJNZ R2,TSR5
 603   1      #pragma endasm
 604   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1265    ----
   CONSTANT SIZE    =     12    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
C51 COMPILER V7.50   4                                                                     05/08/2008 15:16:11 PAGE 11  

   DATA SIZE        =     12    ----
   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 + -