📄 18bb20.ls1
字号:
A51 MACRO ASSEMBLER 18BB20 04/19/2008 15:24:00 PAGE 1
MACRO ASSEMBLER A51 V6.12
OBJECT MODULE PLACED IN 18bb20.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE 18bb20.src PR(.\18bb20.ls1) EP DEBUG
LOC OBJ LINE SOURCE
1 ; .\18bb20.SRC generated from: .\18bb20.c
2
3 $nomod51
4
5 NAME _18BB20
6
0080 7 P0 DATA 080H
0090 8 P1 DATA 090H
00A0 9 P2 DATA 0A0H
00B0 10 P3 DATA 0B0H
00B4 11 T0 BIT 0B0H.4
00D6 12 AC BIT 0D0H.6
00B5 13 T1 BIT 0B0H.5
0090 14 T2 BIT 090H.0
00AF 15 EA BIT 0A8H.7
00A8 16 IE DATA 0A8H
0083 17 DQ BIT 080H.3
00CE 18 EXF2 BIT 0C8H.6
00B7 19 RD BIT 0B0H.7
00AC 20 ES BIT 0A8H.4
00B8 21 IP DATA 0B8H
0098 22 RI BIT 098H.0
00B2 23 INT0 BIT 0B0H.2
00D7 24 CY BIT 0D0H.7
0099 25 TI BIT 098H.1
00B3 26 INT1 BIT 0B0H.3
00CB 27 RCAP2H DATA 0CBH
00BC 28 PS BIT 0B8H.4
0081 29 SP DATA 081H
0091 30 T2EX BIT 090H.1
00D2 31 OV BIT 0D0H.2
00CA 32 RCAP2L DATA 0CAH
00C9 33 C_T2 BIT 0C8H.1
00B6 34 WR BIT 0B0H.6
00CD 35 RCLK BIT 0C8H.5
00CC 36 TCLK BIT 0C8H.4
0099 37 SBUF DATA 099H
0087 38 PCON DATA 087H
0098 39 SCON DATA 098H
0089 40 TMOD DATA 089H
0088 41 TCON DATA 088H
0089 42 IE0 BIT 088H.1
008B 43 IE1 BIT 088H.3
00F0 44 B DATA 0F0H
00C8 45 CP_RL2 BIT 0C8H.0
00E0 46 ACC DATA 0E0H
00A9 47 ET0 BIT 0A8H.1
00AB 48 ET1 BIT 0A8H.3
008D 49 TF0 BIT 088H.5
00AD 50 ET2 BIT 0A8H.5
008F 51 TF1 BIT 088H.7
00CF 52 TF2 BIT 0C8H.7
009A 53 RB8 BIT 098H.2
008C 54 TH0 DATA 08CH
00A8 55 EX0 BIT 0A8H.0
0088 56 IT0 BIT 088H.0
008D 57 TH1 DATA 08DH
009B 58 TB8 BIT 098H.3
A51 MACRO ASSEMBLER 18BB20 04/19/2008 15:24:00 PAGE 2
00AA 59 EX1 BIT 0A8H.2
008A 60 IT1 BIT 088H.2
00CD 61 TH2 DATA 0CDH
00D0 62 P BIT 0D0H.0
009F 63 SM0 BIT 098H.7
008A 64 TL0 DATA 08AH
009E 65 SM1 BIT 098H.6
008B 66 TL1 DATA 08BH
009D 67 SM2 BIT 098H.5
00CC 68 TL2 DATA 0CCH
00B9 69 PT0 BIT 0B8H.1
00BB 70 PT1 BIT 0B8H.3
00D3 71 RS0 BIT 0D0H.3
00BD 72 PT2 BIT 0B8H.5
008C 73 TR0 BIT 088H.4
00D4 74 RS1 BIT 0D0H.4
008E 75 TR1 BIT 088H.6
00CA 76 TR2 BIT 0C8H.2
00B8 77 PX0 BIT 0B8H.0
00BA 78 PX1 BIT 0B8H.2
0083 79 DPH DATA 083H
0082 80 DPL DATA 082H
00CB 81 EXEN2 BIT 0C8H.3
009C 82 REN BIT 098H.4
00C8 83 T2CON DATA 0C8H
00B0 84 RXD BIT 0B0H.0
00B1 85 TXD BIT 0B0H.1
00D5 86 F0 BIT 0D0H.5
00D0 87 PSW DATA 0D0H
88 ?PR?_delay?18BB20 SEGMENT CODE
89 ?PR?reset?18BB20 SEGMENT CODE
90 ?BI?reset?18BB20 SEGMENT BIT OVERLAYABLE
91 ?PR?read_byte?18BB20 SEGMENT CODE
92 ?PR?_write_byte?18BB20 SEGMENT CODE
93 ?PR?get_temperature?18BB20 SEGMENT CODE
94 ?PR?main?18BB20 SEGMENT CODE
95 ?BI?18BB20 SEGMENT BIT
96 EXTRN DATA (table)
97 EXTRN CODE (?C_STARTUP)
98 PUBLIC flag
99 PUBLIC main
100 PUBLIC get_temperature
101 PUBLIC _write_byte
102 PUBLIC read_byte
103 PUBLIC reset
104 PUBLIC _delay
105
---- 106 RSEG ?BI?18BB20
0000 107 ?_write_byte?BYTE:
0000 108 flag: DBIT 1
109 ;
110 ;
111 ; #include "intrins.h"
112 ; #include "reg52.h"
113 ; //#include "stdio.h"
114 ; sbit DQ = P0^3;
115 ; #define uchar unsigned char
116 ; #define uint unsigned int
117 ;
118 ; bit flag;
119 ;
120 ;
121 ;
122 ;
123 ;
124 ; uchar table[];
A51 MACRO ASSEMBLER 18BB20 04/19/2008 15:24:00 PAGE 3
125 ; void delay(uint x);
126 ; bit reset(void);
127 ; uchar read_byte(void);
128 ; void write_byte(uchar val);
129 ;
130 ;
131 ;
132 ;
133 ;
134 ; void delay(uint x) ////when crystal is 12M ,a*2+5 us ,子程序调用要5us,while 就等于DJNZ
指令
135
---- 136 RSEG ?PR?_delay?18BB20
0000 137 _delay:
138 USING 0
139 ;---- Variable 'x?040' assigned to Register 'R6/R7' ----
140 ; SOURCE LINE # 26
141 ; {
142 ; SOURCE LINE # 27
0000 143 ?C0001:
144 ; while (x--);
145 ; SOURCE LINE # 28
0000 EF 146 MOV A,R7
0001 1F 147 DEC R7
0002 AC06 148 MOV R4,AR6
0004 7001 149 JNZ ?C0022
0006 1E 150 DEC R6
0007 151 ?C0022:
0007 4C 152 ORL A,R4
0008 70F6 153 JNZ ?C0001
154 ; }
155 ; SOURCE LINE # 29
000A 156 ?C0003:
000A 22 157 RET
158 ; END OF _delay
159
160 ;
161 ;
162 ; bit reset(void) //初始化18B20
163
---- 164 RSEG ?PR?reset?18BB20
0000 165 reset:
166 USING 0
167 ; SOURCE LINE # 32
168 ; {
169 ; SOURCE LINE # 33
170 ; bit presence=0; //定义一个应答信号
171 ; SOURCE LINE # 34
0000 172 CLR presence?141
*** _________________________________________^
*** ERROR #A45 IN 172 (18bb20.src, LINE 172): UNDEFINED SYMBOL (PASS-2)
173 ; DQ=1;
174 ; SOURCE LINE # 35
0002 D283 175 SETB DQ
176 ; DQ=0;
177 ; SOURCE LINE # 36
0004 C283 178 CLR DQ
179 ; delay(80); //置总线为低电平并保持至少480us
180 ; SOURCE LINE # 37
0006 7F50 181 MOV R7,#050H
0008 7E00 182 MOV R6,#00H
000A 120000 F 183 LCALL _delay
184 ; DQ=1; //等电阻拉高总线并保持15-60us
185 ; SOURCE LINE # 38
000D D283 186 SETB DQ
187 ; delay(5);
A51 MACRO ASSEMBLER 18BB20 04/19/2008 15:24:00 PAGE 4
188 ; SOURCE LINE # 39
000F 7F05 189 MOV R7,#05H
0011 7E00 190 MOV R6,#00H
0013 120000 F 191 LCALL _delay
192 ; presence=DQ; //接受应答信号
193 ; SOURCE LINE # 40
0016 A283 194 MOV C,DQ
0018 195 MOV presence?141,C
*** _________________________________________^
*** ERROR #A45 IN 195 (18bb20.src, LINE 195): UNDEFINED SYMBOL (PASS-2)
196 ; delay(13); //延时60-240us
197 ; SOURCE LINE # 41
001A 7F0D 198 MOV R7,#0DH
001C 7E00 199 MOV R6,#00H
001E 120000 F 200 LCALL _delay
201 ; return(presence); //返回应答信号
202 ; SOURCE LINE # 42
0021 203 MOV C,presence?141
*** ___________________________________________^
*** ERROR #A45 IN 203 (18bb20.src, LINE 203): UNDEFINED SYMBOL (PASS-2)
204 ; }
205 ; SOURCE LINE # 43
0023 206 ?C0004:
0023 22 207 RET
208 ; END OF reset
209
210 ;
211 ; /* 从DS18B20读出1个字节 */
212 ; uchar read_byte(void) //从18b20读一个字节.返回读到的内容
213
---- 214 RSEG ?PR?read_byte?18BB20
0000 215 read_byte:
216 USING 0
217 ; SOURCE LINE # 46
218 ; {
219 ; SOURCE LINE # 47
220 ; uchar i,j;
221 ; j=0;
222 ; SOURCE LINE # 49
223 ;---- Variable 'j?243' assigned to Register 'R5' ----
0000 E4 224 CLR A
0001 FD 225 MOV R5,A
226 ; for(i=0;i<8;i++)
227 ; SOURCE LINE # 50
228 ;---- Variable 'i?242' assigned to Register 'R3' ----
0002 FB 229 MOV R3,A
0003 230 ?C0005:
231 ; {
232 ; SOURCE LINE # 51
233 ; j=j>>1;
234 ; SOURCE LINE # 52
0003 ED 235 MOV A,R5
0004 C3 236 CLR C
0005 13 237 RRC A
0006 FD 238 MOV R5,A
239 ; DQ=0;
240 ; SOURCE LINE # 53
0007 C283 241 CLR DQ
242 ; _nop_(); //要求>1us,但又不能超
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -