📄 wsd1.ls1
字号:
444 ; 6899,6887,6875,6863,6851,6839,6827,6815,6803,6791,
445 ; 6775,6763,6751,6739,6727,6715,6703,6691,6679,6667,
446 ; 6648,6636,6624,6612,6600,6588,6576,6564,6552,6540,
447 ; 6507,6495,6483,6471,6469,6447,6435,6423,6411,6409,
448 ; 6381,6369,6357,6345,6333,6321,6309,6297,6285,6273,
449 ; 6238,6226,6214,6202,6190,6178,6166,6154,6142,6130,
450 ; 6068,6056,6044,6032,6020,6018,6006,5994,5982,5970,
451 ; };
452 ; /*
453 ; {
454 ; 5970,5982,5994,6006,6018,6020,6032,6044,6056,6068,
A51 MACRO ASSEMBLER WSD1 11/03/2004 13:56:12 PAGE 8
455 ; 6130,6142,6154,6166,6178,6190,6202,6214,6226,6238,
456 ; 6273,6285,6297,6309,6321,6333,6345,6357,6369,6381,
457 ; 6409,6411,6423,6435,6447,6469,6471,6483,6495,6507,
458 ; 6540,6552,6564,6576,6588,6600,6612,6624,6636,6648,
459 ; 6667,6679,6691,6703,6715,6727,6739,6751,6763,6775,
460 ; 6791,6803,6815,6827,6839,6851,6863,6875,6887,6899,
461 ; 6913,6925,6937,6949,6961,6973,6985,6997,7009,7021,
462 ; 7035,7047,7059,7071,7083,7095,7117,7129,7141,7153,
463 ; 7159,7171,7183,7195,7207,7219,7221,7233,7245,7285,
464 ; };
465 ; */
466 ; //-----------------------------
467 ; void delay1(uint ms)
468
---- 469 RSEG ?PR?_delay1?WSD1
0000 470 L?0098:
471 USING 0
0000 472 L?0099:
0000 900000 F 473 MOV DPTR,#DAT1
0003 93 474 MOVC A,@A+DPTR
0004 FF 475 MOV R7,A
0005 120000 F 476 LCALL _d595
0008 477 L?0100:
0008 C296 478 CLR SRCLK
000A D296 479 SETB SRCLK
000C 7F1E 480 MOV R7,#01EH
000E 7E00 481 MOV R6,#00H
0010 482 _delay1:
483 USING 0
484 ; SOURCE LINE # 88
485 ;---- Variable 'ms?040' assigned to Register 'R6/R7' ----
486 ; {
487 ; SOURCE LINE # 89
488 ; uint i;
489 ; for(i=0;i<ms;i++); //Feed the dog
490 ; SOURCE LINE # 91
491 ;---- Variable 'i?041' assigned to Register 'R4/R5' ----
0010 E4 492 CLR A
0011 FD 493 MOV R5,A
0012 FC 494 MOV R4,A
0013 495 ?C0001:
0013 C3 496 CLR C
0014 ED 497 MOV A,R5
0015 9F 498 SUBB A,R7
0016 EC 499 MOV A,R4
0017 9E 500 SUBB A,R6
0018 5007 501 JNC ?C0004
001A 0D 502 INC R5
001B BD0001 503 CJNE R5,#00H,?C0097
001E 0C 504 INC R4
001F 505 ?C0097:
001F 80F2 506 SJMP ?C0001
507 ; }
508 ; SOURCE LINE # 92
0021 509 ?C0004:
0021 22 510 RET
511 ; END OF _delay1
512
513 ; //*******************************************
514 ; void d595(uchar x)
515
---- 516 RSEG ?PR?_d595?WSD1
0000 517 L?0101:
518 USING 0
0000 E4 519 CLR A
0001 93 520 MOVC A,@A+DPTR
A51 MACRO ASSEMBLER WSD1 11/03/2004 13:56:12 PAGE 9
0002 FF 521 MOV R7,A
0003 522 _d595:
523 USING 0
524 ; SOURCE LINE # 94
525 ;---- Variable 'x?142' assigned to Register 'R7' ----
526 ; {
527 ; SOURCE LINE # 95
528 ; uchar temp,j;
529 ; temp=x;
530 ; SOURCE LINE # 97
531 ;---- Variable 'temp?143' assigned to Register 'R7' ----
532 ; if(db==1)
533 ; SOURCE LINE # 98
0003 300006 F 534 JNB db?,?C0005
535 ; {
536 ; SOURCE LINE # 99
537 ; if(db1==1){temp=temp|4;}
538 ; SOURCE LINE # 100
0006 300003 F 539 JNB db1,?C0005
0009 430704 540 ORL AR7,#04H
541 ; }
542 ; SOURCE LINE # 101
000C 543 ?C0005:
544 ; for (j=0;j<8;j++){
545 ; SOURCE LINE # 102
546 ;---- Variable 'j?144' assigned to Register 'R6' ----
000C E4 547 CLR A
000D FE 548 MOV R6,A
000E 549 ?C0007:
550 ; temp=temp>>1; SER=CY; CLK=1; CLK=0;
551 ; SOURCE LINE # 103
000E EF 552 MOV A,R7
000F C3 553 CLR C
0010 13 554 RRC A
0011 FF 555 MOV R7,A
0012 9294 556 MOV SER,C
0014 D295 557 SETB CLK
0016 C295 558 CLR CLK
559 ; }
560 ; SOURCE LINE # 104
0018 0E 561 INC R6
0019 BE08F2 562 CJNE R6,#08H,?C0007
563 ; }
564 ; SOURCE LINE # 105
001C 565 ?C0010:
001C 22 566 RET
567 ; END OF _d595
568
569 ; /*-------------------------------*/
570 ; uint cjtemp(void)
571
---- 572 RSEG ?PR?cjtemp?WSD1
0000 573 cjtemp:
574 USING 0
575 ; SOURCE LINE # 107
576 ; {uint z;
577 ; SOURCE LINE # 108
578 ;
579 ; #pragma asm
580 ; GET_TEMP:
0000 581 GET_TEMP:
582 ; //CLR EA ;使用ds1820一定要禁止任何中断产生
583
584 ; ACALL INT ;调用初使化子程序
0000 1100 F 585 ACALL INT ;调用初使化子程序
586 ; MOV A,#0CCH
A51 MACRO ASSEMBLER WSD1 11/03/2004 13:56:12 PAGE 10
0002 74CC 587 MOV A,#0CCH
588 ; ACALL WRITE ;送入跳过ROM命令
0004 1100 F 589 ACALL WRITE ;送入跳过ROM命令
590 ; MOV A, #44H
0006 7444 591 MOV A, #44H
592 ; ACALL WRITE ;送入温度转换命令
0008 1100 F 593 ACALL WRITE ;送入温度转换命令
594 ; ACALL INT ;温度转换完全,再次初使化ds1820
000A 1100 F 595 ACALL INT ;温度转换完全,再次初使化ds1820
596 ; MOV A,#0CCH
000C 74CC 597 MOV A,#0CCH
598 ; ACALL WRITE ;送入跳过ROM命令
000E 1100 F 599 ACALL WRITE ;送入跳过ROM命令
600 ; MOV A,#0BEH
0010 74BE 601 MOV A,#0BEH
602 ; ACALL WRITE ;送入读温度暂存器命令
0012 1100 F 603 ACALL WRITE ;送入读温度暂存器命令
604 ; ACALL READ
0014 1100 F 605 ACALL READ
606 ; mov r7,a ;读出温度值低字节存入R7
0016 FF 607 mov r7,a ;读出温度值低字节存入R7
608 ; ACALL READ
0017 1100 F 609 ACALL READ
610 ; ;lr ACC.7
611 ;lr ACC.7
612 ; mov r6,a ;读出谩度值高字节存入R6
0019 FE 613 mov r6,a ;读出谩度值高字节存入R6
614 ; SETB EA
001A D2AF 615 SETB EA
616 ; RET
001C 22 617 RET
618 ; INT:
001D 619 INT:
620 ; CLR EA ;初始化ds1820子程序
001D C2AF 621 CLR EA ;初始化ds1820子程序
622 ; L0:CLR ds1820 ;ds1820总线为低复位电平87460452
001F C2B4 623 L0:CLR ds1820 ;ds1820总线为低复位电平87460452
624 ; MOV R2,#200
0021 7AC8 625 MOV R2,#200
626 ; L1:CLR ds1820
0023 C2B4 627 L1:CLR ds1820
628 ; DJNZ R2,L1 ;总线复位电平保持400us
0025 DAFC 629 DJNZ R2,L1 ;总线复位电平保持400us
630 ; SETB ds1820 ;释放ds1820总线
0027 D2B4 631 SETB ds1820 ;释放ds1820总线
632 ; MOV R2,#30
0029 7A1E 633 MOV R2,#30
634 ; L4:DJNZ R2,L4 ;释放ds1820总线保持60us
002B DAFE 635 L4:DJNZ R2,L4 ;释放ds1820总线保持60us
636 ; CLR C ;清存在信号(存在C=0,不存在C=1)
002D C3 637 CLR C ;清存在信号(存在C=0,不存在C=1)
638 ; ORL C,ds1820
002E 72B4 639 ORL C,ds1820
640 ; ;JC L0
641 ;JC L0
642 ; MOV R6,#80
0030 7E50 643 MOV R6,#80
644 ; L5:ORL C,ds1820
0032 72B4 645 L5:ORL C,ds1820
646 ; JC L3
0034 4002 647 JC L3
648 ; DJNZ R6,L5
0036 DEFA 649 DJNZ R6,L5
650 ; ;AJMP L0
651 ;AJMP L0
652 ; L3:MOV R2,#240
A51 MACRO ASSEMBLER WSD1 11/03/2004 13:56:12 PAGE 11
0038 7AF0 653 L3:MOV R2,#240
654 ; L2:DJNZ R2,L2
003A DAFE 655 L2:DJNZ R2,L2
656 ; SETB EA
003C D2AF 657 SETB EA
658 ; RET
003E 22 659 RET
660 ; WRITE: ;向ds1820写操作命令子程序
003F 661 WRITE: ;向ds1820写操作命令子程序
662 ; CLR EA
003F C2AF 663 CLR EA
664 ; MOV R3,#8 ;写入ds1820的bit数,一个字节8个bit
0041 7B08 665 MOV R3,#8 ;写入ds1820的bit数,一个字节8个bit
666 ; WR1:SETB ds1820
0043 D2B4 667 WR1:SETB ds1820
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -