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

📄 18b20.lst

📁 单片机仿真实例大全.part001
💻 LST
📖 第 1 页 / 共 5 页
字号:
0386 02038E          538     LJMP TSR54 
0389                 539     TSR44: 
0389 C200            540     CLR 00H ; 清标志位,表示DS1820不存在 
038B 020392          541     LJMP TSR74
038E                 542     TSR54: 
038E 786B            543     MOV R0,#06BH ;200US 
0390                 544     TSR64: 
0390 D8FE            545     DJNZ R0,TSR64 ; 延时 
0392                 546     TSR74: 
0392 D293            547     SETB P1.3H ;拉高总线
0394 22              548     RET
                     549     ;=============================== 
0395                 550     GET_TEMPER5: 
0395 D294            551               SETB      P1.4H ; 定时入口 
0397 120423          552     BCD5:      LCALL     INIT_18205
039A 200003          553               JB        00H,S225
039D 020397          554               LJMP      BCD5 ; 若DS18B20不存在则返回 
                     555     
03A0 120665          556     S225:     LCALL     DELAY1 
03A3 74CC            557              MOV        A,#0CCH ; 跳过ROM匹配------0CC命令
03A5 1203E7          558              LCALL     WRITE_18205
03A8 7444            559     MOV A,#44H ; 发出温度转换命令 
03AA 1203E7          560     LCALL WRITE_18205
03AD 00              561     NOP 
03AE 120665          562     LCALL DELAY1 
03B1 120423          563     CBA5:LCALL INIT_18205
03B4 200003          564     JB 00H,ABC5
03B7 0203B1          565     LJMP CBA5
03BA 120665          566     ABC5:LCALL DELAY1 
03BD 74CC            567     MOV A,#0CCH ; 跳过ROM匹配 
03BF 1203E7          568     LCALL WRITE_18205
03C2 74BE            569     MOV A,#0BEH ; 发出读温度命令 
03C4 1203E7          570     LCALL WRITE_18205
03C7 1203FF          571     LCALL READ_182005 ;READ_1820 
03CA 22              572     RET 
                     573     ;==============================
03CB                 574     READ_18205: 
03CB 7A08            575     MOV R2,#8 
03CD                 576     RE15: 
03CD C3              577     CLR C 
03CE D294            578     SETB P1.4H 
03D0 00              579     NOP 
03D1 00              580     NOP 
03D2 C294            581     CLR P1.4H 
03D4 00              582     NOP 
03D5 00              583     NOP 
03D6 00              584     NOP 
03D7 D294            585     SETB P1.4H 
03D9 7B07            586     MOV R3,#7 
A51 MACRO ASSEMBLER  18B20                                                                02/16/2007 16:00:49 PAGE    10

03DB DBFE            587     DJNZ R3,$ 
03DD A294            588     MOV C,P1.4H 
03DF 7B17            589     MOV R3,#23 
03E1 DBFE            590     DJNZ R3,$ 
03E3 13              591     RRC A 
03E4 DAE7            592     DJNZ R2,RE15
03E6 22              593     RET 
                     594     ;=============================
03E7                 595     WRITE_18205: 
03E7 7A08            596     MOV R2,#8 
03E9 C3              597     CLR C 
03EA                 598     WR15: 
03EA C294            599     CLR P1.4H 
03EC 7B06            600     MOV R3,#6 
03EE DBFE            601     DJNZ R3,$ 
03F0 13              602     RRC A 
03F1 9294            603     MOV P1.4H,C 
03F3 7B17            604     MOV R3,#23 
03F5 DBFE            605     DJNZ R3,$ 
03F7 D294            606     SETB P1.4H 
03F9 00              607     NOP 
03FA DAEE            608     DJNZ R2,WR15
03FC D294            609     SETB P1.4H 
03FE 22              610     RET
                     611     ;=======================================
03FF                 612     READ_182005: 
03FF 7C02            613     MOV R4,#2 ; 将温度高位和低位从DS18B20中读出 
0401 7931            614     MOV R1,#31H ; 低位存入30H(TEMPER_L),高位存入31H(TEMPER_H) 
0403                 615     RE005: 
0403 7A08            616     MOV R2,#8 
0405                 617     RE015: 
0405 C3              618     CLR C 
0406 D294            619     SETB P1.4H 
0408 00              620     NOP 
0409 00              621     NOP 
040A C294            622     CLR P1.4H 
040C 00              623     NOP 
040D 00              624     NOP 
040E 00              625     NOP 
040F D294            626     SETB P1.4H 
0411 7B07            627     MOV R3,#7 
0413 DBFE            628     DJNZ R3,$ 
0415 A294            629     MOV C,P1.4H 
0417 7B17            630     MOV R3,#23 
0419 DBFE            631     DJNZ R3,$ 
041B 13              632     RRC A 
041C DAE7            633     DJNZ R2,RE015
041E F7              634     MOV @R1,A 
041F 19              635     DEC R1 
0420 DCE1            636     DJNZ R4,RE005
0422 22              637     RET 
                     638     ;=======================================
0423                 639     INIT_18205: 
0423 D294            640     SETB P1.4H 
0425 00              641     NOP 
0426 C294            642     CLR P1.4H 
0428 78FA            643     MOV R0,#250
042A                 644     TSR15: 
042A D8FE            645     DJNZ R0,TSR15 ; 延时520us 
042C D294            646     SETB P1.4H 
042E 7825            647     MOV R0,#25H ;96US-25H 
0430                 648     TSR25: 
0430 D8FE            649     DJNZ R0,TSR25
0432 309403          650     JNB P1.4H,TSR35;如D0为低则复位成功,DS18B20存在 
0435 02043D          651     LJMP TSR45 ; 延时 
0438                 652     TSR35: 
A51 MACRO ASSEMBLER  18B20                                                                02/16/2007 16:00:49 PAGE    11

0438 D200            653     SETB 00H ; 置标志位,表示DS1820存在 
043A 020442          654     LJMP TSR55 
043D                 655     TSR45: 
043D C200            656     CLR 00H ; 清标志位,表示DS1820不存在 
043F 020446          657     LJMP TSR75
0442                 658     TSR55: 
0442 786B            659     MOV R0,#06BH ;200US 
0444                 660     TSR65: 
0444 D8FE            661     DJNZ R0,TSR65 ; 延时 
0446                 662     TSR75: 
0446 D294            663     SETB P1.4H ;拉高总线
0448 22              664     RET
                     665     ;=============================== 
0449                 666     GET_TEMPER6: 
0449 D295            667               SETB      P1.5H ; 定时入口 
044B 1204D7          668     BCD6:      LCALL     INIT_18206
044E 200003          669               JB        00H,S226
0451 02044B          670               LJMP      BCD6; 若DS18B20不存在则返回 
                     671     
0454 120665          672     S226:     LCALL     DELAY1 
0457 74CC            673              MOV        A,#0CCH ; 跳过ROM匹配------0CC命令
0459 12049B          674              LCALL     WRITE_18206
045C 7444            675     MOV A,#44H ; 发出温度转换命令 
045E 12049B          676     LCALL WRITE_18206
0461 00              677     NOP 
0462 120665          678     LCALL DELAY1 
0465 1204D7          679     CBA6:LCALL INIT_18206
0468 200003          680     JB 00H,ABC6
046B 020465          681     LJMP CBA6
046E 120665          682     ABC6:LCALL DELAY1 
0471 74CC            683     MOV A,#0CCH ; 跳过ROM匹配 
0473 12049B          684     LCALL WRITE_18206
0476 74BE            685     MOV A,#0BEH ; 发出读温度命令 
0478 12049B          686     LCALL WRITE_18206
047B 1204B3          687     LCALL READ_182006 ;READ_1820 
047E 22              688     RET 
                     689     ;==============================
047F                 690     READ_18206: 
047F 7A08            691     MOV R2,#8 
0481                 692     RE16: 
0481 C3              693     CLR C 
0482 D295            694     SETB P1.5H 
0484 00              695     NOP 
0485 00              696     NOP 
0486 C295            697     CLR P1.5H 
0488 00              698     NOP 
0489 00              699     NOP 
048A 00              700     NOP 
048B D295            701     SETB P1.5H 
048D 7B07            702     MOV R3,#7 
048F DBFE            703     DJNZ R3,$ 
0491 A295            704     MOV C,P1.5H 
0493 7B17            705     MOV R3,#23 
0495 DBFE            706     DJNZ R3,$ 
0497 13              707     RRC A 
0498 DAE7            708     DJNZ R2,RE16
049A 22              709     RET 
                     710     ;=============================
049B                 711     WRITE_18206: 
049B 7A08            712     MOV R2,#8 
049D C3              713     CLR C 
049E                 714     WR16: 
049E C295            715     CLR P1.5H 
04A0 7B06            716     MOV R3,#6 
04A2 DBFE            717     DJNZ R3,$ 
04A4 13              718     RRC A 
A51 MACRO ASSEMBLER  18B20                                                                02/16/2007 16:00:49 PAGE    12

04A5 9295            719     MOV P1.5H,C 
04A7 7B17            720     MOV R3,#23 
04A9 DBFE            721     DJNZ R3,$ 
04AB D295            722     SETB P1.5H 
04AD 00              723     NOP 
04AE DAEE            724     DJNZ R2,WR16
04B0 D295            725     SETB P1.5H 
04B2 22              726     RET
                     727     ;=======================================
04B3                 728     READ_182006: 
04B3 7C02            729     MOV R4,#2 ; 将温度高位和低位从DS18B20中读出 
04B5 7931            730     MOV R1,#31H ; 低位存入30H(TEMPER_L),高位存入31H(TEMPER_H) 
04B7                 731     RE006: 
04B7 7A08            732     MOV R2,#8 
04B9                 733     RE016: 
04B9 C3              734     CLR C 
04BA D295            735     SETB P1.5H 
04BC 00              736     NOP 
04BD 00              737     NOP 
04BE C295            738     CLR P1.5H 
04C0 00              739     NOP 
04C1 00              740     NOP 
04C2 00              741     NOP 
04C3 D295            742     SETB P1.5H 
04C5 7B07            743     MOV R3,#7 
04C7 DBFE            744     DJNZ R3,$ 
04C9 A295            745     MOV C,P1.5H 
04CB 7B17            746     MOV R3,#23 
04CD DBFE            747     DJNZ R3,$ 
04CF 13              748     RRC A 
04D0 DAE7            749     DJNZ R2,RE016
04D2 F7              750     MOV @R1,A 
04D3 19              751     DEC R1 
04D4 DCE1            752     DJNZ R4,RE006
04D6 22              753     RET 
                     754     ;=======================================
04D7                 755     INIT_18206: 
04D7 D295            756     SETB P1.5H 
04D9 00              757     NOP 
04DA C295            758     CLR P1.5H 
04DC 78FA            759     MOV R0,#250
04DE                 760     TSR16: 
04DE D8FE            761     DJNZ R0,TSR16 ; 延时520us 
04E0 D295            762     SETB P1.5H 
04E2 7825            763     MOV R0,#25H ;96US-25H 
04E4                 764     TSR26: 
04E4 D8FE            765     DJNZ R0,TSR26
04E6 309503          766     JNB P1.5H,TSR36;如D0为低则复位成功,DS18B20存在 
04E9 0204F1          767     LJMP TSR46 ; 延时 
04EC                 768     TSR36: 
04EC D200            769     SETB 00H ; 置标志位,表示DS1820存在 
04EE 0204F6          770     LJMP TSR56 
04F1                 771     TSR46: 
04F1 C200            772     CLR 00H ; 清标志位,表示DS1820不存在 
04F3 0204FA          773     LJMP TSR76
04F6                 774     TSR56: 
04F6 786B            775     MOV R0,#06BH ;200US 
04F8                 776     TSR66: 
04F8 D8FE            777     DJNZ R0,TSR66 ; 延时 
04FA                 778     TSR76: 
04FA D295            779     SETB P1.5H ;拉高总线
04FC 22              780     RET
                     781     ;=============================== 
04FD                 782     GET_TEMPER7: 
04FD D296            783               SETB      P1.6H ; 定时入口 
04FF 12058B          784     BCD7:      LCALL     INIT_18207
A51 MACRO ASSEMBLER  18B20                                                                02/16/2007 16:00:49 PAGE    13

0502 200003          785               JB        00H,S227
0505 0204FF          786               LJMP      BCD7; 若DS18B20不存在则返回 
                     787     
0508 120665          788     S227:     LCALL     DELAY1 
050B 74CC            789              MOV        A,#0CCH ; 跳过ROM匹配------0CC命令
050D 12054F          790              LCALL     WRITE_18207
0510 7444            791     MOV A,#44H ; 发出温度转换命令 
0512 12054F          792     LCALL WRITE_18207
0515 00              793     NOP 
0516 120665          794     LCALL DELAY1 
0519 12058B          795     CBA7:LCALL INIT_18207
051C 200003          796     JB 00H,ABC7
051F 020519          797     LJMP CBA7
0522 120665          798     ABC7:LCALL DELAY1 
0525 74CC            799     MOV A,#0CCH ; 跳过ROM匹配 
0527 12054F          800     LCALL WRITE_18207
052A 74BE            801     MOV A,#0BEH ; 发出读温度命令 
052C 12054F          802     LCALL WRITE_18207
052F 120567          803     LCALL READ_182007 ;READ_1820 
0532 22              804     RET 
                     805     ;==============================
0533                 806     READ_18207: 
0533 7A08            807     MOV R2,#8 
0535                 808     RE17: 
0535 C3              809     CLR C 
0536 D296            810     SETB P1.6H 

⌨️ 快捷键说明

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