📄 ledhb.lss
字号:
3be: 22 0f add r18, r18
3c0: 33 1f adc r19, r19
3c2: 8a 95 dec r24
3c4: e2 f7 brpl .-8 ; 0x3be <disp_hour+0xa6>
3c6: 84 b3 in r24, 0x14 ; 20
3c8: 82 2b or r24, r18
3ca: 84 bb out 0x14, r24 ; 20
DDRD |= (1 << (12 - IRING[hour]));
3cc: 80 91 ac 00 lds r24, 0x00AC
3d0: e8 2f mov r30, r24
3d2: ff 27 eor r31, r31
3d4: e0 5a subi r30, 0xA0 ; 160
3d6: ff 4f sbci r31, 0xFF ; 255
3d8: 80 81 ld r24, Z
3da: 48 1b sub r20, r24
3dc: 51 09 sbc r21, r1
3de: 02 c0 rjmp .+4 ; 0x3e4 <disp_hour+0xcc>
3e0: 66 0f add r22, r22
3e2: 77 1f adc r23, r23
3e4: 4a 95 dec r20
3e6: e2 f7 brpl .-8 ; 0x3e0 <disp_hour+0xc8>
3e8: 81 b3 in r24, 0x11 ; 17
3ea: 86 2b or r24, r22
3ec: 81 bb out 0x11, r24 ; 17
3ee: 08 95 ret
000003f0 <display>:
}
}
void display(void)
{
we_D++;
3f0: 90 91 b0 00 lds r25, 0x00B0
3f4: 9f 5f subi r25, 0xFF ; 255
3f6: 90 93 b0 00 sts 0x00B0, r25
if((we_D>15)&&(MODE_D==1))
3fa: 90 31 cpi r25, 0x10 ; 16
3fc: 48 f0 brcs .+18 ; 0x410 <display+0x20>
3fe: 80 91 b1 00 lds r24, 0x00B1
402: 81 30 cpi r24, 0x01 ; 1
404: 29 f4 brne .+10 ; 0x410 <display+0x20>
{
if(we_D>30)
406: 9f 31 cpi r25, 0x1F ; 31
408: 20 f0 brcs .+8 ; 0x412 <display+0x22>
we_D=0;
40a: 10 92 b0 00 sts 0x00B0, r1
40e: 01 c0 rjmp .+2 ; 0x412 <display+0x22>
}
else
{
disp_seconds();
410: 49 de rcall .-878 ; 0xa4 <disp_seconds>
}
delay_us(5);
412: 85 e0 ldi r24, 0x05 ; 5
414: 90 e0 ldi r25, 0x00 ; 0
416: 22 de rcall .-956 ; 0x5c <delay_us>
if((we_D>15)&&(MODE_D==2))
418: 90 91 b0 00 lds r25, 0x00B0
41c: 90 31 cpi r25, 0x10 ; 16
41e: 48 f0 brcs .+18 ; 0x432 <display+0x42>
420: 80 91 b1 00 lds r24, 0x00B1
424: 82 30 cpi r24, 0x02 ; 2
426: 29 f4 brne .+10 ; 0x432 <display+0x42>
{
if(we_D>30)
428: 9f 31 cpi r25, 0x1F ; 31
42a: 20 f0 brcs .+8 ; 0x434 <display+0x44>
we_D=0;
42c: 10 92 b0 00 sts 0x00B0, r1
430: 01 c0 rjmp .+2 ; 0x434 <display+0x44>
}
else
{
disp_minutes();
432: d5 de rcall .-598 ; 0x1de <disp_minutes>
}
delay_us(5);
434: 85 e0 ldi r24, 0x05 ; 5
436: 90 e0 ldi r25, 0x00 ; 0
438: 11 de rcall .-990 ; 0x5c <delay_us>
if((we_D>15)&&(MODE_D==3))
43a: 90 91 b0 00 lds r25, 0x00B0
43e: 90 31 cpi r25, 0x10 ; 16
440: 48 f0 brcs .+18 ; 0x454 <display+0x64>
442: 80 91 b1 00 lds r24, 0x00B1
446: 83 30 cpi r24, 0x03 ; 3
448: 29 f4 brne .+10 ; 0x454 <display+0x64>
{
if(we_D>30)
44a: 9f 31 cpi r25, 0x1F ; 31
44c: 20 f0 brcs .+8 ; 0x456 <display+0x66>
we_D=0;
44e: 10 92 b0 00 sts 0x00B0, r1
452: 01 c0 rjmp .+2 ; 0x456 <display+0x66>
}
else
{
disp_hour();
454: 61 df rcall .-318 ; 0x318 <disp_hour>
}
delay_us(5);
456: 85 e0 ldi r24, 0x05 ; 5
458: 90 e0 ldi r25, 0x00 ; 0
45a: 00 de rcall .-1024 ; 0x5c <delay_us>
45c: 08 95 ret
0000045e <__vector_6>:
}
//定时器1中断
SIGNAL(SIG_OUTPUT_COMPARE1A)
{
45e: 1f 92 push r1
460: 0f 92 push r0
462: 0f b6 in r0, 0x3f ; 63
464: 0f 92 push r0
466: 11 24 eor r1, r1
468: 8f 93 push r24
seconds++;
46a: 80 91 af 00 lds r24, 0x00AF
46e: 8f 5f subi r24, 0xFF ; 255
470: 80 93 af 00 sts 0x00AF, r24
if (seconds>= 60)
474: 80 91 af 00 lds r24, 0x00AF
478: 8c 33 cpi r24, 0x3C ; 60
47a: 38 f0 brcs .+14 ; 0x48a <__stack+0x2b>
{
seconds= 0;
47c: 10 92 af 00 sts 0x00AF, r1
minutes++;
480: 80 91 ae 00 lds r24, 0x00AE
484: 8f 5f subi r24, 0xFF ; 255
486: 80 93 ae 00 sts 0x00AE, r24
}
if (minutes >=60)
48a: 80 91 ae 00 lds r24, 0x00AE
48e: 8c 33 cpi r24, 0x3C ; 60
490: 38 f0 brcs .+14 ; 0x4a0 <__stack+0x41>
{
minutes = 0;
492: 10 92 ae 00 sts 0x00AE, r1
hour++;
496: 80 91 ac 00 lds r24, 0x00AC
49a: 8f 5f subi r24, 0xFF ; 255
49c: 80 93 ac 00 sts 0x00AC, r24
}
if (hour >12)
4a0: 80 91 ac 00 lds r24, 0x00AC
4a4: 8d 30 cpi r24, 0x0D ; 13
4a6: 18 f0 brcs .+6 ; 0x4ae <__stack+0x4f>
{
hour = 1;
4a8: 81 e0 ldi r24, 0x01 ; 1
4aa: 80 93 ac 00 sts 0x00AC, r24
4ae: 8f 91 pop r24
4b0: 0f 90 pop r0
4b2: 0f be out 0x3f, r0 ; 63
4b4: 0f 90 pop r0
4b6: 1f 90 pop r1
4b8: 18 95 reti
000004ba <main>:
}
}
int main(void)
{
4ba: cf e5 ldi r28, 0x5F ; 95
4bc: d4 e0 ldi r29, 0x04 ; 4
4be: de bf out 0x3e, r29 ; 62
4c0: cd bf out 0x3d, r28 ; 61
port_init();
4c2: dc dd rcall .-1096 ; 0x7c <port_init>
t1_init();
4c4: d0 dd rcall .-1120 ; 0x66 <t1_init>
sei ();
4c6: 78 94 sei
while(1)
{
display();
4c8: 93 df rcall .-218 ; 0x3f0 <display>
if((PINB&0x08)!=0x08)
4ca: b3 99 sbic 0x16, 3 ; 22
4cc: 11 c0 rjmp .+34 ; 0x4f0 <main+0x36>
{
display();
4ce: 90 df rcall .-224 ; 0x3f0 <display>
if((PINB&0x08)!=0x08)
4d0: b3 99 sbic 0x16, 3 ; 22
4d2: 0e c0 rjmp .+28 ; 0x4f0 <main+0x36>
{
while((PINB&0x08)!=0x08) display();
4d4: b3 99 sbic 0x16, 3 ; 22
4d6: 03 c0 rjmp .+6 ; 0x4de <main+0x24>
4d8: 8b df rcall .-234 ; 0x3f0 <display>
4da: b3 9b sbis 0x16, 3 ; 22
4dc: fd cf rjmp .-6 ; 0x4d8 <main+0x1e>
MODE_D++;
4de: 80 91 b1 00 lds r24, 0x00B1
4e2: 8f 5f subi r24, 0xFF ; 255
4e4: 80 93 b1 00 sts 0x00B1, r24
if(MODE_D>3)
4e8: 84 30 cpi r24, 0x04 ; 4
4ea: 10 f0 brcs .+4 ; 0x4f0 <main+0x36>
MODE_D=0;
4ec: 10 92 b1 00 sts 0x00B1, r1
}
}
if((PINB&0x10)!=0x10)//+
4f0: b4 99 sbic 0x16, 4 ; 22
4f2: 3b c0 rjmp .+118 ; 0x56a <main+0xb0>
{
display();
4f4: 7d df rcall .-262 ; 0x3f0 <display>
if((PINB&0x10)!=0x10)
4f6: b4 99 sbic 0x16, 4 ; 22
4f8: 38 c0 rjmp .+112 ; 0x56a <main+0xb0>
{
while((PINB&0x10)!=0x10) display();
4fa: b4 99 sbic 0x16, 4 ; 22
4fc: 03 c0 rjmp .+6 ; 0x504 <main+0x4a>
4fe: 78 df rcall .-272 ; 0x3f0 <display>
500: b4 9b sbis 0x16, 4 ; 22
502: fd cf rjmp .-6 ; 0x4fe <main+0x44>
switch(MODE_D)
504: 80 91 b1 00 lds r24, 0x00B1
508: 99 27 eor r25, r25
50a: 82 30 cpi r24, 0x02 ; 2
50c: 91 05 cpc r25, r1
50e: b1 f0 breq .+44 ; 0x53c <main+0x82>
510: 83 30 cpi r24, 0x03 ; 3
512: 91 05 cpc r25, r1
514: 1c f4 brge .+6 ; 0x51c <main+0x62>
516: 01 97 sbiw r24, 0x01 ; 1
518: 21 f0 breq .+8 ; 0x522 <main+0x68>
51a: 27 c0 rjmp .+78 ; 0x56a <main+0xb0>
51c: 03 97 sbiw r24, 0x03 ; 3
51e: d1 f0 breq .+52 ; 0x554 <main+0x9a>
520: 24 c0 rjmp .+72 ; 0x56a <main+0xb0>
{
case 1:
{
hour++;
522: 80 91 ac 00 lds r24, 0x00AC
526: 8f 5f subi r24, 0xFF ; 255
528: 80 93 ac 00 sts 0x00AC, r24
if (hour >12)
52c: 80 91 ac 00 lds r24, 0x00AC
530: 8d 30 cpi r24, 0x0D ; 13
532: d8 f0 brcs .+54 ; 0x56a <main+0xb0>
{
hour = 1;
534: 81 e0 ldi r24, 0x01 ; 1
536: 80 93 ac 00 sts 0x00AC, r24
}
}
break;
53a: 17 c0 rjmp .+46 ; 0x56a <main+0xb0>
case 2:
{
minutes++;
53c: 80 91 ae 00 lds r24, 0x00AE
540: 8f 5f subi r24, 0xFF ; 255
542: 80 93 ae 00 sts 0x00AE, r24
if (minutes >=60)
546: 80 91 ae 00 lds r24, 0x00AE
54a: 8c 33 cpi r24, 0x3C ; 60
54c: 70 f0 brcs .+28 ; 0x56a <main+0xb0>
{
minutes = 0;
54e: 10 92 ae 00 sts 0x00AE, r1
}
}
break;
552: 0b c0 rjmp .+22 ; 0x56a <main+0xb0>
case 3:
{
seconds++;
554: 80 91 af 00 lds r24, 0x00AF
558: 8f 5f subi r24, 0xFF ; 255
55a: 80 93 af 00 sts 0x00AF, r24
if (seconds>=60)
55e: 80 91 af 00 lds r24, 0x00AF
562: 8c 33 cpi r24, 0x3C ; 60
564: 10 f0 brcs .+4 ; 0x56a <main+0xb0>
{
seconds= 0;
566: 10 92 af 00 sts 0x00AF, r1
}
}
break;
}
}
}
if((PINB&0x20)!=0x20)//-
56a: b5 99 sbic 0x16, 5 ; 22
56c: ad cf rjmp .-166 ; 0x4c8 <main+0xe>
{
display();
56e: 40 df rcall .-384 ; 0x3f0 <display>
if((PINB&0x20)!=0x20)
570: 86 b3 in r24, 0x16 ; 22
572: aa cf rjmp .-172 ; 0x4c8 <main+0xe>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -