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

📄 18b20.lst

📁 单片机仿真实例大全.part001
💻 LST
📖 第 1 页 / 共 5 页
字号:
0538 00              811     NOP 
0539 00              812     NOP 
053A C296            813     CLR P1.6H 
053C 00              814     NOP 
053D 00              815     NOP 
053E 00              816     NOP 
053F D296            817     SETB P1.6H 
0541 7B07            818     MOV R3,#7 
0543 DBFE            819     DJNZ R3,$ 
0545 A296            820     MOV C,P1.6H 
0547 7B17            821     MOV R3,#23 
0549 DBFE            822     DJNZ R3,$ 
054B 13              823     RRC A 
054C DAE7            824     DJNZ R2,RE17
054E 22              825     RET 
                     826     ;=============================
054F                 827     WRITE_18207: 
054F 7A08            828     MOV R2,#8 
0551 C3              829     CLR C 
0552                 830     WR17: 
0552 C296            831     CLR P1.6H 
0554 7B06            832     MOV R3,#6 
0556 DBFE            833     DJNZ R3,$ 
0558 13              834     RRC A 
0559 9296            835     MOV P1.6H,C 
055B 7B17            836     MOV R3,#23 
055D DBFE            837     DJNZ R3,$ 
055F D296            838     SETB P1.6H 
0561 00              839     NOP 
0562 DAEE            840     DJNZ R2,WR17
0564 D296            841     SETB P1.6H 
0566 22              842     RET
                     843     ;=======================================
0567                 844     READ_182007: 
0567 7C02            845     MOV R4,#2 ; 将温度高位和低位从DS18B20中读出 
0569 7931            846     MOV R1,#31H ; 低位存入30H(TEMPER_L),高位存入31H(TEMPER_H) 
056B                 847     RE007: 
056B 7A08            848     MOV R2,#8 
056D                 849     RE017: 
056D C3              850     CLR C 
A51 MACRO ASSEMBLER  18B20                                                                02/16/2007 16:00:49 PAGE    14

056E D296            851     SETB P1.6H 
0570 00              852     NOP 
0571 00              853     NOP 
0572 C296            854     CLR P1.6H 
0574 00              855     NOP 
0575 00              856     NOP 
0576 00              857     NOP 
0577 D296            858     SETB P1.6H 
0579 7B07            859     MOV R3,#7 
057B DBFE            860     DJNZ R3,$ 
057D A296            861     MOV C,P1.6H 
057F 7B17            862     MOV R3,#23 
0581 DBFE            863     DJNZ R3,$ 
0583 13              864     RRC A 
0584 DAE7            865     DJNZ R2,RE017
0586 F7              866     MOV @R1,A 
0587 19              867     DEC R1 
0588 DCE1            868     DJNZ R4,RE007
058A 22              869     RET 
                     870     ;=======================================
058B                 871     INIT_18207: 
058B D296            872     SETB P1.6H 
058D 00              873     NOP 
058E C296            874     CLR P1.6H 
0590 78FA            875     MOV R0,#250
0592                 876     TSR17: 
0592 D8FE            877     DJNZ R0,TSR17 ; 延时520us 
0594 D296            878     SETB P1.6H 
0596 7825            879     MOV R0,#25H ;96US-25H 
0598                 880     TSR27: 
0598 D8FE            881     DJNZ R0,TSR27
059A 309603          882     JNB P1.6H,TSR37;如D0为低则复位成功,DS18B20存在 
059D 0205A5          883     LJMP TSR47; 延时 
05A0                 884     TSR37: 
05A0 D200            885     SETB 00H ; 置标志位,表示DS1820存在 
05A2 0205AA          886     LJMP TSR57 
05A5                 887     TSR47: 
05A5 C200            888     CLR 00H ; 清标志位,表示DS1820不存在 
05A7 0205AE          889     LJMP TSR77
05AA                 890     TSR57: 
05AA 786B            891     MOV R0,#06BH ;200US 
05AC                 892     TSR67: 
05AC D8FE            893     DJNZ R0,TSR67; 延时 
05AE                 894     TSR77: 
05AE D296            895     SETB P1.6H ;拉高总线
05B0 22              896     RET
                     897     ;=============================== 
05B1                 898     GET_TEMPER8: 
05B1 D297            899               SETB      P1.7H ; 定时入口 
05B3 12063F          900     BCD8:      LCALL     INIT_18208
05B6 200003          901               JB        00H,S228
05B9 0205B3          902               LJMP      BCD8; 若DS18B20不存在则返回 
                     903     
05BC 120665          904     S228:     LCALL     DELAY1 
05BF 74CC            905              MOV        A,#0CCH ; 跳过ROM匹配------0CC命令
05C1 120603          906              LCALL     WRITE_18208
05C4 7444            907     MOV A,#44H ; 发出温度转换命令 
05C6 120603          908     LCALL WRITE_18208
05C9 00              909     NOP 
05CA 120665          910     LCALL DELAY1 
05CD 12063F          911     CBA8:LCALL INIT_18208
05D0 200003          912     JB 00H,ABC8
05D3 0205CD          913     LJMP CBA8
05D6 120665          914     ABC8:LCALL DELAY1 
05D9 74CC            915     MOV A,#0CCH ; 跳过ROM匹配 
05DB 120603          916     LCALL WRITE_18208
A51 MACRO ASSEMBLER  18B20                                                                02/16/2007 16:00:49 PAGE    15

05DE 74BE            917     MOV A,#0BEH ; 发出读温度命令 
05E0 120603          918     LCALL WRITE_18208
05E3 12061B          919     LCALL READ_182008 ;READ_1820 
05E6 22              920     RET 
                     921     ;==============================
05E7                 922     READ_18208: 
05E7 7A08            923     MOV R2,#8 
05E9                 924     RE18: 
05E9 C3              925     CLR C 
05EA D297            926     SETB P1.7H 
05EC 00              927     NOP 
05ED 00              928     NOP 
05EE C297            929     CLR P1.7H 
05F0 00              930     NOP 
05F1 00              931     NOP 
05F2 00              932     NOP 
05F3 D297            933     SETB P1.7H 
05F5 7B07            934     MOV R3,#7 
05F7 DBFE            935     DJNZ R3,$ 
05F9 A297            936     MOV C,P1.7H 
05FB 7B17            937     MOV R3,#23 
05FD DBFE            938     DJNZ R3,$ 
05FF 13              939     RRC A 
0600 DAE7            940     DJNZ R2,RE18
0602 22              941     RET 
                     942     ;=============================
0603                 943     WRITE_18208: 
0603 7A08            944     MOV R2,#8 
0605 C3              945     CLR C 
0606                 946     WR18: 
0606 C297            947     CLR P1.7H 
0608 7B06            948     MOV R3,#6 
060A DBFE            949     DJNZ R3,$ 
060C 13              950     RRC A 
060D 9297            951     MOV P1.7H,C 
060F 7B17            952     MOV R3,#23 
0611 DBFE            953     DJNZ R3,$ 
0613 D297            954     SETB P1.7H 
0615 00              955     NOP 
0616 DAEE            956     DJNZ R2,WR18
0618 D297            957     SETB P1.7H 
061A 22              958     RET
                     959     ;=======================================
061B                 960     READ_182008: 
061B 7C02            961     MOV R4,#2 ; 将温度高位和低位从DS18B20中读出 
061D 7931            962     MOV R1,#31H ; 低位存入30H(TEMPER_L),高位存入31H(TEMPER_H) 
061F                 963     RE008: 
061F 7A08            964     MOV R2,#8 
0621                 965     RE018: 
0621 C3              966     CLR C 
0622 D297            967     SETB P1.7H 
0624 00              968     NOP 
0625 00              969     NOP 
0626 C297            970     CLR P1.7H 
0628 00              971     NOP 
0629 00              972     NOP 
062A 00              973     NOP 
062B D297            974     SETB P1.7H 
062D 7B07            975     MOV R3,#7 
062F DBFE            976     DJNZ R3,$ 
0631 A297            977     MOV C,P1.7H 
0633 7B17            978     MOV R3,#23 
0635 DBFE            979     DJNZ R3,$ 
0637 13              980     RRC A 
0638 DAE7            981     DJNZ R2,RE018
063A F7              982     MOV @R1,A 
A51 MACRO ASSEMBLER  18B20                                                                02/16/2007 16:00:49 PAGE    16

063B 19              983     DEC R1 
063C DCE1            984     DJNZ R4,RE008
063E 22              985     RET 
                     986     ;=======================================
063F                 987     INIT_18208: 
063F D297            988     SETB P1.7H 
0641 00              989     NOP 
0642 C297            990     CLR P1.7H 
0644 78FA            991     MOV R0,#250
0646                 992     TSR18: 
0646 D8FE            993     DJNZ R0,TSR18 ; 延时520us 
0648 D297            994     SETB P1.7H 
064A 7825            995     MOV R0,#25H ;96US-25H 
064C                 996     TSR28: 
064C D8FE            997     DJNZ R0,TSR28
064E 309703          998     JNB P1.7H,TSR38;如D0为低则复位成功,DS18B20存在 
0651 020659          999     LJMP TSR48; 延时 
0654                1000     TSR38: 
0654 D200           1001     SETB 00H ; 置标志位,表示DS1820存在 
0656 02065E         1002     LJMP TSR58
0659                1003     TSR48: 
0659 C200           1004     CLR 00H ; 清标志位,表示DS1820不存在 
065B 020662         1005     LJMP TSR78
065E                1006     TSR58: 
065E 786B           1007     MOV R0,#06BH ;200US 
0660                1008     TSR68: 
0660 D8FE           1009     DJNZ R0,TSR68; 延时 
0662                1010     TSR78: 
0662 D297           1011     SETB P1.7H ;拉高总线
0664 22             1012     RET
                    1013     ;=============================== 
                    1014     ;======================================
0665 7F20           1015     DELAY1:MOV R7,#20H 
0667 DFFE           1016     DJNZ R7,$ 
0669 22             1017     RET
                    1018     
                    1019     ;====================================
066A 753300         1020     TEMPRRO:MOV 33H,#00H;初始化0
066D E530           1021     MOV A,30H
066F 540F           1022     ANL A,#0FH
0671 C4             1023     SWAP A
0672 F533           1024     MOV 33H,A
0674 E531           1025     MOV A,31H
0676 54F0           1026     ANL A,#0F0H
0678 C4             1027     SWAP A
0679 4233           1028     ORL 33H,A;重新组合成的带符号数据(整数部分)
067B E533           1029     MOV A,33H
067D 5480           1030     ANL A,#80H;判断符号
                    1031     
067F 6005           1032     JZ TEMPP
0681 E533           1033     MOV A,33H
0683 F4             1034     CPL A
                    1035     ;ADD A,#01H
0684 8013           1036     SJMP TEMPP1
0686 E533           1037     TEMPP:MOV A,33H;正数处理程序
0688 1206AE         1038           LCALL HBCD
068B E531           1039           MOV A,31H
068D 540F           1040           ANL A,#0FH
068F 9006C0         1041           MOV DPTR,#TEMPTAB;小数查表
0692 93             1042           MOVC A,@A+DPTR
0693 F536           1043           MOV 36H,A
0695 C2B7           1044           CLR P3.7;表示正数
0697 8014           1045           SJMP EXIT
0699 1206AE         1046     TEMPP1:LCALL HBCD;负数处理程序
069C E531           1047            MOV A,31H
069E 540F           1048            ANL A,#0FH
A51 MACRO ASSEMBLER  18B20                                                                02/16/2007 16:00:49 PAGE    17

06A0 44F0           1049            ORL A,#0F0H
06A2 F4             1050            CPL A
06A3 2401           1051            ADD A,#01H
06A5 9006C0         1052            MOV DPTR,#TEMPTAB
06A8 93             1053            MOVC A,@A+DPTR;小数查表
06A9 F536           1054            MOV 36H,A
06AB D2B7           1055            SETB P3.7;表示负数
06AD 22             1056     EXIT:RET
                    1057     
06AE 75F064         1058     HBCD:   MOV     B,#100  ;分离出百位,存放在R3中
06B1 84             1059             DIV     AB
06B2 FB             1060             MOV     R3,A
06B3 740A           1061             MOV     A,#10   ;余数继续分离十位和个位
06B5 C5F0           1062             XCH     A,B
06B7 84             1063             DIV     AB
06B8 C4             1064             SWAP    A
06B9 45F0           1065             ORL     A,B     ;将十位和个位拼装成BCD码
06BB 8B34           1066             MOV 34H,R3
06BD F535           1067             MOV 35H,A
06BF 22             1068             RET
06C0 00010102       1069     TEMPTAB:DB 00H,01H,01H,02H,03H,03H,04H,04H
06C4 03030404                
06C8 05060607       1070             DB 05H,06H,06H,07H,08H,08H,09H,09H;0~16*0.0652
06CC 08080909                
                    1071     ;==================================================
06D0                1072     CBCD:;MOV R2,#04H;5个待分离的BCD
06D0 E7             1073     CL:MOV A,@R1     ;分离后将占10个单元
06D1 F5F0           1074        MOV B,A
06D3 54F0           1075        ANL A,#0F0H
06D5 C4             1076        SWAP A
06D6 F54C           1077        MOV 4CH,A
06D8 E5F0           1078        MOV A,B
06DA 540F           1079        ANL A,#0FH
06DC F54D           1080        MOV 4DH,A
06DE A64C           1081        MOV @R0,4CH

⌨️ 快捷键说明

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