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

📄 18b20.lst

📁 单片机仿真实例大全.part001
💻 LST
📖 第 1 页 / 共 5 页
字号:
A51 MACRO ASSEMBLER  18B20                                                                02/16/2007 16:00:49 PAGE     1


MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN 18b20.OBJ
ASSEMBLER INVOKED BY: d:\Keil\C51\BIN\A51.EXE 18b20.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

0000 C2B7              1          CLR P3.7
0002 753800            2     MAIN:MOV 38H,#00H
0005 753900            3          MOV 39H,#00H
0008 753A00            4          MOV 3AH,#00H
000B 753B00            5          MOV 3BH,#00H
000E 1200C5            6          LCALL   GET_TEMPER 
0011 12066A            7          LCALL   TEMPRRO
0014 75A006            8          MOV P2,#06H
0017 12070D            9          LCALL PRO
                      10     ;------------------------------------------------------
                      11     
001A 753800           12          MOV 38H,#00H
001D 753900           13          MOV 39H,#00H
0020 753A00           14          MOV 3AH,#00H
0023 753B00           15          MOV 3BH,#00H
0026 120179           16          LCALL   GET_TEMPER2 
0029 12066A           17          LCALL   TEMPRRO
002C 75A05B           18          MOV P2,#5BH
002F 12070D           19          LCALL PRO
                      20     ;------------------------------------------------------
                      21     
0032 753800           22          MOV 38H,#00H
0035 753900           23          MOV 39H,#00H
0038 753A00           24          MOV 3AH,#00H
003B 753B00           25          MOV 3BH,#00H
003E 12022D           26          LCALL   GET_TEMPER3
0041 12066A           27          LCALL   TEMPRRO
0044 75A04F           28          MOV P2,#4FH
0047 12070D           29          LCALL PRO
                      30     
                      31     ;------------------------------------------------------
                      32     
004A 753800           33          MOV 38H,#00H
004D 753900           34          MOV 39H,#00H
0050 753A00           35          MOV 3AH,#00H
0053 753B00           36          MOV 3BH,#00H
0056 1202E1           37          LCALL   GET_TEMPER4
0059 12066A           38          LCALL   TEMPRRO
005C 75A066           39          MOV P2,#66H
005F 12070D           40          LCALL PRO
                      41     ;------------------------------------------------------
                      42     
0062 753800           43          MOV 38H,#00H
0065 753900           44          MOV 39H,#00H
0068 753A00           45          MOV 3AH,#00H
006B 753B00           46          MOV 3BH,#00H
006E 120395           47          LCALL   GET_TEMPER5
0071 12066A           48          LCALL   TEMPRRO
0074 75A06D           49          MOV P2,#6DH
0077 12070D           50          LCALL PRO
                      51     ;------------------------------------------------------
                      52     
007A 753800           53          MOV 38H,#00H
007D 753900           54          MOV 39H,#00H
0080 753A00           55          MOV 3AH,#00H
0083 753B00           56          MOV 3BH,#00H
0086 120449           57          LCALL   GET_TEMPER6
0089 12066A           58          LCALL   TEMPRRO
A51 MACRO ASSEMBLER  18B20                                                                02/16/2007 16:00:49 PAGE     2

008C 75A07D           59          MOV P2,#7DH
008F 12070D           60          LCALL PRO
                      61     ;------------------------------------------------------
                      62     
0092 753800           63          MOV 38H,#00H
0095 753900           64          MOV 39H,#00H
0098 753A00           65          MOV 3AH,#00H
009B 753B00           66          MOV 3BH,#00H
009E 1204FD           67          LCALL   GET_TEMPER7
00A1 12066A           68          LCALL   TEMPRRO
00A4 75A007           69          MOV P2,#07H
00A7 12070D           70          LCALL PRO
                      71     ;------------------------------------------------------
                      72     
00AA 753800           73          MOV 38H,#00H
00AD 753900           74          MOV 39H,#00H
00B0 753A00           75          MOV 3AH,#00H
00B3 753B00           76          MOV 3BH,#00H
00B6 1205B1           77          LCALL   GET_TEMPER8
00B9 12066A           78          LCALL   TEMPRRO
00BC 75A07F           79          MOV P2,#7FH
00BF 12070D           80          LCALL PRO
00C2 020002           81           LJMP  MAIN
                      82         
                      83     
                      84     
                      85     ;==============================================CHL1
00C5                  86     GET_TEMPER: 
00C5 D290             87               SETB      P1.0H ; 定时入口 
00C7 120153           88     BCD:      LCALL     INIT_1820 
00CA 200003           89               JB        00H,S22 
00CD 0200C7           90               LJMP      BCD ; 若DS18B20不存在则返回 
                      91     
00D0 120665           92     S22:     LCALL     DELAY1 
00D3 74CC             93              MOV        A,#0CCH ; 跳过ROM匹配------0CC命令
00D5 120117           94              LCALL     WRITE_1820 
00D8 7444             95     MOV A,#44H ; 发出温度转换命令 
00DA 120117           96     LCALL WRITE_1820 
00DD 00               97     NOP 
00DE 120665           98     LCALL DELAY1 
00E1 120153           99     CBA:LCALL INIT_1820 
00E4 200003          100     JB 00H,ABC 
00E7 0200E1          101     LJMP CBA 
00EA 120665          102     ABC:LCALL DELAY1 
00ED 74CC            103     MOV A,#0CCH ; 跳过ROM匹配 
00EF 120117          104     LCALL WRITE_1820 
00F2 74BE            105     MOV A,#0BEH ; 发出读温度命令 
00F4 120117          106     LCALL WRITE_1820 
00F7 12012F          107     LCALL READ_18200 ;READ_1820 
00FA 22              108     RET 
                     109     ;==============================
00FB                 110     READ_1820: 
00FB 7A08            111     MOV R2,#8 
00FD                 112     RE1: 
00FD C3              113     CLR C 
00FE D290            114     SETB P1.0H 
0100 00              115     NOP 
0101 00              116     NOP 
0102 C290            117     CLR P1.0H 
0104 00              118     NOP 
0105 00              119     NOP 
0106 00              120     NOP 
0107 D290            121     SETB P1.0H 
0109 7B07            122     MOV R3,#7 
010B DBFE            123     DJNZ R3,$ 
010D A290            124     MOV C,P1.0H 
A51 MACRO ASSEMBLER  18B20                                                                02/16/2007 16:00:49 PAGE     3

010F 7B17            125     MOV R3,#23 
0111 DBFE            126     DJNZ R3,$ 
0113 13              127     RRC A 
0114 DAE7            128     DJNZ R2,RE1 
0116 22              129     RET 
                     130     ;=============================
0117                 131     WRITE_1820: 
0117 7A08            132     MOV R2,#8 
0119 C3              133     CLR C 
011A                 134     WR1: 
011A C290            135     CLR P1.0H 
011C 7B06            136     MOV R3,#6 
011E DBFE            137     DJNZ R3,$ 
0120 13              138     RRC A 
0121 9290            139     MOV P1.0H,C 
0123 7B17            140     MOV R3,#23 
0125 DBFE            141     DJNZ R3,$ 
0127 D290            142     SETB P1.0H 
0129 00              143     NOP 
012A DAEE            144     DJNZ R2,WR1 
012C D290            145     SETB P1.0H 
012E 22              146     RET
                     147     ;=======================================
012F                 148     READ_18200: 
012F 7C02            149     MOV R4,#2 ; 将温度高位和低位从DS18B20中读出 
0131 7931            150     MOV R1,#31H ; 低位存入30H(TEMPER_L),高位存入31H(TEMPER_H) 
0133                 151     RE00: 
0133 7A08            152     MOV R2,#8 
0135                 153     RE01: 
0135 C3              154     CLR C 
0136 D290            155     SETB P1.0H 
0138 00              156     NOP 
0139 00              157     NOP 
013A C290            158     CLR P1.0H 
013C 00              159     NOP 
013D 00              160     NOP 
013E 00              161     NOP 
013F D290            162     SETB P1.0H 
0141 7B07            163     MOV R3,#7 
0143 DBFE            164     DJNZ R3,$ 
0145 A290            165     MOV C,P1.0H 
0147 7B17            166     MOV R3,#23 
0149 DBFE            167     DJNZ R3,$ 
014B 13              168     RRC A 
014C DAE7            169     DJNZ R2,RE01 
014E F7              170     MOV @R1,A 
014F 19              171     DEC R1 
0150 DCE1            172     DJNZ R4,RE00 
0152 22              173     RET 
                     174     ;=======================================
0153                 175     INIT_1820: 
0153 D290            176     SETB P1.0H 
0155 00              177     NOP 
0156 C290            178     CLR P1.0H 
0158 78FA            179     MOV R0,#250
015A                 180     TSR1: 
015A D8FE            181     DJNZ R0,TSR1 ; 延时520us 
015C D290            182     SETB P1.0H 
015E 7825            183     MOV R0,#25H ;96US-25H 
0160                 184     TSR2: 
0160 D8FE            185     DJNZ R0,TSR2 
0162 309003          186     JNB P1.0H,TSR3;如D0为低则复位成功,DS18B20存在 
0165 02016D          187     LJMP TSR4 ; 延时 
0168                 188     TSR3: 
0168 D200            189     SETB 00H ; 置标志位,表示DS1820存在 
016A 020172          190     LJMP TSR5 
A51 MACRO ASSEMBLER  18B20                                                                02/16/2007 16:00:49 PAGE     4

016D                 191     TSR4: 
016D C200            192     CLR 00H ; 清标志位,表示DS1820不存在 
016F 020176          193     LJMP TSR7 
0172                 194     TSR5: 
0172 786B            195     MOV R0,#06BH ;200US 
0174                 196     TSR6: 
0174 D8FE            197     DJNZ R0,TSR6 ; 延时 
0176                 198     TSR7: 
0176 D290            199     SETB P1.0H ;拉高总线
0178 22              200     RET
                     201     ;=============================== 
0179                 202     GET_TEMPER2: 
0179 D291            203               SETB      P1.1H ; 定时入口 
017B 120207          204     BCD2:      LCALL     INIT_18202 
017E 200003          205               JB        00H,S222 
0181 02017B          206               LJMP      BCD2 ; 若DS18B20不存在则返回 
                     207     
0184 120665          208     S222:     LCALL     DELAY1 
0187 74CC            209              MOV        A,#0CCH ; 跳过ROM匹配------0CC命令
0189 1201CB          210              LCALL     WRITE_18202 
018C 7444            211     MOV A,#44H ; 发出温度转换命令 
018E 1201CB          212     LCALL WRITE_18202 
0191 00              213     NOP 
0192 120665          214     LCALL DELAY1 
0195 120207          215     CBA2:LCALL INIT_18202 
0198 200003          216     JB 00H,ABC2 
019B 020195          217     LJMP CBA2 
019E 120665          218     ABC2:LCALL DELAY1 
01A1 74CC            219     MOV A,#0CCH ; 跳过ROM匹配 
01A3 1201CB          220     LCALL WRITE_18202 
01A6 74BE            221     MOV A,#0BEH ; 发出读温度命令 
01A8 1201CB          222     LCALL WRITE_18202 
01AB 1201E3          223     LCALL READ_182002 ;READ_1820 
01AE 22              224     RET 
                     225     ;==============================
01AF                 226     READ_18202: 
01AF 7A08            227     MOV R2,#8 
01B1                 228     RE12: 
01B1 C3              229     CLR C 
01B2 D291            230     SETB P1.1H 
01B4 00              231     NOP 
01B5 00              232     NOP 
01B6 C291            233     CLR P1.1H 
01B8 00              234     NOP 
01B9 00              235     NOP 
01BA 00              236     NOP 
01BB D291            237     SETB P1.1H 
01BD 7B07            238     MOV R3,#7 
01BF DBFE            239     DJNZ R3,$ 
01C1 A291            240     MOV C,P1.1H 
01C3 7B17            241     MOV R3,#23 
01C5 DBFE            242     DJNZ R3,$ 
01C7 13              243     RRC A 
01C8 DAE7            244     DJNZ R2,RE12 
01CA 22              245     RET 
                     246     ;=============================
01CB                 247     WRITE_18202: 
01CB 7A08            248     MOV R2,#8 
01CD C3              249     CLR C 
01CE                 250     WR12: 
01CE C291            251     CLR P1.1H 
01D0 7B06            252     MOV R3,#6 
01D2 DBFE            253     DJNZ R3,$ 
01D4 13              254     RRC A 
01D5 9291            255     MOV P1.1H,C 
01D7 7B17            256     MOV R3,#23 
A51 MACRO ASSEMBLER  18B20                                                                02/16/2007 16:00:49 PAGE     5

01D9 DBFE            257     DJNZ R3,$ 
01DB D291            258     SETB P1.1H 
01DD 00              259     NOP 
01DE DAEE            260     DJNZ R2,WR12 
01E0 D291            261     SETB P1.1H 
01E2 22              262     RET
                     263     ;=======================================
01E3                 264     READ_182002: 

⌨️ 快捷键说明

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