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

📄 tempc.lst

📁 温度传感器程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 206          void InitDS1820(void)           //初始化DS1820
 207          {
 208   1        TMPort=1;             //拉高TMPort
 209   1              _nop_();      //保持一个周期
 210   1              TMPort = 0;             //拉低TMPort
 211   1        Delay_510();  //延时  DS1820复位时间要500us的低电平
 212   1        TMPort = 1;   //拉高TMPort
 213   1              _nop_();      //保持  
 214   1              _nop_();
 215   1              _nop_();
 216   1      
 217   1        Delay_110();  //延时110us 等待DS1820回应
 218   1        if (!TMPort)  //回应信号为低电平
 219   1          DS18B20ON = 1;
 220   1        else
 221   1          DS18B20ON = 0;
 222   1        Delay_110();  //延时
 223   1        Delay_110();
 224   1        TMPort = 1;   //拉高TMPort
 225   1      }
 226          
 227          
 228          void Delay_510(void)    //延时510微秒
 229          {
 230   1      #pragma asm
 231   1              MOV R0,#7DH
 232   1              MOV R1,#02H
 233   1              TSR1:
 234   1              DJNZ R0,TSR1
 235   1              MOV R0,#7DH
 236   1              DJNZ R1,TSR1
 237   1      #pragma endasm
 238   1      }
 239          
 240          void Delay_110(void)    //延时110微秒
 241          {
 242   1      #pragma asm
 243   1              MOV R0,#19H
 244   1              MOV R1,#02H
 245   1              TSR2:
 246   1              DJNZ R0,TSR2
 247   1              MOV R0,#19H
 248   1              DJNZ R1,TSR2
 249   1      #pragma endasm
C51 COMPILER V7.06   TEMPC                                                                 04/13/2005 22:38:51 PAGE 7   

 250   1      }
 251          
 252          void Delay_10ms(void)   //延时10ms
 253          {
 254   1      #pragma asm
 255   1              MOV R0,#19H
 256   1              MOV R1,#0C8H
 257   1              TSR3:
 258   1              DJNZ R0,TSR3
 259   1              MOV R0,#19H
 260   1              DJNZ R1,TSR3
 261   1      #pragma endasm
 262   1      }
 263          
 264          void Delay_4s(void)     //延时4s
 265          {
 266   1      #pragma asm
 267   1        MOV R2,#28H
 268   1        TSR5:
 269   1              MOV R0,#0FAH
 270   1              MOV R1,#0C8H
 271   1              TSR4:
 272   1              DJNZ R0,TSR4
 273   1              MOV R0,#0FAH
 274   1              DJNZ R1,TSR4
 275   1        DJNZ R2,TSR5
 276   1      #pragma endasm
 277   1      }
 278          
 279          void ROMDS1820(void)  //跳过ROM匹配
 280          {
 281   1      #pragma asm
 282   1        MOV A,#0CCH
 283   1        MOV R2,#8
 284   1        CLR C
 285   1        WR1:
 286   1        CLR P3_7
 287   1        MOV R3,#6
 288   1        DJNZ R3,$
 289   1        RRC A
 290   1        MOV P3_7,C
 291   1        MOV R3,#23
 292   1        DJNZ R3,$
 293   1        SETB P3_7
 294   1        NOP
 295   1        DJNZ R2,WR1
 296   1        SETB P3_7
 297   1      #pragma endasm
 298   1      }
 299          
 300          void TMVDS1820(void)  //温度转换指令
 301          {
 302   1      #pragma asm
 303   1        MOV A,#44H
 304   1        MOV R2,#8
 305   1        CLR C
 306   1        WR2:
 307   1        CLR P3_7
 308   1        MOV R3,#6
 309   1        DJNZ R3,$
 310   1        RRC A
 311   1        MOV P3_7,C
C51 COMPILER V7.06   TEMPC                                                                 04/13/2005 22:38:51 PAGE 8   

 312   1        MOV R3,#23
 313   1        DJNZ R3,$
 314   1        SETB P3_7
 315   1        NOP
 316   1        DJNZ R2,WR2
 317   1        SETB P3_7
 318   1      #pragma endasm
 319   1      }
 320          
 321          void TMRDS1820(void)  //读出温度指令
 322          {
 323   1      #pragma asm
 324   1        MOV A,#0BEH
 325   1        MOV R2,#8
 326   1        CLR C
 327   1        WR3:
 328   1        CLR P3_7
 329   1        MOV R3,#6
 330   1        DJNZ R3,$
 331   1        RRC A
 332   1        MOV P3_7,C
 333   1        MOV R3,#23
 334   1        DJNZ R3,$
 335   1        SETB P3_7
 336   1        NOP
 337   1        DJNZ R2,WR3
 338   1        SETB P3_7
 339   1      #pragma endasm
 340   1      }
 341          
 342          void TMWDS1820(void)  //写入温度限制指令
 343          {
 344   1      #pragma asm
 345   1        MOV A,#04EH
 346   1        MOV R2,#8
 347   1        CLR C
 348   1        WR13:
 349   1        CLR P3_7
 350   1        MOV R3,#6
 351   1        DJNZ R3,$
 352   1        RRC A
 353   1        MOV P3_7,C
 354   1        MOV R3,#23
 355   1        DJNZ R3,$
 356   1        SETB P3_7
 357   1        NOP
 358   1        DJNZ R2,WR13
 359   1        SETB P3_7
 360   1      #pragma endasm
 361   1      }
 362          
 363          void TMREDS1820(void)           //COPY RAM to E2PRAM
 364          {
 365   1      #pragma asm
 366   1        MOV A,#48H
 367   1        MOV R2,#8
 368   1        CLR C
 369   1        WR33:
 370   1        CLR P3_7
 371   1        MOV R3,#6
 372   1        DJNZ R3,$
 373   1        RRC A
C51 COMPILER V7.06   TEMPC                                                                 04/13/2005 22:38:51 PAGE 9   

 374   1        MOV P3_7,C
 375   1        MOV R3,#23
 376   1        DJNZ R3,$
 377   1        SETB P3_7
 378   1        NOP
 379   1        DJNZ R2,WR33
 380   1        SETB P3_7
 381   1      #pragma endasm
 382   1      }
 383          
 384          void TMERDS1820(void)           //COPY E2PRAM to RAM
 385          {
 386   1      #pragma asm
 387   1        MOV A,#0B8H
 388   1        MOV R2,#8
 389   1        CLR C
 390   1        WR43:
 391   1        CLR P3_7
 392   1        MOV R3,#6
 393   1        DJNZ R3,$
 394   1        RRC A
 395   1        MOV P3_7,C
 396   1        MOV R3,#23
 397   1        DJNZ R3,$
 398   1        SETB P3_7
 399   1        NOP
 400   1        DJNZ R2,WR43
 401   1        SETB P3_7
 402   1      #pragma endasm
 403   1      }
 404          
 405          void WriteDS1820(void)  //写入温度限制值
 406          {
 407   1      #pragma asm
 408   1              MOV A,26H                                       //发出4EH写ROM指令后连发两个字节分别为上下限
 409   1        MOV R2,#8
 410   1        CLR C
 411   1        WR23:
 412   1        CLR P3_7
 413   1        MOV R3,#6
 414   1        DJNZ R3,$
 415   1        RRC A
 416   1        MOV P3_7,C
 417   1        MOV R3,#23
 418   1        DJNZ R3,$
 419   1        SETB P3_7
 420   1        NOP
 421   1        DJNZ R2,WR23
 422   1        SETB P3_7       
 423   1      #pragma endasm
 424   1      }
 425          
 426          void ReadDS1820(void) //读出温度值
 427          {
 428   1      #pragma asm
 429   1        MOV R4,#2 ; 将温度高位和低位,高温限制位从DS18B20中读出
 430   1        MOV R1,#29H ; 低位存入29H(TEMPER_L),高位存入28H(TEMPER_H),高温限制位存入27H(TMRomV)
 431   1        RE00:
 432   1        MOV R2,#8
 433   1        RE01:
 434   1        CLR C
 435   1        SETB P3_7
C51 COMPILER V7.06   TEMPC                                                                 04/13/2005 22:38:51 PAGE 10  

 436   1        NOP
 437   1        NOP
 438   1        CLR P3_7
 439   1        NOP
 440   1        NOP
 441   1        NOP
 442   1        SETB P3_7
 443   1        MOV R3,#09
 444   1        RE10: 
 445   1        DJNZ R3,RE10
 446   1        MOV C,P3_7
 447   1        MOV R3,#23
 448   1        RE20: 
 449   1        DJNZ R3,RE20
 450   1        RRC A
 451   1        DJNZ R2,RE01
 452   1        MOV @R1,A
 453   1        DEC R1
 454   1        DJNZ R4,RE00
 455   1      #pragma endasm
 456   1      }
 457          
 458          
C51 COMPILER V7.06   TEMPC                                                                 04/13/2005 22:38:51 PAGE 11  

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


KeyV . . . . . . . . . . . . . . . . .  STATIC   DATA   U_CHAR   0000H  1
P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
KeyAndDis_Time0. . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
Sign . . . . . . . . . . . . . . . . .  STATIC   DATA   U_CHAR   0001H  1
P3_0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B0H  1
P3_1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B1H  1
Delay_10ms . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
P3_2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
P3_3 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B3H  1
P3_4 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
P3_5 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
TempKeyV . . . . . . . . . . . . . . .  STATIC   DATA   U_CHAR   0002H  1
P3_7 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
LED_f. . . . . . . . . . . . . . . . .  STATIC   DATA   CHAR     0003H  1
TMERDS1820 . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
TMREDS1820 . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
TM . . . . . . . . . . . . . . . . . .  STATIC   DATA   CHAR     0004H  1
V2ToV. . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
TMOD . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0089H  1
DS18B20ON. . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0000H  1
SetTF. . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0001H  1
ET0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A9H  1
TH0. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008CH  1
TL0. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008AH  1
ROMDS1820. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
TR0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008CH  1
TMRDS1820. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
wd . . . . . . . . . . . . . . . . . .  STATIC   DATA   INT      0005H  2
TMVDS1820. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
L_1. . . . . . . . . . . . . . . . . .  STATIC   DATA   CHAR     0007H  1
TMWDS1820. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
L_2. . . . . . . . . . . . . . . . . .  STATIC   DATA   CHAR     0008H  1
zd . . . . . . . . . . . . . . . . . .  STATIC   DATA   INT      0009H  2
L_3. . . . . . . . . . . . . . . . . .  STATIC   DATA   CHAR     000BH  1
L_4. . . . . . . . . . . . . . . . . .  STATIC   DATA   CHAR     000CH  1
L_5. . . . . . . . . . . . . . . . . .  STATIC   DATA   CHAR     000DH  1
ReadDS1820 . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
sign_jd. . . . . . . . . . . . . . . .  STATIC   DATA   U_CHAR   000EH  1
StateREG . . . . . . . . . . . . . . .  STATIC   DATA   U_CHAR   0000H  1
Delay_110. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
LED_1. . . . . . . . . . . . . . . . .  STATIC   DATA   CHAR     000FH  1
LED_2. . . . . . . . . . . . . . . . .  STATIC   DATA   CHAR     0010H  1
Delay_510. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
LED_3. . . . . . . . . . . . . . . . .  STATIC   DATA   CHAR     0011H  1
LED_4. . . . . . . . . . . . . . . . .  STATIC   DATA   CHAR     0012H  1
WriteDS1820. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
THV. . . . . . . . . . . . . . . . . .  STATIC   DATA   U_CHAR   0028H  1
TLV. . . . . . . . . . . . . . . . . .  STATIC   DATA   U_CHAR   0029H  1
TMV. . . . . . . . . . . . . . . . . .  STATIC   DATA   CHAR     0013H  1
LEDDis . . . . . . . . . . . . . . . .  PUBLIC   CODE   ARRAY    0000H  10
Delay_4s . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
InitDS1820 . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----


MODULE INFORMATION:   STATIC OVERLAYABLE
C51 COMPILER V7.06   TEMPC                                                                 04/13/2005 22:38:51 PAGE 12  

   CODE SIZE        =   1136    ----
   CONSTANT SIZE    =     10    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     21    ----
   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 + -