📄 ds18b20.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL2
Serial number: HCPIC-01234 Thu Apr 16 11:21:36 2009
Licensed to: SHAN
1 processor 16F877A
2 opt pw 79
3 psect __Z01234RS_,global,delta=1
4 psect rdata_0,global,class=BANK0,space=1,delta
+ =1
5 psect idata_0,global,class=CODE,delta=2
6 psect strings,global,class=STRING,delta=2
7 psect const1,local,class=CONST,delta=2
8 psect text2,local,class=CODE,delta=2
9 psect text4,local,class=CODE,delta=2
10 psect text5,local,class=CODE,delta=2
11 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
12 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
13 0000
14 0000
15 0000
16 0000
17 0000
18 0000
19 0000
20 0000
21 0000
22 0000
23
24 psect __Z01234RS_
25 0190
26 0190
27
28 psect rdata_0
29 0031 _temp_data
30 0031 ds 1
31 0032 ds 1
32 0033 _display
33 0033 ds 1
34 0034 ds 1
35 0035 ds 1
36 0036 ds 1
37 0037 ds 1
38
39 psect idata_0
40 07F9 3400 retlw 0
41 07FA 3400 retlw 0
42 07FB 3400 retlw 0
43 07FC 3400 retlw 0
44 07FD 3400 retlw 0
45 07FE 3400 retlw 0
46 07FF 3400 retlw 0
47
48 psect const1
49 0055 0782 addwf 2
50 0056 _ditab
51 0056 3400 retlw 0
52 0057 3406 retlw 6
53 0058 340D retlw 13
54 0059 3412 retlw 18
55 005A 3419 retlw 25
56 005B 341F retlw 31
57 005C 3426 retlw 38
58 005D 342C retlw 44
59 005E 3432 retlw 50
60 005F 3438 retlw 56
61 0060 343F retlw 63
62 0061 3445 retlw 69
63 0062 344B retlw 75
64 0063 3451 retlw 81
65 0064 3458 retlw 88
66 0065 345E retlw 94
67
68 psect text2
69 ;DS18B20.c: 52: unsigned char DS18B20_READ_BYTE
+ (void)
70 ;DS18B20.c: 53: {
71 0695 _DS18B20_READ_BYTE
72 ; _i assigned to ?a_DS18B20_READ_BYTE+0
73 0000 _DS18B20_READ_BYTE$i set ?a_DS18B20_READ_BYTE
74 ; _value assigned to ?a_DS18B20_READ_BYTE+1
75 0000 _DS18B20_READ_BYTE$value set ?a_DS18B20_READ_BY
+ TE+1
76 ; __dcnt assigned to ?a_DS18B20_READ_BYTE+2
77 0000 _DS18B20_READ_BYTE$_dcnt set ?a_DS18B20_READ_BY
+ TE+2
78 ;DS18B20.c: 54: unsigned char i;
79 0695 0183 clrf 3 ;select bank 0
80 0696 01A7 clrf ?a_DS18B20_READ_BYTE+1
81 ;DS18B20.c: 56: for (i=8;i>0;i--)
82 0697 3008 movlw 8
83 0698 00A6 movwf ?a_DS18B20_READ_BYTE
84 0699 l30
85 ;DS18B20.c: 57: {
86 ;DS18B20.c: 58: TRISC1=1;asm("nop");asm("nop");
87 0699 1683 bsf 3,5
88 069A 1487 bsf 7,1
89 069B 0000 nop ;#
90 069C 0000 nop ;#
91 ;DS18B20.c: 59: value>>=1;
92 069D 1003 bcf 3,0
93 069E 1283 bcf 3,5
94 069F 0CA7 rrf ?a_DS18B20_READ_BYTE+1
95 ;DS18B20.c: 60: TRISC1=0;RC1=0;
96 06A0 1683 bsf 3,5
97 06A1 1087 bcf 7,1
98 06A2 1283 bcf 3,5
99 06A3 1087 bcf 7,1
100 ;DS18B20.c: 61: asm("nop");asm("nop");asm("nop"
+ );asm("nop");
101 06A4 0000 nop ;#
102 06A5 0000 nop ;#
103 06A6 0000 nop ;#
104 06A7 0000 nop ;#
105 ;DS18B20.c: 62: TRISC1=1;asm("nop");asm("nop");
+ asm("nop");asm("nop");
106 06A8 1683 bsf 3,5
107 06A9 1487 bsf 7,1
108 06AA 0000 nop ;#
109 06AB 0000 nop ;#
110 06AC 0000 nop ;#
111 06AD 0000 nop ;#
112 ;DS18B20.c: 63: if(RC1)value|=0x80;
113 06AE 1283 bcf 3,5
114 06AF 1887 btfsc 7,1
115 06B0 17A7 bsf ?a_DS18B20_READ_BYTE+1,7
116 ;DS18B20.c: 64: { unsigned char _dcnt; _dcnt =
+ (65)/((12*1000L)/(4*1000L))|1; while(--_dcnt !=
+ 0) continue; };
117 06B1 3015 movlw 21
118 06B2 00A8 movwf ?a_DS18B20_READ_BYTE+2
119 06B3 l35
120 06B3 0BA8 decfsz ?a_DS18B20_READ_BYTE+2
121 06B4 2EB3 goto l35
122 ;DS18B20.c: 65: }
123 06B5 0BA6 decfsz ?a_DS18B20_READ_BYTE
124 06B6 2E99 goto l30
125 ;DS18B20.c: 66: TRISC1=1;
126 06B7 1683 bsf 3,5
127 06B8 1487 bsf 7,1
128 ;DS18B20.c: 67: return(value);
129 06B9 1283 bcf 3,5
130 06BA 0827 movf ?a_DS18B20_READ_BYTE+1,w
131 ;DS18B20.c: 68: }
132 06BB 0008 return
133 ;DS18B20.c: 35: void DS18B20_WRITE_BYTE(unsigne
+ d char val)
134 ;DS18B20.c: 36: {
135 06BC _DS18B20_WRITE_BYTE
136 ; _val assigned to ?a_DS18B20_WRITE_BYTE+0
137 0000 _DS18B20_WRITE_BYTE$val set ?a_DS18B20_WRITE_BY
+ TE
138 ; _i assigned to ?a_DS18B20_WRITE_BYTE+1
139 0000 _DS18B20_WRITE_BYTE$i set ?a_DS18B20_WRITE_BYTE
+ +1
140 ; __dcnt assigned to ?a_DS18B20_WRITE_BYTE+2
141 0000 _DS18B20_WRITE_BYTE$_dcnt set ?a_DS18B20_WRITE_
+ BYTE+2
142 ; __dcnt assigned to ?a_DS18B20_WRITE_BYTE+2
143 0000 _DS18B20_WRITE_BYTE$_dcnt set ?a_DS18B20_WRITE_
+ BYTE+2
144 ;_val stored from w
145 06BC 0183 clrf 3 ;select bank 0
146 06BD 00A6 movwf ?a_DS18B20_WRITE_BYTE
147 ;DS18B20.c: 37: unsigned char i;
148 06BE 3008 movlw 8
149 06BF 00A7 movwf ?a_DS18B20_WRITE_BYTE+1
150 ;DS18B20.c: 39: {
151 ;DS18B20.c: 40: TRISC1=1;asm("nop");asm("nop");
152 06C0 1683 bsf 3,5
153 06C1 1487 bsf 7,1
154 06C2 L1
155 06C2 0000 nop ;#
156 06C3 0000 nop ;#
157 ;DS18B20.c: 41: TRISC1=0;RC1=0;asm("nop");asm("
+ nop");asm("nop");asm("nop");asm("nop");
158 06C4 1087 bcf 7,1
159 06C5 1283 bcf 3,5
160 06C6 1087 bcf 7,1
161 06C7 0000 nop ;#
162 06C8 0000 nop ;#
163 06C9 0000 nop ;#
164 06CA 0000 nop ;#
165 06CB 0000 nop ;#
166 ;DS18B20.c: 42: RC1 = val&0x01;
167 06CC 0C26 rrf ?a_DS18B20_WRITE_BYTE,w
168 06CD 1C03 btfss 3,0
169 06CE 2ED1 goto u70
170 06CF 1487 bsf 7,1
171 06D0 2ED2 goto u84
172 06D1 u70
173 06D1 1087 bcf 7,1
174 06D2 u84
175 ;DS18B20.c: 43: { unsigned char _dcnt; _dcnt =
+ (65)/((12*1000L)/(4*1000L))|1; while(--_dcnt !=
+ 0) continue; };
176 06D2 3015 movlw 21
177 06D3 1283 bcf 3,5
178 06D4 1303 bcf 3,6 ;carry unused
179 06D5 00A8 movwf ?a_DS18B20_WRITE_BYTE+2
180 06D6 l24
181 06D6 0BA8 decfsz ?a_DS18B20_WRITE_BYTE+2
182 06D7 2ED6 goto l24
183 ;DS18B20.c: 44: val=val/2;
184 06D8 1003 bcf 3,0
185 06D9 0CA6 rrf ?a_DS18B20_WRITE_BYTE
186 ;DS18B20.c: 45: }
187 06DA 03A7 decf ?a_DS18B20_WRITE_BYTE+1
188 ;DS18B20.c: 46: TRISC1=1;
189 06DB 1683 bsf 3,5
190 06DC 1487 bsf 7,1
191 06DD 1D03 btfss 3,2
192 06DE 2EC2 goto L1
193 ;DS18B20.c: 47: { unsigned char _dcnt; _dcnt =
+ (11)/((12*1000L)/(4*1000L))|1; while(--_dcnt !=
+ 0) continue; };
194 06DF 3003 movlw 3
195 06E0 1283 bcf 3,5
196 06E1 00A8 movwf ?a_DS18B20_WRITE_BYTE+2
197 06E2 l27
198 06E2 0BA8 decfsz ?a_DS18B20_WRITE_BYTE+2
199 06E3 2EE2 goto l27
200 06E4 0008 return
201 06E5 _DS18B20_RESET
202 ; _presence assigned to ?a_DS18B20_RESET+0
203 0000 _DS18B20_RESET$presence set ?a_DS18B20_RESET
204 ; __dcnt assigned to ?a_DS18B20_RESET+1
205 0000 _DS18B20_RESET$_dcnt set ?a_DS18B20_RESET+1
206 ; __dcnt assigned to ?a_DS18B20_RESET+1
207 0000 _DS18B20_RESET$_dcnt set ?a_DS18B20_RESET+1
208 ; __dcnt assigned to ?a_DS18B20_RESET+1
209 0000 _DS18B20_RESET$_dcnt set ?a_DS18B20_RESET+1
210 ;DS18B20.c: 12: char presence=1;
211 06E5 0183 clrf 3 ;select bank 0
212 06E6 01A6 clrf ?a_DS18B20_RESET
213 06E7 0AA6 incf ?a_DS18B20_RESET
214 ;DS18B20.c: 13: while(presence)
215 06E8 2F0C goto l2
216 ;DS18B20.c: 14: {
217 06E9 l6
218 ;DS18B20.c: 16: {
219 06E9 1683 bsf 3,5
220 06EA 1487 bsf 7,1
221 06EB 0000 nop ;#
222 06EC 0000 nop ;#
223 ;DS18B20.c: 18: TRISC1=0;RC1=0;
224 06ED 1087 bcf 7,1
225 06EE 1283 bcf 3,5
226 06EF 1087 bcf 7,1
227 ;DS18B20.c: 19: { unsigned char _dcnt; _dcnt =
+ (550)/((12*1000L)/(4*1000L))|1; while(--_dcnt !
+ = 0) continue; };
228 06F0 30B7 movlw -73
229 06F1 00A7 movwf ?a_DS18B20_RESET+1
230 06F2 l9
231 06F2 0BA7 decfsz ?a_DS18B20_RESET+1
232 06F3 2EF2 goto l9
233 ;DS18B20.c: 20: TRISC1=1;
234 06F4 1683 bsf 3,5
235 06F5 1487 bsf 7,1
236 ;DS18B20.c: 21: { unsigned char _dcnt; _dcnt =
+ (65)/((12*1000L)/(4*1000L))|1; while(--_dcnt !=
+ 0) continue; };
237 06F6 3015 movlw 21
238 06F7 1283 bcf 3,5
239 06F8 00A7 movwf ?a_DS18B20_RESET+1
240 06F9 l12
241 06F9 0BA7 decfsz ?a_DS18B20_RESET+1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -