Files

442 lines
26 KiB
Plaintext

1 ;--------------------------------------------------------
2 ; File Created by SDCC : free open source ANSI-C Compiler
3 ; Version 4.2.0 #13081 (Linux)
4 ;--------------------------------------------------------
5 .module delay
6 .optsdcc -mmcs51 --model-small
7
8 ;--------------------------------------------------------
9 ; Public variables in this module
10 ;--------------------------------------------------------
11 .globl _EADC
12 .globl _ET1
13 .globl _ET0
14 .globl _ES
15 .globl _EA
16 .globl _REN
17 .globl _RI
18 .globl _TI
19 .globl _TR1
20 .globl _TF1
21 .globl _IT0
22 .globl _IE0
23 .globl _TR0
24 .globl _TF0
25 .globl _CMPCR2
26 .globl _CMPCR1
27 .globl _TA
28 .globl _IRCBAND_REG
29 .globl _IAP_TPS
30 .globl _IAP_CONTR
31 .globl _IAP_TRIG
32 .globl _IAP_CMD
33 .globl _IAP_ADDRL
34 .globl _IAP_ADDRH
35 .globl _IAP_DATA
36 .globl _WDT_CONTR
37 .globl _PCA_PWM3
38 .globl _PCA_PWM2
39 .globl _PCA_PWM1
40 .globl _PCA_PWM0
41 .globl _CCAP3L
42 .globl _CCAP2L
43 .globl _CCAP1L
44 .globl _CCAP0L
45 .globl _CCAPM3
46 .globl _CCAPM2
47 .globl _CCAPM1
48 .globl _CCAPM0
49 .globl _CMOD
50 .globl _CCON
51 .globl _ADCTIM_X
52 .globl _ADCCFG
53 .globl _ADC_RESL
54 .globl _ADC_RES
55 .globl _ADC_CONTR
56 .globl _SPDAT
57 .globl _SPCTL
58 .globl _SPSTAT
59 .globl _IP2H
60 .globl _IP2
61 .globl _IP
62 .globl _IE2
63 .globl _IE
64 .globl _BRT
65 .globl _P_SW1
66 .globl _SADEN
67 .globl _SADDR
68 .globl _S2BUF
69 .globl _S2CON
70 .globl _SBUF
71 .globl _SCON
72 .globl _TM4PS_X
73 .globl _TM3PS_X
74 .globl _TM2PS_X
75 .globl _T4T3M
76 .globl _T4L
77 .globl _T4H
78 .globl _T3L
79 .globl _T3H
80 .globl _T2L
81 .globl _T2H
82 .globl _INTCLKO
83 .globl _AUXR
84 .globl _TH1
85 .globl _TH0
86 .globl _TL1
87 .globl _TL0
88 .globl _TMOD
89 .globl _TCON
90 .globl _P_SW2
91 .globl _P5M0
92 .globl _P5M1
93 .globl _P4M0
94 .globl _P4M1
95 .globl _P3M0
96 .globl _P3M1
97 .globl _P2M0
98 .globl _P2M1
99 .globl _P1M0
100 .globl _P1M1
101 .globl _P0M0
102 .globl _P0M1
103 .globl _PSW
104 .globl _B
105 .globl _ACC
106 .globl _PCON
107 .globl _DPH
108 .globl _DPL
109 .globl _SP
110 .globl _P5
111 .globl _P4
112 .globl _P3
113 .globl _P2
114 .globl _P1
115 .globl _P0
116 .globl _delay_us
117 .globl _delay_ms
118 ;--------------------------------------------------------
119 ; special function registers
120 ;--------------------------------------------------------
121 .area RSEG (ABS,DATA)
000000 122 .org 0x0000
000080 123 _P0 = 0x0080
000090 124 _P1 = 0x0090
0000A0 125 _P2 = 0x00a0
0000B0 126 _P3 = 0x00b0
0000C0 127 _P4 = 0x00c0
0000C8 128 _P5 = 0x00c8
000081 129 _SP = 0x0081
000082 130 _DPL = 0x0082
000083 131 _DPH = 0x0083
000087 132 _PCON = 0x0087
0000E0 133 _ACC = 0x00e0
0000F0 134 _B = 0x00f0
0000D0 135 _PSW = 0x00d0
000093 136 _P0M1 = 0x0093
000094 137 _P0M0 = 0x0094
000091 138 _P1M1 = 0x0091
000092 139 _P1M0 = 0x0092
000095 140 _P2M1 = 0x0095
000096 141 _P2M0 = 0x0096
0000B1 142 _P3M1 = 0x00b1
0000B2 143 _P3M0 = 0x00b2
0000B3 144 _P4M1 = 0x00b3
0000B4 145 _P4M0 = 0x00b4
0000C9 146 _P5M1 = 0x00c9
0000CA 147 _P5M0 = 0x00ca
0000BA 148 _P_SW2 = 0x00ba
000088 149 _TCON = 0x0088
000089 150 _TMOD = 0x0089
00008A 151 _TL0 = 0x008a
00008B 152 _TL1 = 0x008b
00008C 153 _TH0 = 0x008c
00008D 154 _TH1 = 0x008d
00008E 155 _AUXR = 0x008e
00008F 156 _INTCLKO = 0x008f
0000D6 157 _T2H = 0x00d6
0000D7 158 _T2L = 0x00d7
0000D4 159 _T3H = 0x00d4
0000D5 160 _T3L = 0x00d5
0000D2 161 _T4H = 0x00d2
0000D3 162 _T4L = 0x00d3
0000D1 163 _T4T3M = 0x00d1
00FEA1 164 _TM2PS_X = 0xfea1
00FEA2 165 _TM3PS_X = 0xfea2
00FEA3 166 _TM4PS_X = 0xfea3
000098 167 _SCON = 0x0098
000099 168 _SBUF = 0x0099
00009A 169 _S2CON = 0x009a
00009B 170 _S2BUF = 0x009b
0000A9 171 _SADDR = 0x00a9
0000B9 172 _SADEN = 0x00b9
0000A2 173 _P_SW1 = 0x00a2
00009C 174 _BRT = 0x009c
0000A8 175 _IE = 0x00a8
0000AF 176 _IE2 = 0x00af
0000B8 177 _IP = 0x00b8
0000B6 178 _IP2 = 0x00b6
0000B7 179 _IP2H = 0x00b7
0000CD 180 _SPSTAT = 0x00cd
0000CE 181 _SPCTL = 0x00ce
0000CF 182 _SPDAT = 0x00cf
0000BC 183 _ADC_CONTR = 0x00bc
0000BD 184 _ADC_RES = 0x00bd
0000BE 185 _ADC_RESL = 0x00be
0000DE 186 _ADCCFG = 0x00de
00FEA8 187 _ADCTIM_X = 0xfea8
0000D8 188 _CCON = 0x00d8
0000D9 189 _CMOD = 0x00d9
0000DA 190 _CCAPM0 = 0x00da
0000DB 191 _CCAPM1 = 0x00db
0000DC 192 _CCAPM2 = 0x00dc
0000DD 193 _CCAPM3 = 0x00dd
0000EA 194 _CCAP0L = 0x00ea
0000EB 195 _CCAP1L = 0x00eb
0000EC 196 _CCAP2L = 0x00ec
0000ED 197 _CCAP3L = 0x00ed
0000F2 198 _PCA_PWM0 = 0x00f2
0000F3 199 _PCA_PWM1 = 0x00f3
0000F4 200 _PCA_PWM2 = 0x00f4
0000F5 201 _PCA_PWM3 = 0x00f5
0000C1 202 _WDT_CONTR = 0x00c1
0000C2 203 _IAP_DATA = 0x00c2
0000C3 204 _IAP_ADDRH = 0x00c3
0000C4 205 _IAP_ADDRL = 0x00c4
0000C5 206 _IAP_CMD = 0x00c5
0000C6 207 _IAP_TRIG = 0x00c6
0000C7 208 _IAP_CONTR = 0x00c7
0000F7 209 _IAP_TPS = 0x00f7
00009D 210 _IRCBAND_REG = 0x009d
0000AE 211 _TA = 0x00ae
0000E6 212 _CMPCR1 = 0x00e6
0000E7 213 _CMPCR2 = 0x00e7
214 ;--------------------------------------------------------
215 ; special function bits
216 ;--------------------------------------------------------
217 .area RSEG (ABS,DATA)
000000 218 .org 0x0000
00008D 219 _TF0 = 0x008d
00008C 220 _TR0 = 0x008c
000089 221 _IE0 = 0x0089
000088 222 _IT0 = 0x0088
00008F 223 _TF1 = 0x008f
00008E 224 _TR1 = 0x008e
000099 225 _TI = 0x0099
000098 226 _RI = 0x0098
00009C 227 _REN = 0x009c
0000AF 228 _EA = 0x00af
0000AC 229 _ES = 0x00ac
0000A9 230 _ET0 = 0x00a9
0000AB 231 _ET1 = 0x00ab
0000AD 232 _EADC = 0x00ad
233 ;--------------------------------------------------------
234 ; overlayable register banks
235 ;--------------------------------------------------------
236 .area REG_BANK_0 (REL,OVR,DATA)
000000 237 .ds 8
238 ;--------------------------------------------------------
239 ; internal ram data
240 ;--------------------------------------------------------
241 .area DSEG (DATA)
242 ;--------------------------------------------------------
243 ; overlayable items in internal ram
244 ;--------------------------------------------------------
245 .area OSEG (OVR,DATA)
246 .area OSEG (OVR,DATA)
247 ;--------------------------------------------------------
248 ; indirectly addressable internal ram data
249 ;--------------------------------------------------------
250 .area ISEG (DATA)
251 ;--------------------------------------------------------
252 ; absolute internal ram data
253 ;--------------------------------------------------------
254 .area IABS (ABS,DATA)
255 .area IABS (ABS,DATA)
256 ;--------------------------------------------------------
257 ; bit data
258 ;--------------------------------------------------------
259 .area BSEG (BIT)
260 ;--------------------------------------------------------
261 ; paged external ram data
262 ;--------------------------------------------------------
263 .area PSEG (PAG,XDATA)
264 ;--------------------------------------------------------
265 ; external ram data
266 ;--------------------------------------------------------
267 .area XSEG (XDATA)
268 ;--------------------------------------------------------
269 ; absolute external ram data
270 ;--------------------------------------------------------
271 .area XABS (ABS,XDATA)
272 ;--------------------------------------------------------
273 ; external initialized ram data
274 ;--------------------------------------------------------
275 .area XISEG (XDATA)
276 .area HOME (CODE)
277 .area GSINIT0 (CODE)
278 .area GSINIT1 (CODE)
279 .area GSINIT2 (CODE)
280 .area GSINIT3 (CODE)
281 .area GSINIT4 (CODE)
282 .area GSINIT5 (CODE)
283 .area GSINIT (CODE)
284 .area GSFINAL (CODE)
285 .area CSEG (CODE)
286 ;--------------------------------------------------------
287 ; global & static initialisations
288 ;--------------------------------------------------------
289 .area HOME (CODE)
290 .area GSINIT (CODE)
291 .area GSFINAL (CODE)
292 .area GSINIT (CODE)
293 ;--------------------------------------------------------
294 ; Home
295 ;--------------------------------------------------------
296 .area HOME (CODE)
297 .area HOME (CODE)
298 ;--------------------------------------------------------
299 ; code
300 ;--------------------------------------------------------
301 .area CSEG (CODE)
302 ;------------------------------------------------------------
303 ;Allocation info for local variables in function '_delay_loop'
304 ;------------------------------------------------------------
305 ;n Allocated to registers
306 ;------------------------------------------------------------
307 ; src/delay.c:9: static void _delay_loop(uint16_t n)
308 ; -----------------------------------------
309 ; function _delay_loop
310 ; -----------------------------------------
000000 311 __delay_loop:
000007 312 ar7 = 0x07
000006 313 ar6 = 0x06
000005 314 ar5 = 0x05
000004 315 ar4 = 0x04
000003 316 ar3 = 0x03
000002 317 ar2 = 0x02
000001 318 ar1 = 0x01
000000 319 ar0 = 0x00
000000 AE 82 [24] 320 mov r6,dpl
000002 AF 83 [24] 321 mov r7,dph
322 ; src/delay.c:11: while (n--) {
000004 323 00101$:
000004 8E 04 [24] 324 mov ar4,r6
000006 8F 05 [24] 325 mov ar5,r7
000008 1E [12] 326 dec r6
000009 BE FF 01 [24] 327 cjne r6,#0xff,00115$
00000C 1F [12] 328 dec r7
00000D 329 00115$:
00000D EC [12] 330 mov a,r4
00000E 4D [12] 331 orl a,r5
00000F 60 07 [24] 332 jz 00104$
333 ; src/delay.c:12: NOP(); NOP(); NOP(); NOP(); NOP();
000011 00 [12] 334 nop
000012 00 [12] 335 nop
000013 00 [12] 336 nop
000014 00 [12] 337 nop
000015 00 [12] 338 nop
000016 80 EC [24] 339 sjmp 00101$
000018 340 00104$:
341 ; src/delay.c:14: }
000018 22 [24] 342 ret
343 ;------------------------------------------------------------
344 ;Allocation info for local variables in function 'delay_us'
345 ;------------------------------------------------------------
346 ;us Allocated to registers
347 ;------------------------------------------------------------
348 ; src/delay.c:16: void delay_us(uint16_t us)
349 ; -----------------------------------------
350 ; function delay_us
351 ; -----------------------------------------
000019 352 _delay_us:
000019 AE 82 [24] 353 mov r6,dpl
00001B AF 83 [24] 354 mov r7,dph
355 ; src/delay.c:19: while (us--) {
00001D 356 00101$:
00001D 8E 04 [24] 357 mov ar4,r6
00001F 8F 05 [24] 358 mov ar5,r7
000021 1E [12] 359 dec r6
000022 BE FF 01 [24] 360 cjne r6,#0xff,00115$
000025 1F [12] 361 dec r7
000026 362 00115$:
000026 EC [12] 363 mov a,r4
000027 4D [12] 364 orl a,r5
000028 60 1A [24] 365 jz 00104$
366 ; src/delay.c:20: NOP(); NOP(); NOP(); NOP(); NOP(); NOP();
00002A 00 [12] 367 nop
00002B 00 [12] 368 nop
00002C 00 [12] 369 nop
00002D 00 [12] 370 nop
00002E 00 [12] 371 nop
00002F 00 [12] 372 nop
373 ; src/delay.c:21: NOP(); NOP(); NOP(); NOP(); NOP(); NOP();
000030 00 [12] 374 nop
000031 00 [12] 375 nop
000032 00 [12] 376 nop
000033 00 [12] 377 nop
000034 00 [12] 378 nop
000035 00 [12] 379 nop
380 ; src/delay.c:22: NOP(); NOP(); NOP(); NOP(); NOP(); NOP();
000036 00 [12] 381 nop
000037 00 [12] 382 nop
000038 00 [12] 383 nop
000039 00 [12] 384 nop
00003A 00 [12] 385 nop
00003B 00 [12] 386 nop
387 ; src/delay.c:23: NOP(); NOP(); NOP(); NOP(); NOP(); NOP();
00003C 00 [12] 388 nop
00003D 00 [12] 389 nop
00003E 00 [12] 390 nop
00003F 00 [12] 391 nop
000040 00 [12] 392 nop
000041 00 [12] 393 nop
000042 80 D9 [24] 394 sjmp 00101$
000044 395 00104$:
396 ; src/delay.c:25: }
000044 22 [24] 397 ret
398 ;------------------------------------------------------------
399 ;Allocation info for local variables in function 'delay_ms'
400 ;------------------------------------------------------------
401 ;ms Allocated to registers
402 ;------------------------------------------------------------
403 ; src/delay.c:27: void delay_ms(uint16_t ms)
404 ; -----------------------------------------
405 ; function delay_ms
406 ; -----------------------------------------
000045 407 _delay_ms:
000045 AE 82 [24] 408 mov r6,dpl
000047 AF 83 [24] 409 mov r7,dph
410 ; src/delay.c:29: while (ms--) {
000049 411 00101$:
000049 8E 04 [24] 412 mov ar4,r6
00004B 8F 05 [24] 413 mov ar5,r7
00004D 1E [12] 414 dec r6
00004E BE FF 01 [24] 415 cjne r6,#0xff,00115$
000051 1F [12] 416 dec r7
000052 417 00115$:
000052 EC [12] 418 mov a,r4
000053 4D [12] 419 orl a,r5
000054 60 10 [24] 420 jz 00104$
421 ; src/delay.c:30: delay_us(1000);
000056 90 03 E8 [24] 422 mov dptr,#0x03e8
000059 C0 07 [24] 423 push ar7
00005B C0 06 [24] 424 push ar6
00005D 12r00r19 [24] 425 lcall _delay_us
000060 D0 06 [24] 426 pop ar6
000062 D0 07 [24] 427 pop ar7
000064 80 E3 [24] 428 sjmp 00101$
000066 429 00104$:
430 ; src/delay.c:32: }
000066 22 [24] 431 ret
432 .area CSEG (CODE)
433 .area CONST (CODE)
000000 434 _DEFAULT_ADDR:
000000 E7 435 .db #0xe7 ; 231
000001 E7 436 .db #0xe7 ; 231
000002 E7 437 .db #0xe7 ; 231
000003 E7 438 .db #0xe7 ; 231
000004 C2 439 .db #0xc2 ; 194
440 .area XINIT (CODE)
441 .area CABS (ABS,CODE)