📄 uart_s.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-90508 Sat Nov 10 14:20:28 2007
Licensed to: ONE
1 processor 16F648A
2 opt pw 79
3 psect __Z90508RS_,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 text0,local,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 text8,local,class=CODE,delta=2
11 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
12 psect rbss_1,global,class=BANK1,space=1,delta=
+ 1
13 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
14 0000
15 0000
16 0000
17 0000
18 0000
19 0000
20 0000
21 0000
22 0000
23 0000
24
25 psect __Z90508RS_
26 0123
27 0123
28
29 psect rdata_0
30 0044 _LocalAddr
31 0044 ds 1
32 0000 _ClearBus$ClearLength set ?_ClearBus
33
34 psect idata_0
35 07FF 3401 retlw 1
36
37 psect text0
38 0312 _ClearBus
39 ; _p_cleararray assigned to ?a_ClearBus+0
40 0000 _ClearBus$p_cleararray set ?a_ClearBus
41 ;_p_cleararray stored from w
42 0312 0183 clrf 3 ;select bank 0
43 0313 00AC movwf ?a_ClearBus
44 0314 l9
45 ;uart_s.c: 105: do
46 ;uart_s.c: 106: {
47 0314 082C movf ?a_ClearBus,w
48 0315 0084 movwf 4
49 0316 1383 bcf 3,7
50 0317 0180 clrf 0
51 0318 0AAC incf ?a_ClearBus
52 ;uart_s.c: 108: }
53 0319 0BAC decfsz ?_ClearBus
54 031A 2B14 goto l9
55 031B 0008 return
56
57 psect text1
58 ;uart_s.c: 114: void Uart_init(void)
59 ;uart_s.c: 115: {
60 03E7 _Uart_init
61 ; _BAUD assigned to ?a_Uart_init+0
62 0000 _Uart_init$BAUD set ?a_Uart_init
63 ;uart_s.c: 116: uint BAUD;
64 03E7 3006 movlw 6
65 03E8 1683 bsf 3,5
66 03E9 1303 bcf 3,6 ;carry unused
67 03EA 0486 iorwf 6 ;volatile
68 ;uart_s.c: 118: RBPU = 0;
69 03EB 1381 bcf 1,7
70 ;uart_s.c: 119: switch (1)
71 03EC 2BFF goto l12
72 03ED l13
73 ;uart_s.c: 120: {
74 03ED 30C0 movlw 192
75 03EE 1283 bcf 3,5
76 03EF 00AC movwf ?a_Uart_init
77 03F0 3012 movlw 18
78 03F1 2C19 goto L5
79 03F2 l14
80 ;uart_s.c: 122: case 1: BAUD = 9600; break;
81 03F2 3080 movlw 128
82 03F3 1283 bcf 3,5
83 03F4 00AC movwf ?a_Uart_init
84 03F5 3025 movlw 37
85 03F6 2C19 goto L5
86 03F7 l15
87 ;uart_s.c: 123: case 2: BAUD = 19200; break;
88 03F7 1283 bcf 3,5
89 03F8 01AC clrf ?a_Uart_init
90 03F9 304B movlw 75
91 03FA 2C19 goto L5
92 ;uart_s.c: 124: case 3: BAUD = 38400; break;
93 03FB l17
94 ;uart_s.c: 125: case 4: BAUD = 57600; break;
95 03FB 1283 bcf 3,5
96 03FC 01AC clrf ?a_Uart_init
97 03FD 30E1 movlw 225
98 03FE 2C19 goto L5
99 03FF l12
100 03FF 3001 movlw 1
101 0400 00F2 movwf btemp+2
102 0401 01F3 clrf btemp+3
103 0402 2C13 goto l30003
104 0403 l30004
105 0403 0872 movf btemp+2,w
106 0404 1903 btfsc 3,2
107 0405 2BED goto l13
108 0406 3A01 xorlw 1
109 0407 1903 btfsc 3,2
110 0408 2BF2 goto l14
111 0409 3A03 xorlw 3
112 040A 1903 btfsc 3,2
113 040B 2BF7 goto l15
114 040C 3A01 xorlw 1
115 040D 1903 btfsc 3,2
116 040E 2C16 goto l18
117 040F 3A07 xorlw 7
118 0410 1903 btfsc 3,2
119 0411 2BFB goto l17
120 0412 2C16 goto l18
121 0413 l30003
122 0413 0873 movf btemp+3,w
123 0414 1903 btfsc 3,2
124 0415 2C03 goto l30004
125 0416 l18
126 ;uart_s.c: 126: default: BAUD = 38400; break;
127 0416 1283 bcf 3,5
128 0417 01AC clrf ?a_Uart_init
129 0418 3096 movlw 150
130 0419 L5
131 0419 00AD movwf ?a_Uart_init+1
132 ;uart_s.c: 128: SPBRG = 8000000/BAUD/16-1;
133 041A 082C movf ?a_Uart_init,w
134 041B 00F4 movwf btemp+4
135 041C 082D movf ?a_Uart_init+1,w
136 041D 00F5 movwf btemp+5
137 041E 01F6 clrf btemp+6
138 041F 01F7 clrf btemp+7
139 0420 01F0 clrf btemp
140 0421 3012 movlw 18
141 0422 00F1 movwf btemp+1
142 0423 307A movlw 122
143 0424 00F2 movwf btemp+2
144 0425 3000 movlw 0
145 0426 01F3 clrf btemp+3
146 0427 118A 273E fcall aldiv
147 0429 3010 movlw 16
148 042A 00F4 movwf btemp+4
149 042B 3000 movlw 0
150 042C 01F5 clrf btemp+5
151 042D 01F6 clrf btemp+6
152 042E 01F7 clrf btemp+7
153 042F 118A 273E fcall aldiv
154 0431 0370 decf btemp,w
155 0432 1683 bsf 3,5
156 0433 0099 movwf 25
157 ;uart_s.c: 129: FrameOverCou = (uchar)(1000.0*4
+ 0/BAUD);
158 0434 1283 bcf 3,5
159 0435 082D movf ?a_Uart_init+1,w
160 0436 00F1 movwf btemp+1
161 0437 082C movf ?a_Uart_init,w
162 0438 00F0 movwf btemp
163 0439 118A 26EC fcall lwtoft
164 043B 0870 movf btemp,w
165 043C 00F3 movwf btemp+3
166 043D 0871 movf btemp+1,w
167 043E 00F4 movwf btemp+4
168 043F 0872 movf btemp+2,w
169 0440 00F5 movwf btemp+5
170 0441 3040 movlw 64
171 0442 00F0 movwf btemp
172 0443 301C movlw 28
173 0444 00F1 movwf btemp+1
174 0445 3047 movlw 71
175 0446 00F2 movwf btemp+2
176 0447 118A 2678 fcall ftdiv
177 0449 118A 26B0 118A fcall fttol
178 044C 0870 movf btemp,w
179 044D 00A0 movwf _FrameOverCou
180 ;uart_s.c: 130: FrameOverCou += 1;
181 044E 0AA0 incf _FrameOverCou
182 ;uart_s.c: 131: TXSTA = 0b10000100;
183 044F 3084 movlw -124
184 0450 1683 bsf 3,5
185 0451 0098 movwf 24 ;volatile
186 ;uart_s.c: 132: RCSTA = 0b00100000;
187 0452 3020 movlw 32
188 0453 1283 bcf 3,5
189 0454 0098 movwf 24 ;volatile
190 ;uart_s.c: 133: RX9 = 1;
191 0455 1718 bsf 24,6
192 ;uart_s.c: 134: TX9 = 1;
193 0456 1683 bsf 3,5
194 0457 1718 bsf 24,6
195 ;uart_s.c: 136: SPEN = 1;
196 0458 1283 bcf 3,5
197 0459 1798 bsf 24,7
198 ;uart_s.c: 139: CREN = 1;
199 045A 1618 bsf 24,4
200 ;uart_s.c: 140: RCIE = 1;
201 045B 1683 bsf 3,5
202 045C 168C bsf 12,5
203 ;uart_s.c: 143: receCount = 0;
204 045D 01A1 clrf _receCount^(0+128) ;volatile
205 ;uart_s.c: 144: }
206 045E 1283 bcf 3,5
207 045F 0008 return
208
209 psect text2
210 ;uart_s.c: 148: void beginSend(void)
211 ;uart_s.c: 149: {
212 053F _beginSend
213 ;uart_s.c: 151: sendPosi = 0;
214 053F 1683 bsf 3,5
215 0540 1303 bcf 3,6 ;carry unused
216 0541 01A3 clrf _sendPosi^(0+128) ;volatile
217 ;uart_s.c: 152: if(sendCount > 1)
218 0542 3002 movlw 2
219 0543 0222 subwf _sendCount^(0+128),w ;volatile
220 0544 1803 btfsc 3,0
221 ;uart_s.c: 153: sendCount--;
222 0545 03A2 decf _sendCount^(0+128) ;volatile
223 ;uart_s.c: 155: TXREG = sendBuf[0];
224 0546 0836 movf _sendBuf^(0+128),w
225 0547 1283 bcf 3,5
226 0548 0099 movwf 25 ;volatile
227 ;uart_s.c: 156: TXIE = 1;
228 0549 1683 bsf 3,5
229 054A 160C bsf 12,4
230 ;uart_s.c: 157: TXEN = 1;
231 054B 1698 bsf 24,5
232 ;uart_s.c: 163: }
233 054C 1283 bcf 3,5
234 054D 0008 return
235 054E _CRC16
236 ; _data assigned to ?a_CRC16+0
237 0000 _CRC16$data set ?a_CRC16
238 ; _CH assigned to ?a_CRC16+1
239 0000 _CRC16$CH set ?a_CRC16+1
240 ; _CL assigned to ?a_CRC16+2
241 0000 _CRC16$CL set ?a_CRC16+2
242 ; _SaveHi assigned to ?a_CRC16+3
243 0000 _CRC16$SaveHi set ?a_CRC16+3
244 ; _SaveLo assigned to ?a_CRC16+4
245 0000 _CRC16$SaveLo set ?a_CRC16+4
246 ; _CRC16Hi assigned to ?a_CRC16+5
247 0000 _CRC16$CRC16Hi set ?a_CRC16+5
248 ; _CRC16Lo assigned to ?a_CRC16+6
249 0000 _CRC16$CRC16Lo set ?a_CRC16+6
250 ; _Flag assigned to ?a_CRC16+7
251 0000 _CRC16$Flag set ?a_CRC16+7
252 ; _i assigned to ?a_CRC16+9
253 0000 _CRC16$i set ?a_CRC16+9
254 ;_data stored from w
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -