📄 rs485.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-48944 Sun Oct 7 13:19:31 2007
Licensed to: ONE
1 processor 16F946
2 opt pw 79
3 psect __Z48944RS_,global,delta=1
4 psect text0,local,class=CODE,delta=2
5 psect text4,local,class=CODE,delta=2
6 psect strings,global,class=STRING,delta=2
7 psect const1,local,class=CONST,delta=2
8 psect const2,local,class=CONST,delta=2
9 psect text8,local,class=CODE,delta=2
10 psect text10,local,class=CODE,delta=2
11 psect text11,local,class=CODE,delta=2
12 psect text12,local,class=CODE,delta=2
13 psect text13,local,class=CODE,delta=2
14 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
15 psect rbss_1,global,class=BANK1,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 __Z48944RS_
29 01A0
30 01A0
31
32 psect text0
33 048D _Rs485Initialize
34 ; _cAddr assigned to ?a_Rs485Initialize+0
35 0000 _Rs485Initialize$cAddr set ?a_Rs485Initialize
36 ;_cAddr stored from w
37 048D 0183 clrf 3 ;select bank 0
38 048E 00C7 movwf ?a_Rs485Initialize
39 ;rs485.c: 49: cOurAddr = cAddr;
40 048F 00A6 movwf _cOurAddr
41 ;rs485.c: 50: cRS485State = 0;
42 0490 01A7 clrf _cRS485State
43 ;rs485.c: 51: RD4 = 0;
44 0491 1208 bcf 8,4
45 ;rs485.c: 52: RCIE = 1;
46 0492 1683 bsf 3,5
47 0493 168C bsf 12,5
48 ;rs485.c: 54: }
49 0494 1283 bcf 3,5
50 0495 0008 return
51
52 psect text4
53 0501 _Rs485GetPacket
54 ; _cCom assigned to ?a_Rs485GetPacket+0
55 0000 _Rs485GetPacket$cCom set ?a_Rs485GetPacket
56 ; _c assigned to ?a_Rs485GetPacket+1
57 0000 _Rs485GetPacket$c set ?a_Rs485GetPacket+1
58 ;_cCom stored from w
59 0501 0183 clrf 3 ;select bank 0
60 0502 00C9 movwf ?a_Rs485GetPacket
61 ;rs485.c: 249: unsigned char c;
62 0503 0084 movwf 4
63 0504 1383 bcf 3,7
64 0505 0823 movf _cCommand,w
65 0506 0080 movwf 0
66 ;rs485.c: 252: *cLen = cLenExpected;
67 0507 0847 movf ?_Rs485GetPacket,w
68 0508 0084 movwf 4
69 0509 0824 movf _cLenExpected,w
70 050A 0080 movwf 0
71 ;rs485.c: 253: for ( c=0; c < cLenExpected;c++
+ ) cData[c] = c485Buf[c];
72 050B 01CA clrf ?a_Rs485GetPacket+1
73 050C 2D19 goto l53
74 050D l50
75 050D 084A movf ?a_Rs485GetPacket+1,w
76 050E 3EA0 addlw _c485Buf
77 050F 0084 movwf 4
78 0510 1383 bcf 3,7
79 0511 0800 movf 0,w
80 0512 00F0 movwf btemp
81 0513 084A movf ?a_Rs485GetPacket+1,w
82 0514 0748 addwf ?_Rs485GetPacket+1,w
83 0515 0084 movwf 4
84 0516 0870 movf btemp,w
85 0517 0080 movwf 0
86 0518 0ACA incf ?a_Rs485GetPacket+1
87 0519 l53
88 0519 0824 movf _cLenExpected,w
89 051A 024A subwf ?a_Rs485GetPacket+1,w
90 051B 1C03 btfss 3,0
91 051C 2D0D goto l50
92 ;rs485.c: 255: cData[cLenExpected] = 0x00;
93 051D 0824 movf _cLenExpected,w
94 051E 0748 addwf ?_Rs485GetPacket+1,w
95 051F 0084 movwf 4
96 0520 1383 bcf 3,7
97 0521 0180 clrf 0
98 ;rs485.c: 256: }
99 0522 0008 return
100
101 psect const1
102 ;rs485.c: 267: const unsigned char CRC16_Lookup
+ High[16] = {
103 ;rs485.c: 268: 0x00, 0x10, 0x20, 0x30, 0x40, 0x
+ 50, 0x60, 0x70,
104 ;rs485.c: 269: 0x81, 0x91, 0xA1, 0xB1, 0xC1, 0x
+ D1, 0xE1, 0xF1
105 ;rs485.c: 270: };
106 0077 0782 addwf 2
107 0078 _CRC16_LookupHigh
108 0078 3400 retlw 0
109 0079 3410 retlw 16
110 007A 3420 retlw 32
111 007B 3430 retlw 48
112 007C 3440 retlw 64
113 007D 3450 retlw 80
114 007E 3460 retlw 96
115 007F 3470 retlw 112
116 0080 3481 retlw -127
117 0081 3491 retlw -111
118 0082 34A1 retlw -95
119 0083 34B1 retlw -79
120 0084 34C1 retlw -63
121 0085 34D1 retlw -47
122 0086 34E1 retlw -31
123 0087 34F1 retlw -15
124
125 psect const2
126 ;rs485.c: 271: const unsigned char CRC16_Lookup
+ Low[16] = {
127 ;rs485.c: 272: 0x00, 0x21, 0x42, 0x63, 0x84, 0x
+ A5, 0xC6, 0xE7,
128 ;rs485.c: 273: 0x08, 0x29, 0x4A, 0x6B, 0x8C, 0x
+ AD, 0xCE, 0xEF
129 ;rs485.c: 274: };
130 0066 0782 addwf 2
131 0067 _CRC16_LookupLow
132 0067 3400 retlw 0
133 0068 3421 retlw 33
134 0069 3442 retlw 66
135 006A 3463 retlw 99
136 006B 3484 retlw -124
137 006C 34A5 retlw -91
138 006D 34C6 retlw -58
139 006E 34E7 retlw -25
140 006F 3408 retlw 8
141 0070 3429 retlw 41
142 0071 344A retlw 74
143 0072 346B retlw 107
144 0073 348C retlw -116
145 0074 34AD retlw -83
146 0075 34CE retlw -50
147 0076 34EF retlw -17
148
149 psect text8
150 ;rs485.c: 324: void Rs485SendChar(unsigned char
+ c )
151 ;rs485.c: 325: {
152 0652 _Rs485SendChar
153 ; _c assigned to ?a_Rs485SendChar+0
154 0000 _Rs485SendChar$c set ?a_Rs485SendChar
155 ;_c stored from w
156 0652 0183 clrf 3 ;select bank 0
157 0653 00CC movwf ?a_Rs485SendChar
158 ;rs485.c: 326: TXREG = c;
159 0654 084C movf ?a_Rs485SendChar,w
160 0655 0099 movwf 25 ;volatile
161 ;rs485.c: 327: while ( !TRMT );
162 0656 l58
163 0656 1683 bsf 3,5
164 0657 1C98 btfss 24,1
165 0658 2E56 goto l58
166 ;rs485.c: 328: }
167 0659 1283 bcf 3,5
168 065A 0008 return
169 065B _Rs485SendPacket
170 ; _cCmd assigned to ?a_Rs485SendPacket+0
171 0000 _Rs485SendPacket$cCmd set ?a_Rs485SendPacket
172 ; _d assigned to ?a_Rs485SendPacket+1
173 0000 _Rs485SendPacket$d set ?a_Rs485SendPacket+1
174 ; _c assigned to ?a_Rs485SendPacket+2
175 0000 _Rs485SendPacket$c set ?a_Rs485SendPacket+2
176 ;_cCmd stored from w
177 065B 0183 clrf 3 ;select bank 0
178 065C 00C9 movwf ?a_Rs485SendPacket
179 ;rs485.c: 192: unsigned char c, d;
180 065D 1683 bsf 3,5
181 065E 128C bcf 12,5
182 ;rs485.c: 195: RD4 = 1;
183 065F 1283 bcf 3,5
184 0660 1608 bsf 8,4
185 ;rs485.c: 197: DelayMs(1);
186 0661 3001 movlw 1
187 0662 120A 118A 24A9 fcall _DelayMs
+ 120A 118A
188 ;rs485.c: 199: cCalcCrcHigh = 0xff;
189 0667 30FF movlw -1
190 0668 00A1 movwf _cCalcCrcHigh
191 ;rs485.c: 200: cCalcCrcLow = 0xff;
192 0669 00A2 movwf _cCalcCrcLow
193 ;rs485.c: 202: for ( c=0; c < 2; c++ ) Rs485Sen
+ dChar( 0xaa );
194 066A 01CB clrf ?a_Rs485SendPacket+2
195 066B l34
196 066B 30AA movlw -86
197 066C 2652 fcall _Rs485SendChar
198 066D 0ACB incf ?a_Rs485SendPacket+2
199 066E 3002 movlw 2
200 066F 024B subwf ?a_Rs485SendPacket+2,w
201 0670 1C03 btfss 3,0
202 0671 2E6B goto l34
203 ;rs485.c: 204: Rs485UpdateCrc( 0x02 );
204 0672 3002 movlw 2
205 0673 120A 118A 2752 fcall _Rs485UpdateCrc
+ 120A 118A
206 ;rs485.c: 205: Rs485SendChar( 0x02 );
207 0678 3002 movlw 2
208 0679 2652 fcall _Rs485SendChar
209 ;rs485.c: 206: Rs485UpdateCrc( cOurAddr );
210 067A 0826 movf _cOurAddr,w
211 067B 120A 118A 2752 fcall _Rs485UpdateCrc
+ 120A 118A
212 ;rs485.c: 207: Rs485SendChar( cOurAddr );
213 0680 0826 movf _cOurAddr,w
214 0681 2652 fcall _Rs485SendChar
215 ;rs485.c: 208: Rs485UpdateCrc( cLen );
216 0682 0847 movf ?_Rs485SendPacket,w
217 0683 120A 118A 2752 fcall _Rs485UpdateCrc
+ 120A 118A
218 ;rs485.c: 209: Rs485SendChar( cLen );
219 0688 0847 movf ?_Rs485SendPacket,w
220 0689 2652 fcall _Rs485SendChar
221 ;rs485.c: 210: Rs485UpdateCrc( cCmd );
222 068A 0849 movf ?a_Rs485SendPacket,w
223 068B 120A 118A 2752 fcall _Rs485UpdateCrc
+ 120A 118A
224 ;rs485.c: 211: Rs485SendChar( cCmd );
225 0690 0849 movf ?a_Rs485SendPacket,w
226 0691 2652 fcall _Rs485SendChar
227 ;rs485.c: 214: if ( cLen != 0 )
228 0692 08C7 movf ?_Rs485SendPacket
229 0693 1903 btfsc 3,2
230 0694 2EB5 goto l37
231 ;rs485.c: 215: {
232 0695 01CB clrf ?a_Rs485SendPacket+2
233 0696 l41
234 0696 0847 movf ?_Rs485SendPacket,w
235 0697 024B subwf ?a_Rs485SendPacket+2,w
236 0698 1803 btfsc 3,0
237 0699 2EA7 goto l39
238 ;rs485.c: 217: {
239 ;rs485.c: 218: d = cData[c];
240 069A 084B movf ?a_Rs485SendPacket+2,w
241 069B 0748 addwf ?_Rs485SendPacket+1,w
242 069C 0084 movwf 4
243 069D 1383 bcf 3,7
244 069E 0800 movf 0,w
245 069F 00CA movwf ?a_Rs485SendPacket+1
246 ;rs485.c: 219: Rs485UpdateCrc( d );
247 06A0 120A 118A 2752 fcall _Rs485UpdateCrc
+ 120A 118A
248 ;rs485.c: 220: }
249 06A5 0ACB incf ?a_Rs485SendPacket+2
250 06A6 2E96 goto l41
251 06A7 l39
252 ;rs485.c: 221: for ( c = 0; c < cLen; c++ )
253 06A7 01CB clrf ?a_Rs485SendPacket+2
254 06A8 l45
255 06A8 0847 movf ?_Rs485SendPacket,w
256 06A9 024B subwf ?a_Rs485SendPacket+2,w
257 06AA 1803 btfsc 3,0
258 06AB 2EB5 goto l37
259 ;rs485.c: 222: {
260 ;rs485.c: 223: d = cData[c];
261 06AC 084B movf ?a_Rs485SendPacket+2,w
262 06AD 0748 addwf ?_Rs485SendPacket+1,w
263 06AE 0084 movwf 4
264 06AF 1383 bcf 3,7
265 06B0 0800 movf 0,w
266 06B1 00CA movwf ?a_Rs485SendPacket+1
267 ;rs485.c: 224: Rs485SendChar( d );
268 06B2 2652 fcall _Rs485SendChar
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -