📄 ds18b20.ls1
字号:
196 ; {
197 ; SOURCE LINE # 25
198 ; #pragma asm
199 ; MOV R5,#3
0000 7D03 200 MOV R5,#3
201 ; LOOP1: MOV R6,#7
0002 7E07 202 LOOP1: MOV R6,#7
203 ; LOOP2: NOP
0004 00 204 LOOP2: NOP
205 ; NOP
0005 00 206 NOP
207 ; DJNZ R6,LOOP2
0006 DEFC 208 DJNZ R6,LOOP2
209 ; DJNZ R5,LOOP1
0008 DDF8 210 DJNZ R5,LOOP1
211 ; #pragma endasm
212 ; }
213 ; SOURCE LINE # 34
000A 22 214 RET
215 ; END OF delay100us
216
217 ;
218 ; void write_command(unsigned command)
219
---- 220 RSEG ?PR?_write_command?DS18B20
0000 221 _write_command:
222 ; SOURCE LINE # 36
223 ;---- Variable 'command?140' assigned to Register 'R6/R7' ----
224 ; {
225 ; SOURCE LINE # 37
226 ; rw=0;
227 ; SOURCE LINE # 38
0000 C2B5 228 CLR rw
229 ; rs=0;
230 ; SOURCE LINE # 39
0002 C2B4 231 CLR rs
232 ; en=1;
233 ; SOURCE LINE # 40
0004 D2B6 234 SETB en
235 ; P2=command;
236 ; SOURCE LINE # 41
0006 8FA0 237 MOV P2,R7
238 ; delay100us();
239 ; SOURCE LINE # 42
0008 120000 F 240 LCALL delay100us
241 ; en=0;
242 ; SOURCE LINE # 43
000B C2B6 243 CLR en
244 ; rw=1;
245 ; SOURCE LINE # 44
000D D2B5 246 SETB rw
247 ; }
248 ; SOURCE LINE # 45
000F 22 249 RET
250 ; END OF _write_command
251
A51 MACRO ASSEMBLER DS18B20 08/04/2008 18:57:57 PAGE 5
252 ;
253 ; void write_data(unsigned lcddata)
254
---- 255 RSEG ?PR?_write_data?DS18B20
0000 256 L?0030:
257 USING 0
0000 EF 258 MOV A,R7
0001 4430 259 ORL A,#030H
0003 FF 260 MOV R7,A
0004 261 _write_data:
262 ; SOURCE LINE # 47
263 ;---- Variable 'lcddata?241' assigned to Register 'R6/R7' ----
264 ; {
265 ; SOURCE LINE # 48
266 ; rw=0;
267 ; SOURCE LINE # 49
0004 C2B5 268 CLR rw
269 ; rs=1;
270 ; SOURCE LINE # 50
0006 D2B4 271 SETB rs
272 ; en=1;
273 ; SOURCE LINE # 51
0008 D2B6 274 SETB en
275 ; P2=lcddata;
276 ; SOURCE LINE # 52
000A 8FA0 277 MOV P2,R7
278 ; delay100us();
279 ; SOURCE LINE # 53
000C 120000 F 280 LCALL delay100us
281 ; en=0;
282 ; SOURCE LINE # 54
000F C2B6 283 CLR en
284 ; rw=1;
285 ; SOURCE LINE # 55
0011 D2B5 286 SETB rw
287 ; }
288 ; SOURCE LINE # 56
0013 22 289 RET
290 ; END OF _write_data
291
292 ;
293 ; void display_string(unsigned x,unsigned y,char*p)
294
---- 295 RSEG ?PR?_display_string?DS18B20
0000 296 _display_string:
297 USING 0
298 ; SOURCE LINE # 58
299 ;---- Variable 'x?342' assigned to Register 'R6/R7' ----
300 ;---- Variable 'p?344' assigned to Register 'R1/R2/R3' ----
301 ;---- Variable 'y?343' assigned to Register 'R4/R5' ----
302 ; {
303 ; SOURCE LINE # 59
304 ; if(x==1)
305 ; SOURCE LINE # 60
0000 EF 306 MOV A,R7
0001 6401 307 XRL A,#01H
0003 4E 308 ORL A,R6
0004 7005 309 JNZ ?C0004
310 ; write_command(128+y);
311 ; SOURCE LINE # 61
0006 ED 312 MOV A,R5
0007 2480 313 ADD A,#080H
0009 8003 314 SJMP ?C0028
000B 315 ?C0004:
316 ; else
317 ; write_command(192+y);
A51 MACRO ASSEMBLER DS18B20 08/04/2008 18:57:57 PAGE 6
318 ; SOURCE LINE # 63
000B ED 319 MOV A,R5
000C 24C0 320 ADD A,#0C0H
000E 321 ?C0028:
000E FF 322 MOV R7,A
000F E4 323 CLR A
0010 3C 324 ADDC A,R4
0011 FE 325 MOV R6,A
0012 120000 F 326 LCALL _write_command
0015 327 ?C0006:
328 ; while(*p)
329 ; SOURCE LINE # 64
0015 120000 F 330 LCALL ?C?CLDPTR
0018 FF 331 MOV R7,A
0019 6010 332 JZ ?C0008
333 ; {
334 ; SOURCE LINE # 65
335 ; write_data(*p);
336 ; SOURCE LINE # 66
001B 33 337 RLC A
001C 95E0 338 SUBB A,ACC
001E FE 339 MOV R6,A
001F 120000 F 340 LCALL _write_data
341 ; p++;
342 ; SOURCE LINE # 67
0022 7401 343 MOV A,#01H
0024 29 344 ADD A,R1
0025 F9 345 MOV R1,A
0026 E4 346 CLR A
0027 3A 347 ADDC A,R2
0028 FA 348 MOV R2,A
349 ; }
350 ; SOURCE LINE # 68
0029 80EA 351 SJMP ?C0006
352 ; }
353 ; SOURCE LINE # 69
002B 354 ?C0008:
002B 22 355 RET
356 ; END OF _display_string
357
358 ;
359 ; /*void display_num(unsigned x,unsigned y,unsigned i)
360 ; {
361 ; if(x==1)
362 ; write_command(128+y);
363 ; else
364 ; write_command(192+y);
365 ; write_data(number[i]);
366 ; } */
367 ;
368 ; /*------DS18B20------*/
369 ;
370 ;
371 ; void delay_18B20(unsigned int i)
372
---- 373 RSEG ?PR?_delay_18B20?DS18B20
0000 374 L?0029:
375 USING 0
0000 120000 F 376 LCALL _WriteOneChar
0003 7F64 377 MOV R7,#064H
0005 7E00 378 MOV R6,#00H
0007 379 _delay_18B20:
380 USING 0
381 ; SOURCE LINE # 83
382 ;---- Variable 'i?445' assigned to Register 'R6/R7' ----
383 ; {
A51 MACRO ASSEMBLER DS18B20 08/04/2008 18:57:57 PAGE 7
384 ; SOURCE LINE # 84
0007 385 ?C0009:
386 ; while(i--);
387 ; SOURCE LINE # 85
0007 EF 388 MOV A,R7
0008 1F 389 DEC R7
0009 AC06 390 MOV R4,AR6
000B 7001 391 JNZ ?C0027
000D 1E 392 DEC R6
000E 393 ?C0027:
000E 4C 394 ORL A,R4
000F 70F6 395 JNZ ?C0009
396 ; }
397 ; SOURCE LINE # 86
0011 398 ?C0011:
0011 22 399 RET
400 ; END OF _delay_18B20
401
402 ;
403 ;
404 ; /*DS18B20的复位脉冲 主机通估
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -