📄 main.lst
字号:
232 .LM10:
233 0026 80E2 ldi r24,lo8(32)
234 0028 85BB out 53-0x20,r24
73:main.c **** DDRC = 0x30;
236 .LM11:
237 002a 80E3 ldi r24,lo8(48)
238 002c 84BB out 52-0x20,r24
74:main.c **** PORTD = 0x00;
240 .LM12:
241 002e 12BA out 50-0x20,__zero_reg__
75:main.c **** DDRD = 0x01;
243 .LM13:
244 0030 81E0 ldi r24,lo8(1)
245 0032 81BB out 49-0x20,r24
76:main.c ****
77:main.c **** MCUCR = 0x0E; //INT1 raising edg cause intterupt, INT0 falling edg
247 .LM14:
248 0034 8EE0 ldi r24,lo8(14)
249 0036 85BF out 85-0x20,r24
78:main.c **** GICR = 0xC0; //enable INT1,INT0
251 .LM15:
252 0038 90EC ldi r25,lo8(-64)
253 003a 9BBF out 91-0x20,r25
79:main.c ****
80:main.c **** ADCSRA= 0xED; //enabel ADC, enable interrupt, ADCck=fck/128
255 .LM16:
256 003c 8DEE ldi r24,lo8(-19)
257 003e 86B9 out 38-0x20,r24
81:main.c **** ADMUX = 0xc0; //CH0
259 .LM17:
260 0040 97B9 out 39-0x20,r25
82:main.c ****
83:main.c **** TCCR2 = 0x0f;
262 .LM18:
263 0042 8FE0 ldi r24,lo8(15)
264 0044 85BD out 69-0x20,r24
84:main.c **** OCR2 = 77; //timer for 10mS
266 .LM19:
267 0046 8DE4 ldi r24,lo8(77)
268 0048 83BD out 67-0x20,r24
85:main.c **** TIMSK = 0x80; //enable intterrupt
270 .LM20:
271 004a 80E8 ldi r24,lo8(-128)
272 004c 89BF out 89-0x20,r24
86:main.c ****
87:main.c ****
88:main.c **** UCSRB = 0x00; //serial port setting
274 .LM21:
275 004e 1AB8 out 42-0x20,__zero_reg__
89:main.c **** UCSRA = 0x00;
277 .LM22:
278 0050 1BB8 out 43-0x20,__zero_reg__
90:main.c **** UCSRC = 0x80 | 0x06;
280 .LM23:
281 0052 86E8 ldi r24,lo8(-122)
282 0054 80BD out 64-0x20,r24
91:main.c **** UBRRL = 51; //set baud rate lo baud rate=9600, fck=8.00MHz
284 .LM24:
285 0056 83E3 ldi r24,lo8(51)
286 0058 89B9 out 41-0x20,r24
92:main.c **** UBRRH = 0x00; //set baud rate hi
288 .LM25:
289 005a 10BC out 64-0x20,__zero_reg__
93:main.c **** UCSRB = 0x08; //enable to sent receive and 8 bits per bits//*/
291 .LM26:
292 005c 88E0 ldi r24,lo8(8)
293 005e 8AB9 out 42-0x20,r24
94:main.c ****
95:main.c **** sei();
295 .LM27:
296 /* #APP */
297 0060 7894 sei
298 /* #NOAPP */
299 /* epilogue: frame size=0 */
300 0062 0895 ret
301 /* epilogue end (size=1) */
302 /* function s_ini size 38 (37) */
304 .Lscope1:
306 .global __vector_14
308 __vector_14:
96:main.c **** }
97:main.c ****
98:main.c **** SIGNAL(SIG_ADC) //adc interrupt
99:main.c **** {
310 .LM28:
311 /* prologue: frame size=0 */
312 0064 1F92 push __zero_reg__
313 0066 0F92 push __tmp_reg__
314 0068 0FB6 in __tmp_reg__,__SREG__
315 006a 0F92 push __tmp_reg__
316 006c 1124 clr __zero_reg__
317 006e 2F93 push r18
318 0070 3F93 push r19
319 0072 5F93 push r21
320 0074 6F93 push r22
321 0076 7F93 push r23
322 0078 8F93 push r24
323 007a 9F93 push r25
324 007c AF93 push r26
325 007e BF93 push r27
326 /* prologue end (size=14) */
100:main.c **** uint tmp;
101:main.c **** if(((ringtime<395)&&(ringtime>375))||((ringtime<270)&&(ringtime>250))
328 .LM29:
329 0080 8091 0000 lds r24,ringtime
330 0084 9091 0000 lds r25,(ringtime)+1
331 0088 8B58 subi r24,lo8(395)
332 008a 9140 sbci r25,hi8(395)
333 008c 38F4 brsh .L13
335 .LM30:
336 008e 8091 0000 lds r24,ringtime
337 0092 9091 0000 lds r25,(ringtime)+1
338 0096 8857 subi r24,lo8(376)
339 0098 9140 sbci r25,hi8(376)
340 009a 50F5 brsh .L12
341 .L13:
342 009c 8091 0000 lds r24,ringtime
343 00a0 9091 0000 lds r25,(ringtime)+1
344 00a4 8E50 subi r24,lo8(270)
345 00a6 9140 sbci r25,hi8(270)
346 00a8 38F4 brsh .L14
347 00aa 8091 0000 lds r24,ringtime
348 00ae 9091 0000 lds r25,(ringtime)+1
349 00b2 8B3F cpi r24,251
350 00b4 9105 cpc r25,__zero_reg__
351 00b6 E0F4 brsh .L12
352 .L14:
353 00b8 8091 0000 lds r24,ringtime
354 00bc 9091 0000 lds r25,(ringtime)+1
355 00c0 8139 cpi r24,145
356 00c2 9105 cpc r25,__zero_reg__
357 00c4 38F4 brsh .L15
358 00c6 8091 0000 lds r24,ringtime
359 00ca 9091 0000 lds r25,(ringtime)+1
360 00ce 8E37 cpi r24,126
361 00d0 9105 cpc r25,__zero_reg__
362 00d2 70F4 brsh .L12
363 .L15:
364 00d4 8091 0000 lds r24,ringtime
365 00d8 9091 0000 lds r25,(ringtime)+1
366 00dc 4497 sbiw r24,20
367 00de 08F0 brlo .+2
368 00e0 8DC0 rjmp .L11
369 00e2 8091 0000 lds r24,ringtime
370 00e6 9091 0000 lds r25,(ringtime)+1
371 00ea 892B or r24,r25
372 00ec 09F4 brne .+2
373 00ee 86C0 rjmp .L11
374 .L12:
102:main.c **** ||((ringtime<145)&&(ringtime>125)) || ((ringtime<20)&&(ringtime>0))) //铃响期间不进行摘机检测
103:main.c **** {
104:main.c **** adadd+=ADC; //
376 .LM31:
377 00f0 8091 0000 lds r24,adadd
378 00f4 9091 0000 lds r25,(adadd)+1
379 00f8 24B1 in r18,36-0x20
380 00fa 35B1 in r19,(36)+1-0x20
381 00fc 820F add r24,r18
382 00fe 931F adc r25,r19
383 0100 9093 0000 sts (adadd)+1,r25
384 0104 8093 0000 sts adadd,r24
105:main.c **** adcou--;
386 .LM32:
387 0108 8091 0000 lds r24,adcou
388 010c 8150 subi r24,lo8(-(-1))
389 010e 8093 0000 sts adcou,r24
106:main.c ****
107:main.c **** if(adcou==0) //完成ADC0,切换到ADC3
391 .LM33:
392 0112 2091 0000 lds r18,adcou
393 0116 2223 tst r18
394 0118 B1F4 brne .L16
108:main.c **** {
109:main.c **** adcou=240;
396 .LM34:
397 011a 80EF ldi r24,lo8(-16)
398 011c 8093 0000 sts adcou,r24
110:main.c ****
111:main.c **** ADMUX=0xC3;
400 .LM35:
401 0120 83EC ldi r24,lo8(-61)
402 0122 87B9 out 39-0x20,r24
112:main.c **** if((adadd/50)>GATE) //取结果
404 .LM36:
405 0124 8091 0000 lds r24,adadd
406 0128 9091 0000 lds r25,(adadd)+1
407 012c 62E3 ldi r22,lo8(50)
408 012e 70E0 ldi r23,hi8(50)
409 0130 00D0 rcall __udivmodhi4
410 0132 6531 cpi r22,21
411 0134 7105 cpc r23,__zero_reg__
412 0136 20F0 brlo .L17
113:main.c **** hu[3]=1;
414 .LM37:
415 0138 81E0 ldi r24,lo8(1)
416 013a 8093 0000 sts hu+3,r24
417 013e 60C0 rjmp .L10
418 .L17:
114:main.c **** else
115:main.c **** hu[3]=0;
420 .LM38:
421 0140 2093 0000 sts hu+3,r18
422 0144 5DC0 rjmp .L10
423 .L16:
116:main.c **** }
117:main.c **** else if(adcou==230) //开始记录ADC3
425 .LM39:
426 0146 8091 0000 lds r24,adcou
427 014a 863E cpi r24,lo8(-26)
428 014c 09F4 brne .+2
429 014e 51C0 rjmp .L40
118:main.c **** {
119:main.c **** adadd=0;
120:main.c **** }
121:main.c **** else if(adcou==180) //完成ADC3,切换到ADC2
431 .LM40:
432 0150 8091 0000 lds r24,adcou
433 0154 843B cpi r24,lo8(-76)
434 0156 99F4 brne .L22
122:main.c **** {
123:main.c **** ADMUX=0xc2;
436 .LM41:
437 0158 82EC ldi r24,lo8(-62)
438 015a 87B9 out 39-0x20,r24
124:main.c **** if((adadd/50)>GATE) //取结果
440 .LM42:
441 015c 8091 0000 lds r24,adadd
442 0160 9091 0000 lds r25,(adadd)+1
443 0164 62E3 ldi r22,lo8(50)
444 0166 70E0 ldi r23,hi8(50)
445 0168 00D0 rcall __udivmodhi4
446 016a 6531 cpi r22,21
447 016c 7105 cpc r23,__zero_reg__
448 016e 20F0 brlo .L23
125:main.c **** hu[0]=1;
450 .LM43:
451 0170 81E0 ldi r24,lo8(1)
452 0172 8093 0000 sts hu,r24
453 0176 44C0 rjmp .L10
454 .L23:
126:main.c **** else
127:main.c **** hu[0]=0;
456 .LM44:
457 0178 1092 0000 sts hu,__zero_reg__
458 017c 41C0 rjmp .L10
459 .L22:
128:main.c **** }
129:main.c **** else if(adcou==170) //开始记录ADC2
461 .LM45:
462 017e 8091 0000 lds r24,adcou
463 0182 8A3A cpi r24,lo8(-86)
464 0184 B1F1 breq .L40
130:main.c **** {
131:main.c **** adadd=0;
132:main.c **** }
133:main.c **** else if(adcou==120) //完成ADC2, 切换到ADC1
466 .LM46:
467 0186 8091 0000 lds r24,adcou
468 018a 8837 cpi r24,lo8(120)
469 018c 99F4 brne .L28
134:main.c **** {
135:main.c **** ADMUX=0xc1;
471 .LM47:
472 018e 81EC ldi r24,lo8(-63)
473 0190 87B9 out 39-0x20,r24
136:main.c **** if((adadd/50)>GATE) //取结果
475 .LM48:
476 0192 8091 0000 lds r24,adadd
477 0196 9091 0000 lds r25,(adadd)+1
478 019a 62E3 ldi r22,lo8(50)
479 019c 70E0 ldi r23,hi8(50)
480 019e 00D0 rcall __udivmodhi4
481 01a0 6531 cpi r22,21
482 01a2 7105 cpc r23,__zero_reg__
483 01a4 20F0 brlo .L29
137:main.c **** hu[1]=1;
485 .LM49:
486 01a6 81E0 ldi r24,lo8(1)
487 01a8 8093 0000 sts hu+1,r24
488 01ac 29C0 rjmp .L10
489 .L29:
138:main.c **** else
139:main.c **** hu[1]=0;
491 .LM50:
492 01ae 1092 0000 sts hu+1,__zero_reg__
493 01b2 26C0 rjmp .L10
494 .L28:
140:main.c **** }
141:main.c **** else if(adcou==110) //开始记录ADC1
496 .LM51:
497 01b4 8091 0000 lds r24,adcou
498 01b8 8E36 cpi r24,lo8(110)
499 01ba D9F0 breq .L40
142:main.c **** {
143:main.c **** adadd=0;
144:main.c **** }
145:main.c **** else if(adcou==60) //完成ADC1, 切换到ADC0
501 .LM52:
502 01bc 8091 0000 lds r24,adcou
503 01c0 8C33 cpi r24,lo8(60)
504 01c2 99F4 brne .L34
146:main.c **** {
147:main.c **** ADMUX=0xc0;
506 .LM53:
507 01c4 80EC ldi r24,lo8(-64)
508 01c6 87B9 out 39-0x20,r24
148:main.c **** if((adadd/50)>GATE)
510 .LM54:
511 01c8 8091 0000 lds r24,adadd
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -