📄 wsd1.ls1
字号:
668 ; MOV R4,#8
0045 7C08 669 MOV R4,#8
670 ; RRC A ;把一个字节data(A)分成8个bit环移给 C
0047 13 671 RRC A ;把一个字节data(A)分成8个bit环移给 C
672 ; CLR ds1820 ;开始写入ds1820总线要处于复位(低)状态
0048 C2B4 673 CLR ds1820 ;开始写入ds1820总线要处于复位(低)状态
674 ; WR2:DJNZ R4,WR2 ;ds1820总线复位保持16us
004A DCFE 675 WR2:DJNZ R4,WR2 ;ds1820总线复位保持16us
676 ; MOV ds1820,C ;写入一个bit
004C 92B4 677 MOV ds1820,C ;写入一个bit
678 ; MOV R4,#20
004E 7C14 679 MOV R4,#20
680 ; WR3:DJNZ R4,WR3 ;等待40us
0050 DCFE 681 WR3:DJNZ R4,WR3 ;等待40us
682 ; DJNZ R3,WR1 ;写入下一个bit
0052 DBEF 683 DJNZ R3,WR1 ;写入下一个bit
684 ; SETB ds1820 ;重新释放ds1820总线
0054 D2B4 685 SETB ds1820 ;重新释放ds1820总线
686 ; SETB EA
0056 D2AF 687 SETB EA
688 ; RET
0058 22 689 RET
690 ; READ:
0059 691 READ:
692 ; CLR EA
0059 C2AF 693 CLR EA
694 ; MOV R6,#8 ;连续读8个bit
005B 7E08 695 MOV R6,#8 ;连续读8个bit
696 ; RE1:CLR ds1820 ;读前总线保持为低
005D C2B4 697 RE1:CLR ds1820 ;读前总线保持为低
698 ; MOV R4,#4
005F 7C04 699 MOV R4,#4
700 ; NOP
0061 00 701 NOP
702 ; SETB ds1820 ;开始读,总线释放
0062 D2B4 703 SETB ds1820 ;开始读,总线释放
704 ; RE2:DJNZ R4,RE2 ;持续8us
0064 DCFE 705 RE2:DJNZ R4,RE2 ;持续8us
706 ; MOV C,ds1820 ;从ds1820总线读得一个bit
0066 A2B4 707 MOV C,ds1820 ;从ds1820总线读得一个bit
708 ; RRC A ;把读得的位值环移给 A
0068 13 709 RRC A ;把读得的位值环移给 A
710 ; MOV R5,#30
0069 7D1E 711 MOV R5,#30
712 ; RE3:DJNZ R5,RE3 ;持续60us
006B DDFE 713 RE3:DJNZ R5,RE3 ;持续60us
714 ; DJNZ R6,RE1 ;读下一个bit
006D DEEE 715 DJNZ R6,RE1 ;读下一个bit
716 ; SETB ds1820 ;重新释放ds1820总线
006F D2B4 717 SETB ds1820 ;重新释放ds1820总线
718 ; SETB EA
A51 MACRO ASSEMBLER WSD1 11/03/2004 13:56:12 PAGE 12
0071 D2AF 719 SETB EA
720 ; RET
0073 22 721 RET
722 ; #pragma endasm
723 ;
724 ; return z;
725 ; SOURCE LINE # 184
0074 AE00 F 726 MOV R6,z?245
0076 AF00 F 727 MOV R7,z?245+01H
728 ; }
729 ; SOURCE LINE # 185
0078 730 ?C0011:
0078 22 731 RET
732 ; END OF cjtemp
733
734 ; //--------------------------------
735 ; uint wdcl(void)
736
---- 737 RSEG ?PR?wdcl?WSD1
0000 738 wdcl:
739 USING 0
740 ; SOURCE LINE # 187
741 ; {
742 ; SOURCE LINE # 188
743 ; wdz=cjtemp();
744 ; SOURCE LINE # 189
0000 120000 F 745 LCALL cjtemp
0003 8E00 F 746 MOV wdz,R6
0005 8F00 F 747 MOV wdz+01H,R7
748 ; if((wdz>>15)==1)
749 ; SOURCE LINE # 190
0007 E500 F 750 MOV A,wdz
0009 C4 751 SWAP A
000A 13 752 RRC A
000B 13 753 RRC A
000C 13 754 RRC A
000D 5401 755 ANL A,#01H
000F 6401 756 XRL A,#01H
0011 7006 757 JNZ ?C0012
758 ; {wdz=~wdz;}
759 ; SOURCE LINE # 191
0013 6300FF F 760 XRL wdz+01H,#0FFH
0016 6300FF F 761 XRL wdz,#0FFH
0019 762 ?C0012:
763 ; wdz=((0x0ff0&wdz)>>4)*10+((0x0f&wdz)*6/10);
764 ; SOURCE LINE # 192
0019 7E00 765 MOV R6,#00H
001B E500 F 766 MOV A,wdz+01H
001D 540F 767 ANL A,#0FH
001F FF 768 MOV R7,A
0020 7C00 769 MOV R4,#00H
0022 7D06 770 MOV R5,#06H
0024 120000 F 771 LCALL ?C?IMUL
0027 7D0A 772 MOV R5,#0AH
0029 120000 F 773 LCALL ?C?UIDIV
002C AA06 774 MOV R2,AR6
002E AB07 775 MOV R3,AR7
0030 E500 F 776 MOV A,wdz
0032 540F 777 ANL A,#0FH
0034 FE 778 MOV R6,A
0035 E500 F 779 MOV A,wdz+01H
0037 54F0 780 ANL A,#0F0H
0039 FF 781 MOV R7,A
003A EE 782 MOV A,R6
003B C4 783 SWAP A
003C F8 784 MOV R0,A
A51 MACRO ASSEMBLER WSD1 11/03/2004 13:56:12 PAGE 13
003D 54F0 785 ANL A,#0F0H
003F C8 786 XCH A,R0
0040 68 787 XRL A,R0
0041 FE 788 MOV R6,A
0042 EF 789 MOV A,R7
0043 C4 790 SWAP A
0044 540F 791 ANL A,#0FH
0046 48 792 ORL A,R0
0047 FF 793 MOV R7,A
0048 7C00 794 MOV R4,#00H
004A 7D0A 795 MOV R5,#0AH
004C 120000 F 796 LCALL ?C?IMUL
004F EF 797 MOV A,R7
0050 2B 798 ADD A,R3
0051 F500 F 799 MOV wdz+01H,A
0053 EE 800 MOV A,R6
0054 3A 801 ADDC A,R2
0055 F500 F 802 MOV wdz,A
803 ; if(wdz>1260){wdz=0;}
804 ; SOURCE LINE # 193
0057 D3 805 SETB C
0058 E500 F 806 MOV A,wdz+01H
005A 94EC 807 SUBB A,#0ECH
005C E500 F 808 MOV A,wdz
005E 9404 809 SUBB A,#04H
0060 4005 810 JC ?C0013
0062 E4 811 CLR A
0063 F500 F 812 MOV wdz,A
0065 F500 F 813 MOV wdz+01H,A
0067 814 ?C0013:
815 ; return wdz;
816 ; SOURCE LINE # 194
0067 AE00 F 817 MOV R6,wdz
0069 AF00 F 818 MOV R7,wdz+01H
819 ; }
820 ; SOURCE LINE # 195
006B 821 ?C0014:
006B 22 822 RET
823 ; END OF wdcl
824
825 ; /*-------------------------------*/
826 ; uchar RDSDZ(void)
827
---- 828 RSEG ?PR?RDSDZ?WSD1
0000 829 RDSDZ:
830 USING 0
831 ; SOURCE LINE # 197
832 ; {uchar i=0,z=0;
833 ; SOURCE LINE # 198
834 ;---- Variable 'i?446' assigned to Register 'R7' ----
0000 E4 835 CLR A
0001 FF 836 MOV R7,A
837 ;---- Variable 'z?447' assigned to Register 'R6' ----
0002 FE 838 MOV R6,A
0003 839 ?C0015:
840 ; static uchar a,S1,S2,S3;
841 ; while(z<100)
842 ; SOURCE LINE # 200
0003 EE 843 MOV A,R6
0004 C3 844 CLR C
0005 9464 845 SUBB A,#064H
0007 501F 846 JNC ?C0016
847 ; {
848 ; SOURCE LINE # 201
849 ; if(plz<SDTAB[i]){i++;}
850 ; SOURCE LINE # 202
A51 MACRO ASSEMBLER WSD1 11/03/2004 13:56:12 PAGE 14
0009 EF 851 MOV A,R7
000A 25E0 852 ADD A,ACC
000C 2400 F 853 ADD A,#LOW (SDTAB)
000E F582 854 MOV DPL,A
0010 E4 855 CLR A
0011 3400 F 856 ADDC A,#HIGH (SDTAB)
0013 F583 857 MOV DPH,A
0015 D3 858 SETB C
0016 7401 859 MOV A,#01H
0018 93 860 MOVC A,@A+DPTR
0019 9500 F 861 SUBB A,plz+01H
001B E4 862 CLR A
001C 93 863 MOVC A,@A+DPTR
001D 9500 F 864 SUBB A,plz
001F 4003 865 JC ?C0017
0021 0F 866 INC R7
0022 80DF 867 SJMP ?C0015
0024 868 ?C0017:
869 ; else{z=101;}
870 ; SOURCE LINE # 203
0024 7E65 871 MOV R6,#065H
872 ; }
873 ; SOURCE LINE # 204
0026 80DB 874 SJMP ?C0015
0028 875 ?C0016:
876 ; /*
877 ; if(msn==50)
878 ; {
879 ; a++;
880 ; if(a>4){a=1;}
881 ; switch(a)
882 ; {
883 ; case 1: S1=i; break; //
884 ; case 2: S2=i; break; //
885 ; case 3: S3=i; break; //
886 ; default:
887 ; SOUT=((S1+S2+S3)/3);
888 ; break; //
889 ; }
890 ; */
891 ; return i;
892 ; SOURCE LINE # 220
893 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -