📄 tc2_1.lss
字号:
TC2_1.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 0000059c 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 0000000a 00800060 0000059c 00000630 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000011 0080006a 0080006a 0000063a 2**0
ALLOC
3 .noinit 00000000 0080007b 0080007b 0000063a 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 0000063a 2**0
CONTENTS
5 .debug_aranges 00000014 00000000 00000000 0000063a 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_pubnames 000000f3 00000000 00000000 0000064e 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_info 0000036e 00000000 00000000 00000741 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_abbrev 000000d2 00000000 00000000 00000aaf 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_line 0000026a 00000000 00000000 00000b81 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_str 0000000d 00000000 00000000 00000deb 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 2a 00 jmp 0x54
4: 0c 94 45 00 jmp 0x8a
8: 0c 94 45 00 jmp 0x8a
c: 0c 94 45 00 jmp 0x8a
10: 0c 94 48 01 jmp 0x290
14: 0c 94 45 00 jmp 0x8a
18: 0c 94 45 00 jmp 0x8a
1c: 0c 94 45 00 jmp 0x8a
20: 0c 94 45 00 jmp 0x8a
24: 0c 94 45 00 jmp 0x8a
28: 0c 94 45 00 jmp 0x8a
2c: 0c 94 45 00 jmp 0x8a
30: 0c 94 45 00 jmp 0x8a
34: 0c 94 45 00 jmp 0x8a
38: 0c 94 45 00 jmp 0x8a
3c: 0c 94 45 00 jmp 0x8a
40: 0c 94 45 00 jmp 0x8a
44: 0c 94 45 00 jmp 0x8a
48: 0c 94 45 00 jmp 0x8a
4c: 0c 94 45 00 jmp 0x8a
50: 0c 94 45 00 jmp 0x8a
00000054 <__ctors_end>:
54: 11 24 eor r1, r1
56: 1f be out 0x3f, r1 ; 63
58: cf e5 ldi r28, 0x5F ; 95
5a: d4 e0 ldi r29, 0x04 ; 4
5c: de bf out 0x3e, r29 ; 62
5e: cd bf out 0x3d, r28 ; 61
00000060 <__do_copy_data>:
60: 10 e0 ldi r17, 0x00 ; 0
62: a0 e6 ldi r26, 0x60 ; 96
64: b0 e0 ldi r27, 0x00 ; 0
66: ec e9 ldi r30, 0x9C ; 156
68: f5 e0 ldi r31, 0x05 ; 5
6a: 02 c0 rjmp .+4 ; 0x70
0000006c <.do_copy_data_loop>:
6c: 05 90 lpm r0, Z+
6e: 0d 92 st X+, r0
00000070 <.do_copy_data_start>:
70: aa 36 cpi r26, 0x6A ; 106
72: b1 07 cpc r27, r17
74: d9 f7 brne .-10 ; 0x6c
00000076 <__do_clear_bss>:
76: 10 e0 ldi r17, 0x00 ; 0
78: aa e6 ldi r26, 0x6A ; 106
7a: b0 e0 ldi r27, 0x00 ; 0
7c: 01 c0 rjmp .+2 ; 0x80
0000007e <.do_clear_bss_loop>:
7e: 1d 92 st X+, r1
00000080 <.do_clear_bss_start>:
80: ab 37 cpi r26, 0x7B ; 123
82: b1 07 cpc r27, r17
84: e1 f7 brne .-8 ; 0x7e
86: 0c 94 7b 01 jmp 0x2f6
0000008a <__bad_interrupt>:
8a: 0c 94 00 00 jmp 0x0
0000008e <b8td>:
uchar num_g,num_sh,num_b,num_q,num_w,num_sw;
//二转十子程序
void b8td(uchar n)
{
8e: cf 93 push r28
90: df 93 push r29
92: cd b7 in r28, 0x3d ; 61
94: de b7 in r29, 0x3e ; 62
96: 21 97 sbiw r28, 0x01 ; 1
98: 0f b6 in r0, 0x3f ; 63
9a: f8 94 cli
9c: de bf out 0x3e, r29 ; 62
9e: 0f be out 0x3f, r0 ; 63
a0: cd bf out 0x3d, r28 ; 61
a2: 89 83 std Y+1, r24 ; 0x01
for (i_sh=0;n>=10;)
a4: 10 92 6f 00 sts 0x006F, r1
a8: 89 81 ldd r24, Y+1 ; 0x01
aa: 8a 30 cpi r24, 0x0A ; 10
ac: 48 f0 brcs .+18 ; 0xc0
{n=n-10;
ae: 89 81 ldd r24, Y+1 ; 0x01
b0: 8a 50 subi r24, 0x0A ; 10
b2: 89 83 std Y+1, r24 ; 0x01
i_sh=i_sh+1;
b4: 80 91 6f 00 lds r24, 0x006F
b8: 8f 5f subi r24, 0xFF ; 255
ba: 80 93 6f 00 sts 0x006F, r24
be: f4 cf rjmp .-24 ; 0xa8
}
i_g=n;
c0: 89 81 ldd r24, Y+1 ; 0x01
c2: 80 93 73 00 sts 0x0073, r24
c6: 21 96 adiw r28, 0x01 ; 1
c8: 0f b6 in r0, 0x3f ; 63
ca: f8 94 cli
cc: de bf out 0x3e, r29 ; 62
ce: 0f be out 0x3f, r0 ; 63
d0: cd bf out 0x3d, r28 ; 61
d2: df 91 pop r29
d4: cf 91 pop r28
d6: 08 95 ret
000000d8 <smiao>:
}
//延迟方法实现动态扫描显示函数
void smiao(void)
{PORTD=0XFE; //送个位位线
d8: cf 93 push r28
da: df 93 push r29
dc: cd b7 in r28, 0x3d ; 61
de: de b7 in r29, 0x3e ; 62
e0: 8e ef ldi r24, 0xFE ; 254
e2: 80 93 32 00 sts 0x0032, r24
PORTB=num_g; //个位的BCD码送字线
e6: 80 91 77 00 lds r24, 0x0077
ea: 80 93 38 00 sts 0x0038, r24
_delay_ms(1); //延迟1MS
ee: 60 e0 ldi r22, 0x00 ; 0
f0: 70 e0 ldi r23, 0x00 ; 0
f2: 80 e8 ldi r24, 0x80 ; 128
f4: 9f e3 ldi r25, 0x3F ; 63
f6: 0e 94 c1 00 call 0x182
PORTD=0XFD; //送十位位线
fa: 8d ef ldi r24, 0xFD ; 253
fc: 80 93 32 00 sts 0x0032, r24
PORTB=num_sh;
100: 80 91 79 00 lds r24, 0x0079
104: 80 93 38 00 sts 0x0038, r24
_delay_ms(1);
108: 60 e0 ldi r22, 0x00 ; 0
10a: 70 e0 ldi r23, 0x00 ; 0
10c: 80 e8 ldi r24, 0x80 ; 128
10e: 9f e3 ldi r25, 0x3F ; 63
110: 0e 94 c1 00 call 0x182
PORTD=0XFB; //送百位位线
114: 8b ef ldi r24, 0xFB ; 251
116: 80 93 32 00 sts 0x0032, r24
PORTB=num_b;
11a: 80 91 78 00 lds r24, 0x0078
11e: 80 93 38 00 sts 0x0038, r24
_delay_ms(1);
122: 60 e0 ldi r22, 0x00 ; 0
124: 70 e0 ldi r23, 0x00 ; 0
126: 80 e8 ldi r24, 0x80 ; 128
128: 9f e3 ldi r25, 0x3F ; 63
12a: 0e 94 c1 00 call 0x182
PORTD=0XF7; //送千位位线
12e: 87 ef ldi r24, 0xF7 ; 247
130: 80 93 32 00 sts 0x0032, r24
PORTB=num_q;
134: 80 91 72 00 lds r24, 0x0072
138: 80 93 38 00 sts 0x0038, r24
_delay_ms(1);
13c: 60 e0 ldi r22, 0x00 ; 0
13e: 70 e0 ldi r23, 0x00 ; 0
140: 80 e8 ldi r24, 0x80 ; 128
142: 9f e3 ldi r25, 0x3F ; 63
144: 0e 94 c1 00 call 0x182
PORTD=0XEF; //送万位位线
148: 8f ee ldi r24, 0xEF ; 239
14a: 80 93 32 00 sts 0x0032, r24
PORTB=num_w;
14e: 80 91 7a 00 lds r24, 0x007A
152: 80 93 38 00 sts 0x0038, r24
_delay_ms(1);
156: 60 e0 ldi r22, 0x00 ; 0
158: 70 e0 ldi r23, 0x00 ; 0
15a: 80 e8 ldi r24, 0x80 ; 128
15c: 9f e3 ldi r25, 0x3F ; 63
15e: 0e 94 c1 00 call 0x182
PORTD=0XDF; //送十万位位线
162: 8f ed ldi r24, 0xDF ; 223
164: 80 93 32 00 sts 0x0032, r24
PORTB=num_sw;
168: 80 91 70 00 lds r24, 0x0070
16c: 80 93 38 00 sts 0x0038, r24
_delay_ms(1);
170: 60 e0 ldi r22, 0x00 ; 0
172: 70 e0 ldi r23, 0x00 ; 0
174: 80 e8 ldi r24, 0x80 ; 128
176: 9f e3 ldi r25, 0x3F ; 63
178: 0e 94 c1 00 call 0x182
17c: df 91 pop r29
17e: cf 91 pop r28
180: 08 95 ret
00000182 <_delay_ms>:
The maximal possible delay is 262.14 ms / F_CPU in MHz.
*/
static __inline__ void
_delay_ms(double __ms)
{
182: cf 93 push r28
184: df 93 push r29
186: cd b7 in r28, 0x3d ; 61
188: de b7 in r29, 0x3e ; 62
18a: 2a 97 sbiw r28, 0x0a ; 10
18c: 0f b6 in r0, 0x3f ; 63
18e: f8 94 cli
190: de bf out 0x3e, r29 ; 62
192: 0f be out 0x3f, r0 ; 63
194: cd bf out 0x3d, r28 ; 61
196: 69 83 std Y+1, r22 ; 0x01
198: 7a 83 std Y+2, r23 ; 0x02
19a: 8b 83 std Y+3, r24 ; 0x03
19c: 9c 83 std Y+4, r25 ; 0x04
uint16_t __ticks;
double __tmp = ((F_CPU) / 4e3) * __ms;
19e: 20 e0 ldi r18, 0x00 ; 0
1a0: 30 e0 ldi r19, 0x00 ; 0
1a2: 4a ef ldi r20, 0xFA ; 250
1a4: 54 e4 ldi r21, 0x44 ; 68
1a6: 69 81 ldd r22, Y+1 ; 0x01
1a8: 7a 81 ldd r23, Y+2 ; 0x02
1aa: 8b 81 ldd r24, Y+3 ; 0x03
1ac: 9c 81 ldd r25, Y+4 ; 0x04
1ae: 0e 94 60 02 call 0x4c0
1b2: dc 01 movw r26, r24
1b4: cb 01 movw r24, r22
1b6: 8f 83 std Y+7, r24 ; 0x07
1b8: 98 87 std Y+8, r25 ; 0x08
1ba: a9 87 std Y+9, r26 ; 0x09
1bc: ba 87 std Y+10, r27 ; 0x0a
if (__tmp < 1.0)
1be: 20 e0 ldi r18, 0x00 ; 0
1c0: 30 e0 ldi r19, 0x00 ; 0
1c2: 40 e8 ldi r20, 0x80 ; 128
1c4: 5f e3 ldi r21, 0x3F ; 63
1c6: 6f 81 ldd r22, Y+7 ; 0x07
1c8: 78 85 ldd r23, Y+8 ; 0x08
1ca: 89 85 ldd r24, Y+9 ; 0x09
1cc: 9a 85 ldd r25, Y+10 ; 0x0a
1ce: 0e 94 1b 02 call 0x436
1d2: 88 23 and r24, r24
1d4: 0c f0 brlt .+2 ; 0x1d8
1d6: 05 c0 rjmp .+10 ; 0x1e2
__ticks = 1;
1d8: 81 e0 ldi r24, 0x01 ; 1
1da: 90 e0 ldi r25, 0x00 ; 0
1dc: 8d 83 std Y+5, r24 ; 0x05
1de: 9e 83 std Y+6, r25 ; 0x06
1e0: 1a c0 rjmp .+52 ; 0x216
else if (__tmp > 65535)
1e2: 20 e0 ldi r18, 0x00 ; 0
1e4: 3f ef ldi r19, 0xFF ; 255
1e6: 4f e7 ldi r20, 0x7F ; 127
1e8: 57 e4 ldi r21, 0x47 ; 71
1ea: 6f 81 ldd r22, Y+7 ; 0x07
1ec: 78 85 ldd r23, Y+8 ; 0x08
1ee: 89 85 ldd r24, Y+9 ; 0x09
1f0: 9a 85 ldd r25, Y+10 ; 0x0a
1f2: 0e 94 1e 02 call 0x43c
1f6: 18 16 cp r1, r24
1f8: 0c f0 brlt .+2 ; 0x1fc
1fa: 03 c0 rjmp .+6 ; 0x202
__ticks = 0; /* i.e. 65536 */
1fc: 1d 82 std Y+5, r1 ; 0x05
1fe: 1e 82 std Y+6, r1 ; 0x06
200: 0a c0 rjmp .+20 ; 0x216
else
__ticks = (uint16_t)__tmp;
202: 6f 81 ldd r22, Y+7 ; 0x07
204: 78 85 ldd r23, Y+8 ; 0x08
206: 89 85 ldd r24, Y+9 ; 0x09
208: 9a 85 ldd r25, Y+10 ; 0x0a
20a: 0e 94 00 02 call 0x400
20e: dc 01 movw r26, r24
210: cb 01 movw r24, r22
212: 8d 83 std Y+5, r24 ; 0x05
214: 9e 83 std Y+6, r25 ; 0x06
_delay_loop_2(__ticks);
216: 8d 81 ldd r24, Y+5 ; 0x05
218: 9e 81 ldd r25, Y+6 ; 0x06
21a: 0e 94 18 01 call 0x230
21e: 2a 96 adiw r28, 0x0a ; 10
220: 0f b6 in r0, 0x3f ; 63
222: f8 94 cli
224: de bf out 0x3e, r29 ; 62
226: 0f be out 0x3f, r0 ; 63
228: cd bf out 0x3d, r28 ; 61
22a: df 91 pop r29
22c: cf 91 pop r28
22e: 08 95 ret
00000230 <_delay_loop_2>:
230: cf 93 push r28
232: df 93 push r29
234: cd b7 in r28, 0x3d ; 61
236: de b7 in r29, 0x3e ; 62
238: 22 97 sbiw r28, 0x02 ; 2
23a: 0f b6 in r0, 0x3f ; 63
23c: f8 94 cli
23e: de bf out 0x3e, r29 ; 62
240: 0f be out 0x3f, r0 ; 63
242: cd bf out 0x3d, r28 ; 61
244: 89 83 std Y+1, r24 ; 0x01
246: 9a 83 std Y+2, r25 ; 0x02
248: 89 81 ldd r24, Y+1 ; 0x01
24a: 9a 81 ldd r25, Y+2 ; 0x02
24c: 01 97 sbiw r24, 0x01 ; 1
24e: f1 f7 brne .-4 ; 0x24c
250: 89 83 std Y+1, r24 ; 0x01
252: 9a 83 std Y+2, r25 ; 0x02
254: 22 96 adiw r28, 0x02 ; 2
256: 0f b6 in r0, 0x3f ; 63
258: f8 94 cli
25a: de bf out 0x3e, r29 ; 62
25c: 0f be out 0x3f, r0 ; 63
25e: cd bf out 0x3d, r28 ; 61
260: df 91 pop r29
262: cf 91 pop r28
264: 08 95 ret
00000266 <init_timer2>:
}
//TC2的初始化子程序
void init_timer2(void)
{
266: cf 93 push r28
268: df 93 push r29
26a: cd b7 in r28, 0x3d ; 61
26c: de b7 in r29, 0x3e ; 62
TIFR=0XFF; //写1清零
26e: 8f ef ldi r24, 0xFF ; 255
270: 80 93 58 00 sts 0x0058, r24
ASSR=0X08; //使用异步时钟
274: 88 e0 ldi r24, 0x08 ; 8
276: 80 93 42 00 sts 0x0042, r24
TCCR2=0X05; //128分频,1s中断一次
27a: 85 e0 ldi r24, 0x05 ; 5
27c: 80 93 45 00 sts 0x0045, r24
TCNT2=0X00; //TC2置初值0
280: 10 92 44 00 sts 0x0044, r1
TIMSK=0X40; //溢出中断使能
284: 80 e4 ldi r24, 0x40 ; 64
286: 80 93 59 00 sts 0x0059, r24
28a: df 91 pop r29
28c: cf 91 pop r28
28e: 08 95 ret
00000290 <__vector_4>:
}
//TC2溢出中断服务程序
SIGNAL(SIG_OVERFLOW2)
{
290: 1f 92 push r1
292: 0f 92 push r0
294: 0f b6 in r0, 0x3f ; 63
296: 0f 92 push r0
298: 11 24 eor r1, r1
29a: 8f 93 push r24
29c: cf 93 push r28
29e: df 93 push r29
2a0: cd b7 in r28, 0x3d ; 61
2a2: de b7 in r29, 0x3e ; 62
b_s++; //秒增加1
2a4: 80 91 6a 00 lds r24, 0x006A
2a8: 8f 5f subi r24, 0xFF ; 255
2aa: 80 93 6a 00 sts 0x006A, r24
if(b_s==60) {b_s=0;b_m++;} //到60秒,秒清零,分增加1
2ae: 80 91 6a 00 lds r24, 0x006A
2b2: 8c 33 cpi r24, 0x3C ; 60
2b4: 39 f4 brne .+14 ; 0x2c4
2b6: 10 92 6a 00 sts 0x006A, r1
2ba: 80 91 6b 00 lds r24, 0x006B
2be: 8f 5f subi r24, 0xFF ; 255
2c0: 80 93 6b 00 sts 0x006B, r24
if(b_m==60) {b_m=0;b_h++;} //到60分,分清零,时增加1
2c4: 80 91 6b 00 lds r24, 0x006B
2c8: 8c 33 cpi r24, 0x3C ; 60
2ca: 39 f4 brne .+14 ; 0x2da
2cc: 10 92 6b 00 sts 0x006B, r1
2d0: 80 91 6c 00 lds r24, 0x006C
2d4: 8f 5f subi r24, 0xFF ; 255
2d6: 80 93 6c 00 sts 0x006C, r24
if(b_h==24) b_h=0; //到24时,时清零
2da: 80 91 6c 00 lds r24, 0x006C
2de: 88 31 cpi r24, 0x18 ; 24
2e0: 11 f4 brne .+4 ; 0x2e6
2e2: 10 92 6c 00 sts 0x006C, r1
2e6: df 91 pop r29
2e8: cf 91 pop r28
2ea: 8f 91 pop r24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -