📄 18b20.lst
字号:
HI-TECH Software PICC Macro Assembler V9.60PL1
Mon Jun 02 12:02:07 2008
1 processor 16F877A
2 opt pw 79
3 psect text0,local,class=CODE,delta=2
4 psect config,global,class=CONFIG,delta=2
5 psect rdata_0,global,class=BANK0,space=1,delta
+ =1
6 psect idata_0,global,class=CODE,delta=2
7 psect text1,local,class=CODE,delta=2
8 psect text2,local,class=CODE,delta=2
9 psect text3,local,class=CODE,delta=2
10 psect text4,local,class=CODE,delta=2
11 psect text5,local,class=CODE,delta=2
12 psect text6,local,class=CODE,delta=2
13 psect text7,local,class=CODE,delta=2
14 psect rbit_0,global,bit,class=BANK0,space=1,de
+ lta=1
15 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
16 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
17 0000
18 0000
19 0000
20 0000
21 0000
22 0000
23 0000
24 0000
25 0000
26 0000 ;#
27
28 psect text0
29 0637 _delay
30 ; _x assigned to ?a_delay+0
31 0000 _delay$x set ?a_delay
32 ; _z assigned to ?a_delay+1
33 0000 _delay$z set ?a_delay+1
34 ;_x stored from w
35 0637 0183 clrf 3 ;select bank 0
36 0638 00B4 movwf ?a_delay
37 0639 l4
38 ;18B20.c: 38: void delay(char x,char y)
39 ;18B20.c: 42: z=y;
40 0639 0833 movf ?_delay,w
41 063A 00B5 movwf ?a_delay+1
42 063B l7
43 ;18B20.c: 43: do{;}while(--z);
44 063B 0BB5 decfsz ?a_delay+1
45 063C 2E3B goto l7
46 ;18B20.c: 44: }while(--x);
47 063D 0BB4 decfsz ?a_delay
48 063E 2E39 goto l4
49 063F 0008 return
50
51 psect config
52 2007 1832 dw 6194 ;#
53
54 psect rdata_0
55 0036 _table
_table
56 0036 ds 1
ds 1
57 0037 ds 1
ds 1
58 0038 ds 1
ds 1
59 0039 ds 1
ds 1
60 003A ds 1
ds 1
61 003B ds 1
ds 1
62 003C ds 1
ds 1
63 003D ds 1
ds 1
64 003E ds 1
ds 1
65 003F ds 1
66 0000 _delay$y set ?_delay
67
68 psect idata_0
69 07F6 34C0 retlw -64
70 07F7 34F9 retlw -7
71 07F8 34A4 retlw -92
72 07F9 34B0 retlw -80
73 07FA 3499 retlw -103
74 07FB 3492 retlw -110
75 07FC 3482 retlw -126
76 07FD 34F8 retlw -8
77 07FE 3480 retlw -128
78 07FF 3490 retlw -112
79
80 psect text1
81 06A5 _display
82 ;18B20.c: 51: void display()
83 06A5 1683 bsf 3,5
84 06A6 1303 bcf 3,6 ;carry unused
85 06A7 0185 clrf 5 ;volatile
86 ;18B20.c: 54: PORTD=table[shi];
87 06A8 1283 bcf 3,5
88 06A9 0828 movf _shi,w
89 06AA 3E36 addlw _table
90 06AB 0084 movwf 4
91 06AC 1383 bcf 3,7
92 06AD 0800 movf 0,w
93 06AE 0088 movwf 8 ;volatile
94 ;18B20.c: 55: PORTA=0x1f;
95 06AF 301F movlw 31
96 06B0 0085 movwf 5 ;volatile
97 ;18B20.c: 56: delay(10,70);
98 06B1 3046 movlw 70
99 06B2 00B3 movwf ?_delay
100 06B3 300A movlw 10
101 06B4 2637 call _delay
102 ;18B20.c: 57: PORTD=table[ge]&0X7F;
103 06B5 0826 movf _ge,w
104 06B6 3E36 addlw _table
105 06B7 0084 movwf 4
106 06B8 1383 bcf 3,7
107 06B9 0800 movf 0,w
108 06BA 397F andlw 127
109 06BB 0088 movwf 8 ;volatile
110 ;18B20.c: 58: PORTA=0x2f;
111 06BC 302F movlw 47
112 06BD 0085 movwf 5 ;volatile
113 ;18B20.c: 59: delay(10,70);
114 06BE 3046 movlw 70
115 06BF 00B3 movwf ?_delay
116 06C0 300A movlw 10
117 06C1 2637 call _delay
118 ;18B20.c: 60: PORTD=table[shifen];
119 06C2 0829 movf _shifen,w
120 06C3 3E36 addlw _table
121 06C4 0084 movwf 4
122 06C5 1383 bcf 3,7
123 06C6 0800 movf 0,w
124 06C7 0088 movwf 8 ;volatile
125 ;18B20.c: 61: PORTA=0x37;
126 06C8 3037 movlw 55
127 06C9 0085 movwf 5 ;volatile
128 ;18B20.c: 62: delay(10,70);
129 06CA 3046 movlw 70
130 06CB 00B3 movwf ?_delay
131 06CC 300A movlw 10
132 06CD 2637 call _delay
133 ;18B20.c: 63: PORTD=table[baifen];
134 06CE 0825 movf _baifen,w
135 06CF 3E36 addlw _table
136 06D0 0084 movwf 4
137 06D1 1383 bcf 3,7
138 06D2 0800 movf 0,w
139 06D3 0088 movwf 8 ;volatile
140 ;18B20.c: 64: PORTA=0x3b;
141 06D4 303B movlw 59
142 06D5 0085 movwf 5 ;volatile
143 ;18B20.c: 65: delay(10,70);
144 06D6 3046 movlw 70
145 06D7 00B3 movwf ?_delay
146 06D8 300A movlw 10
147 06D9 2637 call _delay
148 ;18B20.c: 66: PORTD=table[qianfen];
149 06DA 0827 movf _qianfen,w
150 06DB 3E36 addlw _table
151 06DC 0084 movwf 4
152 06DD 1383 bcf 3,7
153 06DE 0800 movf 0,w
154 06DF 0088 movwf 8 ;volatile
155 ;18B20.c: 67: PORTA=0x3d;
156 06E0 303D movlw 61
157 06E1 0085 movwf 5 ;volatile
158 ;18B20.c: 68: delay(10,70);
159 06E2 3046 movlw 70
160 06E3 00B3 movwf ?_delay
161 06E4 300A movlw 10
162 06E5 2637 call _delay
163 ;18B20.c: 69: PORTD=table[wanfen];
164 06E6 082A movf _wanfen,w
165 06E7 3E36 addlw _table
166 06E8 0084 movwf 4
167 06E9 1383 bcf 3,7
168 06EA 0800 movf 0,w
169 06EB 0088 movwf 8 ;volatile
170 ;18B20.c: 70: PORTA=0x3e;
171 06EC 303E movlw 62
172 06ED 0085 movwf 5 ;volatile
173 ;18B20.c: 71: delay(10,70);
174 06EE 3046 movlw 70
175 06EF 00B3 movwf ?_delay
176 06F0 300A movlw 10
177 06F1 2E37 goto _delay
178
179 psect text2
180 062F _init
181 ;18B20.c: 76: void init()
182 062F 3007 movlw 7
183 0630 1683 bsf 3,5
184 0631 1303 bcf 3,6 ;carry unused
185 0632 009F movwf 31 ;volatile
186 ;18B20.c: 79: TRISA=0X00;
187 0633 0185 clrf 5 ;volatile
188 ;18B20.c: 80: TRISD=0X00;
189 0634 0188 clrf 8 ;volatile
190 ;18B20.c: 81: }
191 0635 1283 bcf 3,5
192 0636 0008 return ;W free
193
194 psect text3
195 0640 _reset
196 ; _presence assigned to ?a_reset+0
197 0000 _reset$presence set ?a_reset
198 ;18B20.c: 85: reset(void)
199 0640 0183 clrf 3 ;select bank 0
200 0641 01B0 clrf ?a_reset
201 0642 0AB0 incf ?a_reset
202 ;18B20.c: 88: while(presence)
203 0643 2E5A goto l11
204 0644 l12
205 ;18B20.c: 89: {
206 0644 1105 bcf 5,2
207 0645 1683 bsf 3,5
208 0646 1105 bcf 5,2
209 ;18B20.c: 91: delay(2,70);
210 0647 3046 movlw 70
211 0648 1283 bcf 3,5
212 0649 00B3 movwf ?_delay
213 064A 3002 movlw 2
214 064B 2637 call _delay
215 ;18B20.c: 92: TRISA2 =1;
216 064C 1683 bsf 3,5
217 064D 1505 bsf 5,2
218 ;18B20.c: 93: delay(2,8);
219 064E 3008 movlw 8
220 064F 1283 bcf 3,5
221 0650 00B3 movwf ?_delay
222 0651 3002 movlw 2
223 0652 2637 call _delay
224 0653 01B0 clrf ?a_reset
225 ;18B20.c: 94: if(RA2==1) presence=1;
226 0654 1905 btfsc 5,2
227 0655 0AB0 incf ?a_reset
228 ;18B20.c: 95: else presence=0;
229 ;18B20.c: 96: delay(2,60);
230 0656 303C movlw 60
231 0657 00B3 movwf ?_delay
232 0658 3002 movlw 2
233 0659 2637 call _delay
234 065A l11
235 065A 08B0 movf ?a_reset
236 065B 1903 btfsc 3,2
237 065C 0008 return
238 065D 2E44 goto l12
239
240 psect text4
241 065E _write_byte
242 ; _temp assigned to ?a_write_byte+0
243 0000 _write_byte$temp set ?a_write_byte
244 ; _val assigned to ?a_write_byte+1
245 0000 _write_byte$val set ?a_write_byte+1
246 ; _i assigned to ?a_write_byte+2
247 0000 _write_byte$i set ?a_write_byte+2
248 ;_val stored from w
249 065E 0183 clrf 3 ;select bank 0
250 065F 00B1 movwf ?a_write_byte+1
251 ;18B20.c: 102: void write_byte(unsigned char va
+ l)
252 0660 3008 movlw 8
253 0661 00B2 movwf ?a_write_byte+2
254 0662 l17
255 ;18B20.c: 107: {
256 0662 0831 movf ?a_write_byte+1,w
257 0663 3901 andlw 1
258 0664 00B0 movwf ?a_write_byte
259 ;18B20.c: 109: RA2 = 0; TRISA2 = 0;
260 0665 1105 bcf 5,2
261 0666 1683 bsf 3,5
262 0667 1105 bcf 5,2
263 ;18B20.c: 110: asm("nop");
264 0668 0000 nop ;#
265 ;18B20.c: 111: asm("nop");
266 0669 0000 nop ;#
267 ;18B20.c: 112: asm("nop");
268 066A 0000 nop ;#
269 ;18B20.c: 113: asm("nop");
270 066B 0000 nop ;#
271 ;18B20.c: 114: asm("nop");
272 066C 0000 nop ;#
273 ;18B20.c: 115: if(temp==1) TRISA2 =1;
274 066D 1283 bcf 3,5
275 066E 0B30 decfsz ?a_write_byte,w
276 066F 2E72 goto l20
277 0670 1683 bsf 3,5
278 0671 1505 bsf 5,2
279 0672 l20
280 ;18B20.c: 116: delay(2,7);
281 0672 3007 movlw 7
282 0673 1283 bcf 3,5
283 0674 00B3 movwf ?_delay
284 0675 3002 movlw 2
285 0676 2637 call _delay
286 ;18B20.c: 117: TRISA2 =1;
287 0677 1683 bsf 3,5
288 0678 1505 bsf 5,2
289 ;18B20.c: 118: asm("nop");
290 0679 0000 nop ;#
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -