📄 stest.ls1
字号:
215
216
001D 0A 217 DB 00AH
001E 00 F 218 DB disbuf
001F 00 219 DB 000H
0020 00000000 220 DB 000H,000H,000H,000H,000H,000H,000H,000H,000H
0024 00000000
0028 00
221
222
0029 01 223 DB 001H
002A 00 F 224 DB trance
002B 00 225 DB 000H
226
002C 01 227 DB 001H
002D 00 F 228 DB recived
002E 00 229 DB 000H
230
002F 01 231 DB 001H
0030 00 F 232 DB comno
0031 00 233 DB 000H
234
235 ; #include <AT89X51.h>
236 ; #include <intrins.h>
237 ;
238 ;
239 ; #define TMPort P1_7
240 ;
241 ; unsigned char MYWD[7]={0,0,0,0,0,'`','C'},DS1820ERR[]="NO DS1820!",TMCL[]={"TMCL"};
242 ; unsigned char disbuf[10]={0};
243 ; unsigned char trance=0,recived=0,comno=0,comzf;//发送状态、接受命令字符序号、接收的字符
244 ;
245 ; unsigned int t;
246 ; bit DS1820ON,readtm;//DS1820响应、是否接收测温命令。
247 ;
A51 MACRO ASSEMBLER STEST 05/05/2004 02:05:29 PAGE 5
248 ; void initUart(void)//波特率9600,24M时钟
249
---- 250 RSEG ?PR?initUart?STEST
0000 251 initUart:
252 ; SOURCE LINE # 14
253 ; {
254 ; SOURCE LINE # 15
255 ; TMOD|=0x20;
256 ; SOURCE LINE # 16
0000 438920 257 ORL TMOD,#020H
258 ; SCON=0x50;
259 ; SOURCE LINE # 17
0003 759850 260 MOV SCON,#050H
261 ; PCON|=0x80;
262 ; SOURCE LINE # 18
0006 438780 263 ORL PCON,#080H
264 ; TH1=0xf3;
265 ; SOURCE LINE # 19
0009 758DF3 266 MOV TH1,#0F3H
267 ; TL1=0xf3;
268 ; SOURCE LINE # 20
000C 758BF3 269 MOV TL1,#0F3H
270 ; TR1=1;
271 ; SOURCE LINE # 21
000F D28E 272 SETB TR1
273 ; ES=1;
274 ; SOURCE LINE # 22
0011 D2AC 275 SETB ES
276 ; }
277 ; SOURCE LINE # 23
0013 22 278 RET
279 ; END OF initUart
280
---- 281 CSEG AT 00023H
0023 020000 F 282 LJMP uart
283
284 ;
285 ;
286 ; void uart(void) interrupt 4
287
---- 288 RSEG ?PR?uart?STEST
289 USING 0
0000 290 uart:
291 ; SOURCE LINE # 26
292 ; {
293 ; unsigned char m=0;
294 ; SOURCE LINE # 28
0000 750000 F 295 MOV m?140,#00H
296 ; if(RI)
297 ; SOURCE LINE # 29
0003 309809 298 JNB RI,?C0002
299 ; {comzf=SBUF;RI=0;recived=1;}
300 ; SOURCE LINE # 30
0006 859900 F 301 MOV comzf,SBUF
0009 C298 302 CLR RI
000B 750001 F 303 MOV recived,#01H
000E 32 304 RETI
000F 305 ?C0002:
306 ; else
307 ; {TI=0;trance=1;}
308 ; SOURCE LINE # 32
000F C299 309 CLR TI
0011 750001 F 310 MOV trance,#01H
311 ; }
312 ; SOURCE LINE # 33
0014 313 ?C0004:
A51 MACRO ASSEMBLER STEST 05/05/2004 02:05:29 PAGE 6
0014 32 314 RETI
315 ; END OF uart
316
317 ;
318 ;
319 ; void Delay_110(void) //延时110微秒,24M晶振
320
---- 321 RSEG ?PR?Delay_110?STEST
0000 322 Delay_110:
323 ; SOURCE LINE # 36
324 ; {EA=0;
325 ; SOURCE LINE # 37
0000 C2AF 326 CLR EA
327 ; #pragma asm
328 ; MOV R0,#34H
0002 7834 329 MOV R0,#34H
330 ; MOV R1,#02H
0004 7902 331 MOV R1,#02H
332 ; TSR2:
0006 333 TSR2:
334 ; DJNZ R0,TSR2
0006 D8FE 335 DJNZ R0,TSR2
336 ; MOV R0,#34H
0008 7834 337 MOV R0,#34H
338 ; DJNZ R1,TSR2
000A D9FA 339 DJNZ R1,TSR2
340 ; #pragma endasm
341 ; EA=1;}
342 ; SOURCE LINE # 46
000C D2AF 343 SETB EA
000E 22 344 RET
345 ; END OF Delay_110
346
347 ;
348 ; void Delay_510(void) //延时510微秒,24M晶振
349
---- 350 RSEG ?PR?Delay_510?STEST
0000 351 Delay_510:
352 ; SOURCE LINE # 48
353 ; {EA=0;
354 ; SOURCE LINE # 49
0000 C2AF 355 CLR EA
356 ; #pragma asm
357 ; nop
0002 00 358 nop
359 ; nop
0003 00 360 nop
361 ; MOV R0,#7DH
0004 787D 362 MOV R0,#7DH
363 ; MOV R1,#04H
0006 7904 364 MOV R1,#04H
365 ; TSR1:
0008 366 TSR1:
367 ; DJNZ R0,TSR1
0008 D8FE 368 DJNZ R0,TSR1
369 ; MOV R0,#7DH
000A 787D 370 MOV R0,#7DH
371 ; DJNZ R1,TSR1
000C D9FA 372 DJNZ R1,TSR1
373 ; #pragma endasm
374 ; EA=1;}
375 ; SOURCE LINE # 60
000E D2AF 376 SETB EA
0010 22 377 RET
378 ; END OF Delay_510
379
A51 MACRO ASSEMBLER STEST 05/05/2004 02:05:29 PAGE 7
380 ;
381 ; void InitDS1820(void) //初始化DS1820
382
---- 383 RSEG ?PR?InitDS1820?STEST
0000 384 InitDS1820:
385 ; SOURCE LINE # 62
386 ; { EA=0;
387 ; SOURCE LINE # 63
0000 C2AF 388 CLR EA
389 ; TMPort = 1; //拉高TMPort
390 ; SOURCE LINE # 64
0002 D297 391 SETB P1_7
392 ; _nop_();//保持一个周期
393 ; SOURCE LINE # 65
0004 00 394 NOP
395 ; _nop_();
396 ; SOURCE LINE # 66
0005 00 397 NOP
398 ; TMPort = 0; //拉低TMPort
399 ; SOURCE LINE # 67
0006 C297 400 CLR P1_7
401 ; Delay_510(); //延时 DS1820复位时间要500us的低电平
402 ; SOURCE LINE # 68
0008 120000 F 403 LCALL Delay_510
404 ; TMPort = 1; //拉高TMPort
405 ; SOURCE LINE # 69
000B D297 406 SETB P1_7
407 ; Delay_110(); //延时110us 等碊S1820回应
408 ; SOURCE LINE # 70
000D 120000 F 409 LCALL Delay_110
410 ; if (!TMPort) //回应信号为低电平
411 ; SOURCE LINE # 71
0010 209704 412 JB P1_7,?C0007
413 ; {DS1820ON=1;}
414 ; SOURCE LINE # 72
0013 D200 F 415 SETB DS1820ON
0015 8002 416 SJMP ?C0008
0017 417 ?C0007:
418 ; else
419 ; {DS1820ON=0;}
420 ; SOURCE LINE # 74
0017 C200 F 421 CLR DS1820ON
0019 422 ?C0008:
423 ; Delay_110(); //延时
424 ; SOURCE LINE # 75
0019 120000 F 425 LCALL Delay_110
426 ; Delay_110();
427 ; SOURCE LINE # 76
001C 120000 F 428 LCALL Delay_110
429 ; TMPort=1; //拉高TMPort
430 ; SOURCE LINE # 77
001F D297 431 SETB P1_7
432 ; EA=1;
433 ; SOURCE LINE # 78
0021 D2AF 434 SETB EA
435 ; }
436 ; SOURCE LINE # 79
0023 22 437 RET
438 ; END OF InitDS1820
439
440 ;
441 ;
442 ; void ds1820command(unsigned char a) //写ds1820命令函省
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -