📄 main.lss
字号:
make=1;//有修改
4f4: 21 e0 ldi r18, 0x01 ; 1
4f6: 20 93 07 01 sts 0x0107, r18
if((PIND&0x0c)==0x0c)return;
4fa: 80 b3 in r24, 0x10 ; 16
4fc: 99 27 eor r25, r25
4fe: 8c 70 andi r24, 0x0C ; 12
500: 90 70 andi r25, 0x00 ; 0
502: 0c 97 sbiw r24, 0x0c ; 12
504: 61 f0 breq .+24 ; 0x51e <__vector_2+0x3a>
if(s_up){s_up=0;return;}
506: 80 91 b8 00 lds r24, 0x00B8
50a: 88 23 and r24, r24
50c: 19 f0 breq .+6 ; 0x514 <__vector_2+0x30>
50e: 10 92 b8 00 sts 0x00B8, r1
512: 05 c0 rjmp .+10 ; 0x51e <__vector_2+0x3a>
s_down=1;
514: 20 93 00 01 sts 0x0100, r18
int_=2;
518: 82 e0 ldi r24, 0x02 ; 2
51a: 80 93 04 01 sts 0x0104, r24
51e: 9f 91 pop r25
520: 8f 91 pop r24
522: 2f 91 pop r18
524: 0f 90 pop r0
526: 0f be out 0x3f, r0 ; 63
528: 0f 90 pop r0
52a: 1f 90 pop r1
52c: 18 95 reti
0000052e <daly>:
}
void daly(void){
uch x,y;
for(x=100;x!=0;x--);
52e: 84 e6 ldi r24, 0x64 ; 100
530: 82 53 subi r24, 0x32 ; 50
532: f1 f7 brne .-4 ; 0x530 <daly+0x2>
for(y=250;y!=0;y--)for(x=250;x!=0;x--);
534: 9a ef ldi r25, 0xFA ; 250
536: 8a ef ldi r24, 0xFA ; 250
538: 81 50 subi r24, 0x01 ; 1
53a: f1 f7 brne .-4 ; 0x538 <daly+0xa>
53c: 91 50 subi r25, 0x01 ; 1
53e: d9 f7 brne .-10 ; 0x536 <daly+0x8>
540: 08 95 ret
00000542 <ini>:
}
void ini(void){
PORTD=0xff;
542: 8f ef ldi r24, 0xFF ; 255
544: 82 bb out 0x12, r24 ; 18
PORTB=0xff;
546: 88 bb out 0x18, r24 ; 24
DDRB=0xff;
548: 87 bb out 0x17, r24 ; 23
DDRC=0xff;
54a: 84 bb out 0x14, r24 ; 20
DDRA=0x0;
54c: 1a ba out 0x1a, r1 ; 26
DDRD=0xf0;
54e: 80 ef ldi r24, 0xF0 ; 240
550: 81 bb out 0x11, r24 ; 17
daly();
552: 0e 94 97 02 call 0x52e <daly>
cli();
556: f8 94 cli
c_b(ASSR,AS2);
558: 82 b5 in r24, 0x22 ; 34
55a: 87 7f andi r24, 0xF7 ; 247
55c: 82 bd out 0x22, r24 ; 34
s_b(MCUCSR,JTD);s_b(MCUCSR,JTD);//关闭JTAG
55e: 84 b7 in r24, 0x34 ; 52
560: 80 68 ori r24, 0x80 ; 128
562: 84 bf out 0x34, r24 ; 52
564: 84 b7 in r24, 0x34 ; 52
566: 80 68 ori r24, 0x80 ; 128
568: 84 bf out 0x34, r24 ; 52
ADMUX=0xC0;//选择第七通道换转
56a: 90 ec ldi r25, 0xC0 ; 192
56c: 97 b9 out 0x07, r25 ; 7
ADCSRA=_BV(ADEN)|_BV(ADSC)|_BV(ADPS0)|_BV(ADSC)|_BV(ADIE);
56e: 89 ec ldi r24, 0xC9 ; 201
570: 86 b9 out 0x06, r24 ; 6
GICR=0xc0;//设置中断
572: 9b bf out 0x3b, r25 ; 59
MCUCR=0x0f;
574: 8f e0 ldi r24, 0x0F ; 15
576: 85 bf out 0x35, r24 ; 53
TCCR0=(1<<CS02)|(1<<CS00);
578: 85 e0 ldi r24, 0x05 ; 5
57a: 83 bf out 0x33, r24 ; 51
TCCR1A=(1<<WGM11)|0xa0;
57c: 82 ea ldi r24, 0xA2 ; 162
57e: 8f bd out 0x2f, r24 ; 47
TCCR1B=(1<<WGM13)|(1<<CS10);//
580: 81 e1 ldi r24, 0x11 ; 17
582: 8e bd out 0x2e, r24 ; 46
ICR1=2000;
584: 80 ed ldi r24, 0xD0 ; 208
586: 97 e0 ldi r25, 0x07 ; 7
588: 97 bd out 0x27, r25 ; 39
58a: 86 bd out 0x26, r24 ; 38
lcdini();
58c: 0e 94 a2 00 call 0x144 <lcdini>
ch_sp=&xy_ch;
590: 8e ee ldi r24, 0xEE ; 238
592: 90 e0 ldi r25, 0x00 ; 0
594: 90 93 bb 00 sts 0x00BB, r25
598: 80 93 ba 00 sts 0x00BA, r24
ch_x=0;
59c: 10 92 89 00 sts 0x0089, r1
xini(0);
5a0: 80 e0 ldi r24, 0x00 ; 0
5a2: 0e 94 9b 00 call 0x136 <xini>
dlay(80);
5a6: 80 e5 ldi r24, 0x50 ; 80
5a8: 90 e0 ldi r25, 0x00 ; 0
5aa: 0e 94 4f 00 call 0x9e <dlay>
TCNT0=220;
5ae: 8c ed ldi r24, 0xDC ; 220
5b0: 82 bf out 0x32, r24 ; 50
TIMSK=(1<<TOIE0);
5b2: 81 e0 ldi r24, 0x01 ; 1
5b4: 89 bf out 0x39, r24 ; 57
sei();
5b6: 78 94 sei
5b8: 08 95 ret
000005ba <shu_f>:
}
uch dip;//小数点
uch shu_z;//符号
uch _shu[6];
void shu_f(int x){
5ba: 9c 01 movw r18, r24
uint tep;
if(x<0){shu_z=1;x=~x+1;}
5bc: 97 ff sbrs r25, 7
5be: 06 c0 rjmp .+12 ; 0x5cc <shu_f+0x12>
5c0: 81 e0 ldi r24, 0x01 ; 1
5c2: 80 93 b9 00 sts 0x00B9, r24
5c6: 30 95 com r19
5c8: 21 95 neg r18
5ca: 3f 4f sbci r19, 0xFF ; 255
_shu[3]=x/1000;
5cc: c9 01 movw r24, r18
5ce: 68 ee ldi r22, 0xE8 ; 232
5d0: 73 e0 ldi r23, 0x03 ; 3
5d2: 0e 94 94 09 call 0x1328 <__divmodhi4>
5d6: 60 93 93 00 sts 0x0093, r22
tep=x%1000;
5da: c9 01 movw r24, r18
5dc: 68 ee ldi r22, 0xE8 ; 232
5de: 73 e0 ldi r23, 0x03 ; 3
5e0: 0e 94 94 09 call 0x1328 <__divmodhi4>
5e4: 9c 01 movw r18, r24
_shu[2]=tep/100;
5e6: 64 e6 ldi r22, 0x64 ; 100
5e8: 70 e0 ldi r23, 0x00 ; 0
5ea: 0e 94 80 09 call 0x1300 <__udivmodhi4>
5ee: 60 93 92 00 sts 0x0092, r22
x=tep%100;
5f2: c9 01 movw r24, r18
5f4: 64 e6 ldi r22, 0x64 ; 100
5f6: 70 e0 ldi r23, 0x00 ; 0
5f8: 0e 94 80 09 call 0x1300 <__udivmodhi4>
5fc: 9c 01 movw r18, r24
_shu[1]=x/10;
5fe: 6a e0 ldi r22, 0x0A ; 10
600: 70 e0 ldi r23, 0x00 ; 0
602: 0e 94 94 09 call 0x1328 <__divmodhi4>
606: 60 93 91 00 sts 0x0091, r22
_shu[0]=x%10;
60a: c9 01 movw r24, r18
60c: 6a e0 ldi r22, 0x0A ; 10
60e: 70 e0 ldi r23, 0x00 ; 0
610: 0e 94 94 09 call 0x1328 <__divmodhi4>
614: 80 93 90 00 sts 0x0090, r24
618: 08 95 ret
0000061a <di_OA>:
}
void di_OA(int x,uch a){//下行显示电流
61a: ff 92 push r15
61c: 0f 93 push r16
61e: 1f 93 push r17
620: 16 2f mov r17, r22
shu_f(x);
622: 0e 94 dd 02 call 0x5ba <shu_f>
xy_ch[a][0]='V';
626: 01 2f mov r16, r17
628: 11 27 eor r17, r17
62a: 33 e0 ldi r19, 0x03 ; 3
62c: 00 0f add r16, r16
62e: 11 1f adc r17, r17
630: 3a 95 dec r19
632: e1 f7 brne .-8 ; 0x62c <di_OA+0x12>
634: 02 51 subi r16, 0x12 ; 18
636: 1f 4f sbci r17, 0xFF ; 255
638: 86 e5 ldi r24, 0x56 ; 86
63a: f8 01 movw r30, r16
63c: 80 83 st Z, r24
xy_ch[a][1]='A';
63e: 21 e4 ldi r18, 0x41 ; 65
640: f2 2e mov r15, r18
642: f1 82 std Z+1, r15 ; 0x01
xy_ch[a][2]=':';
644: 8a e3 ldi r24, 0x3A ; 58
646: 82 83 std Z+2, r24 ; 0x02
xy_ch[a][3]=ascii_s(_shu[2]);
648: 80 91 92 00 lds r24, 0x0092
64c: 0e 94 47 00 call 0x8e <ascii_s>
650: f8 01 movw r30, r16
652: 83 83 std Z+3, r24 ; 0x03
xy_ch[a][4]='.';
654: 8e e2 ldi r24, 0x2E ; 46
656: 84 83 std Z+4, r24 ; 0x04
xy_ch[a][5]=ascii_s(_shu[1]);
658: 80 91 91 00 lds r24, 0x0091
65c: 0e 94 47 00 call 0x8e <ascii_s>
660: f8 01 movw r30, r16
662: 85 83 std Z+5, r24 ; 0x05
xy_ch[a][6]=ascii_s(_shu[0]);
664: 80 91 90 00 lds r24, 0x0090
668: 0e 94 47 00 call 0x8e <ascii_s>
66c: f8 01 movw r30, r16
66e: 86 83 std Z+6, r24 ; 0x06
xy_ch[a][7]='A';
670: f7 82 std Z+7, r15 ; 0x07
672: 1f 91 pop r17
674: 0f 91 pop r16
676: ff 90 pop r15
678: 08 95 ret
0000067a <di_VI>:
}
void di_VI(int x,uch a){//下行显示输入电压
67a: ff 92 push r15
67c: 0f 93 push r16
67e: 1f 93 push r17
680: 16 2f mov r17, r22
shu_f(x);
682: 0e 94 dd 02 call 0x5ba <shu_f>
xy_ch[a][0]='V';
686: 01 2f mov r16, r17
688: 11 27 eor r17, r17
68a: 53 e0 ldi r21, 0x03 ; 3
68c: 00 0f add r16, r16
68e: 11 1f adc r17, r17
690: 5a 95 dec r21
692: e1 f7 brne .-8 ; 0x68c <di_VI+0x12>
694: 02 51 subi r16, 0x12 ; 18
696: 1f 4f sbci r17, 0xFF ; 255
698: 46 e5 ldi r20, 0x56 ; 86
69a: f4 2e mov r15, r20
69c: f8 01 movw r30, r16
69e: f0 82 st Z, r15
xy_ch[a][1]='I';
6a0: 89 e4 ldi r24, 0x49 ; 73
6a2: 81 83 std Z+1, r24 ; 0x01
xy_ch[a][2]=':';
6a4: 8a e3 ldi r24, 0x3A ; 58
6a6: 82 83 std Z+2, r24 ; 0x02
xy_ch[a][3]=ascii_s(_shu[2]);
6a8: 80 91 92 00 lds r24, 0x0092
6ac: 0e 94 47 00 call 0x8e <ascii_s>
6b0: f8 01 movw r30, r16
6b2: 83 83 std Z+3, r24 ; 0x03
xy_ch[a][4]=ascii_s(_shu[1]);
6b4: 80 91 91 00 lds r24, 0x0091
6b8: 0e 94 47 00 call 0x8e <ascii_s>
6bc: f8 01 movw r30, r16
6be: 84 83 std Z+4, r24 ; 0x04
xy_ch[a][5]='.';
6c0: 8e e2 ldi r24, 0x2E ; 46
6c2: 85 83 std Z+5, r24 ; 0x05
xy_ch[a][6]=ascii_s(_shu[0]);
6c4: 80 91 90 00 lds r24, 0x0090
6c8: 0e 94 47 00 call 0x8e <ascii_s>
6cc: f8 01 movw r30, r16
6ce: 86 83 std Z+6, r24 ; 0x06
xy_ch[a][7]='V';
6d0: f7 82 std Z+7, r15 ; 0x07
6d2: 1f 91 pop r17
6d4: 0f 91 pop r16
6d6: ff 90 pop r15
6d8: 08 95 ret
000006da <di_Vo>:
}
void di_Vo(int x,uch a){//下行显示输出电压
6da: ff 92 push r15
6dc: 0f 93 push r16
6de: 1f 93 push r17
6e0: 16 2f mov r17, r22
shu_f(x);
6e2: 0e 94 dd 02 call 0x5ba <shu_f>
xy_ch[a][0]='V';
6e6: 01 2f mov r16, r17
6e8: 11 27 eor r17, r17
6ea: 73 e0 ldi r23, 0x03 ; 3
6ec: 00 0f add r16, r16
6ee: 11 1f adc r17, r17
6f0: 7a 95 dec r23
6f2: e1 f7 brne .-8 ; 0x6ec <di_Vo+0x12>
6f4: 02 51 subi r16, 0x12 ; 18
6f6: 1f 4f sbci r17, 0xFF ; 255
6f8: 66 e5 ldi r22, 0x56 ; 86
6fa: f6 2e mov r15, r22
6fc: f8 01 movw r30, r16
6fe: f0 82 st Z, r15
xy_ch[a][1]='o';
700: 8f e6 ldi r24, 0x6F ; 111
702: 81 83 std Z+1, r24 ; 0x01
xy_ch[a][2]=':';
704: 8a e3 ldi r24, 0x3A ; 58
706: 82 83 std Z+2, r24 ; 0x02
xy_ch[a][3]=ascii_s(_shu[2]);
708: 80 91 92 00 lds r24, 0x0092
70c: 0e 94 47 00 call 0x8e <ascii_s>
710: f8 01 movw r30, r16
712: 83 83 std Z+3, r24 ; 0x03
xy_ch[a][4]=ascii_s(_shu[1]);
714: 80 91 91 00 lds r24, 0x0091
718: 0e 94 47 00 call 0x8e <ascii_s>
71c: f8 01 movw r30, r16
71e: 84 83 std Z+4, r24 ; 0x04
xy_ch[a][5]='.';
720: 8e e2 ldi r24, 0x2E ; 46
722: 85 83 std Z+5, r24 ; 0x05
xy_ch[a][6]=ascii_s(_shu[0]);
724: 80 91 90 00 lds r24, 0x0090
728: 0e 94 47 00 call 0x8e <ascii_s>
72c: f8 01 movw r30, r16
72e: 86 83 std Z+6, r24 ; 0x06
xy_ch[a][7]='V';
730: f7 82 std Z+7, r15 ; 0x07
732: 1f 91 pop r17
734: 0f 91 pop r16
736: ff 90 pop r15
738: 08 95 ret
0000073a <di_Vout>:
}
void di_Vout(int x,uch a){//下行显示输入电压
73a: 0f 93 push r16
73c: 1f 93 push r17
73e: cf 93 push r28
740: 16 2f mov r17, r22
shu_f(x);
742: 0e 94 dd 02 call 0x5ba <shu_f>
xy_ch[a][0]='V';
746: 01 2f mov r16, r17
748: 11 27 eor r17, r17
74a: e3 e0 ldi r30, 0x03 ; 3
74c: 00 0f add r16, r16
74e: 11 1f adc r17, r17
750: ea 95 dec r30
752: e1 f7 brne .-8 ; 0x74c <di_Vout+0x12>
754: 02 51 subi r16, 0x12 ; 18
756: 1f 4f sbci r17, 0xFF ; 255
758: c6 e5 ldi r28, 0x56 ; 86
75a: f8 01 movw r30, r16
75c: c0 83 st Z, r28
xy_ch[a][1]='O';
75e: 8f e4 ldi r24, 0x4F ; 79
760: 81 83 std Z+1, r24 ; 0x01
xy_ch[a][2]=':';
762: 8a e3 ldi r24, 0x3A ; 58
764: 82 83 std Z+2, r24 ; 0x02
xy_ch[a][3]=ascii_s(_shu[2]);
766: 80 91 92 00 lds r24, 0x0092
76a: 0e 94 47 00 call 0x8e <ascii_s>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -