📄 7455.lss
字号:
364: f0 91 91 00 lds r31, 0x0091
368: ee 56 subi r30, 0x6E ; 110
36a: ff 4f sbci r31, 0xFF ; 255
36c: 60 81 ld r22, Z
36e: 84 e1 ldi r24, 0x14 ; 20
370: f0 cf rjmp .-32 ; 0x352 <__vector_11+0x9c>
}
else if(stmp=='r')
372: 80 91 92 00 lds r24, 0x0092
376: 82 37 cpi r24, 0x72 ; 114
378: 11 f4 brne .+4 ; 0x37e <__vector_11+0xc8>
{
init_mma7455();
37a: 0e 94 46 01 call 0x28c ; 0x28c <init_mma7455>
}
}
inbufcount=0;//放在这来起来延时的作用.一举两得.
37e: 10 92 91 00 sts 0x0091, r1
382: 10 92 90 00 sts 0x0090, r1
}
386: ff 91 pop r31
388: ef 91 pop r30
38a: bf 91 pop r27
38c: af 91 pop r26
38e: 9f 91 pop r25
390: 8f 91 pop r24
392: 7f 91 pop r23
394: 6f 91 pop r22
396: 5f 91 pop r21
398: 4f 91 pop r20
39a: 3f 91 pop r19
39c: 2f 91 pop r18
39e: 0f 90 pop r0
3a0: 0f be out 0x3f, r0 ; 63
3a2: 0f 90 pop r0
3a4: 1f 90 pop r1
3a6: 18 95 reti
000003a8 <port_init>:
uchar a=0;
uchar reg=0;
void port_init(void)
{
3a8: 81 e0 ldi r24, 0x01 ; 1
3aa: 8b bb out 0x1b, r24 ; 27
PORTA = 0x01;
DDRA = 0xFF;
3ac: 9f ef ldi r25, 0xFF ; 255
3ae: 9a bb out 0x1a, r25 ; 26
PORTB = 0x00;
3b0: 18 ba out 0x18, r1 ; 24
DDRB = 0x00;
3b2: 17 ba out 0x17, r1 ; 23
PORTC = 0x48;
3b4: 88 e4 ldi r24, 0x48 ; 72
3b6: 85 bb out 0x15, r24 ; 21
DDRC = 0x6C;
3b8: 8c e6 ldi r24, 0x6C ; 108
3ba: 84 bb out 0x14, r24 ; 20
PORTD = 0xFF;
3bc: 92 bb out 0x12, r25 ; 18
DDRD = 0xFF;
3be: 91 bb out 0x11, r25 ; 17
}
3c0: 08 95 ret
000003c2 <init_devices>:
void init_devices(void)
{
3c2: f8 94 cli
cli(); //禁止所有中断
MCUCR = 0x00;
3c4: 15 be out 0x35, r1 ; 53
MCUCSR = 0x80;//禁止JTAG
3c6: 80 e8 ldi r24, 0x80 ; 128
3c8: 84 bf out 0x34, r24 ; 52
GICR = 0x00;
3ca: 1b be out 0x3b, r1 ; 59
uchar a=0;
uchar reg=0;
void port_init(void)
{
PORTA = 0x01;
3cc: 81 e0 ldi r24, 0x01 ; 1
3ce: 8b bb out 0x1b, r24 ; 27
DDRA = 0xFF;
3d0: 9f ef ldi r25, 0xFF ; 255
3d2: 9a bb out 0x1a, r25 ; 26
PORTB = 0x00;
3d4: 18 ba out 0x18, r1 ; 24
DDRB = 0x00;
3d6: 17 ba out 0x17, r1 ; 23
PORTC = 0x48;
3d8: 88 e4 ldi r24, 0x48 ; 72
3da: 85 bb out 0x15, r24 ; 21
DDRC = 0x6C;
3dc: 8c e6 ldi r24, 0x6C ; 108
3de: 84 bb out 0x14, r24 ; 20
PORTD = 0xFF;
3e0: 92 bb out 0x12, r25 ; 18
DDRD = 0xFF;
3e2: 91 bb out 0x11, r25 ; 17
//TWI初始化函数
void twi_init(void)
{
TWCR = 0x00; //禁止TWI
3e4: 16 be out 0x36, r1 ; 54
TWBR = 0x00; //设置比特率
3e6: 10 b8 out 0x00, r1 ; 0
TWAR = 0x3A; //设置从机地址
3e8: 8a e3 ldi r24, 0x3A ; 58
3ea: 82 b9 out 0x02, r24 ; 2
TWSR|= 0x00; //设置分频因子
3ec: 81 b1 in r24, 0x01 ; 1
3ee: 81 b9 out 0x01, r24 ; 1
TWCR = 0x44; //启动TWI
3f0: 84 e4 ldi r24, 0x44 ; 68
3f2: 86 bf out 0x36, r24 ; 54
extern void init_mma7455(void);
//串口通信初始化
void usart_init(void)
{
UCSRB = 0x00;//禁止中断
3f4: 1a b8 out 0x0a, r1 ; 10
UCSRA = 0x00;
3f6: 1b b8 out 0x0b, r1 ; 11
UCSRC = BIT(URSEL) | 0x06;
3f8: 86 e8 ldi r24, 0x86 ; 134
3fa: 80 bd out 0x20, r24 ; 32
UBRRL = 0x0C;
3fc: 8c e0 ldi r24, 0x0C ; 12
3fe: 89 b9 out 0x09, r24 ; 9
UBRRH = 0x00;
400: 10 bc out 0x20, r1 ; 32
UCSRB = 0x98;
402: 88 e9 ldi r24, 0x98 ; 152
404: 8a b9 out 0x0a, r24 ; 10
MCUCSR = 0x80;//禁止JTAG
GICR = 0x00;
port_init();
twi_init();
usart_init();
}
406: 08 95 ret
00000408 <print>:
void print()
{
408: 20 ed ldi r18, 0xD0 ; 208
40a: 37 e0 ldi r19, 0x07 ; 7
40c: c9 01 movw r24, r18
40e: 01 97 sbiw r24, 0x01 ; 1
410: f1 f7 brne .-4 ; 0x40e <print+0x6>
_delay_ms(1);
UDR=a/100+48;
412: 40 91 8e 00 lds r20, 0x008E
416: 84 2f mov r24, r20
418: 64 e6 ldi r22, 0x64 ; 100
41a: 0e 94 7d 02 call 0x4fa ; 0x4fa <__udivmodqi4>
41e: 80 5d subi r24, 0xD0 ; 208
420: 8c b9 out 0x0c, r24 ; 12
milliseconds can be achieved.
*/
void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
422: c9 01 movw r24, r18
424: 01 97 sbiw r24, 0x01 ; 1
426: f1 f7 brne .-4 ; 0x424 <print+0x1c>
_delay_ms(1);
UDR=a%100/10+48;
428: 84 2f mov r24, r20
42a: 0e 94 7d 02 call 0x4fa ; 0x4fa <__udivmodqi4>
42e: 89 2f mov r24, r25
430: 6a e0 ldi r22, 0x0A ; 10
432: 0e 94 7d 02 call 0x4fa ; 0x4fa <__udivmodqi4>
436: 80 5d subi r24, 0xD0 ; 208
438: 8c b9 out 0x0c, r24 ; 12
43a: c9 01 movw r24, r18
43c: 01 97 sbiw r24, 0x01 ; 1
43e: f1 f7 brne .-4 ; 0x43c <print+0x34>
_delay_ms(1);
UDR=a%10+48;
440: 84 2f mov r24, r20
442: 0e 94 7d 02 call 0x4fa ; 0x4fa <__udivmodqi4>
446: 90 5d subi r25, 0xD0 ; 208
448: 9c b9 out 0x0c, r25 ; 12
44a: c9 01 movw r24, r18
44c: 01 97 sbiw r24, 0x01 ; 1
44e: f1 f7 brne .-4 ; 0x44c <print+0x44>
_delay_ms(1);
UDR='\n';
450: 8a e0 ldi r24, 0x0A ; 10
452: 8c b9 out 0x0c, r24 ; 12
454: c9 01 movw r24, r18
456: 01 97 sbiw r24, 0x01 ; 1
458: f1 f7 brne .-4 ; 0x456 <print+0x4e>
_delay_ms(1);
}
45a: 08 95 ret
0000045c <ssig>:
}
//发出串口正常信号.
void ssig(char a[])
{
45c: ac 01 movw r20, r24
int c=strlen(a);
45e: dc 01 movw r26, r24
460: 0d 90 ld r0, X+
462: 00 20 and r0, r0
464: e9 f7 brne .-6 ; 0x460 <__stack+0x1>
466: 11 97 sbiw r26, 0x01 ; 1
468: a8 1b sub r26, r24
46a: b9 0b sbc r27, r25
46c: 20 e0 ldi r18, 0x00 ; 0
46e: 30 e0 ldi r19, 0x00 ; 0
470: 68 e5 ldi r22, 0x58 ; 88
472: 72 e0 ldi r23, 0x02 ; 2
474: 0a c0 rjmp .+20 ; 0x48a <__stack+0x2b>
476: fb 01 movw r30, r22
478: 31 97 sbiw r30, 0x01 ; 1
47a: f1 f7 brne .-4 ; 0x478 <__stack+0x19>
//在这继续添加你的代码
for(int count=0;count<c;count++)
{
_delay_us(300);
UDR=a[count];
47c: fa 01 movw r30, r20
47e: e2 0f add r30, r18
480: f3 1f adc r31, r19
482: 80 81 ld r24, Z
484: 8c b9 out 0x0c, r24 ; 12
//发出串口正常信号.
void ssig(char a[])
{
int c=strlen(a);
//在这继续添加你的代码
for(int count=0;count<c;count++)
486: 2f 5f subi r18, 0xFF ; 255
488: 3f 4f sbci r19, 0xFF ; 255
48a: 2a 17 cp r18, r26
48c: 3b 07 cpc r19, r27
48e: 9c f3 brlt .-26 ; 0x476 <__stack+0x17>
490: 88 e5 ldi r24, 0x58 ; 88
492: 92 e0 ldi r25, 0x02 ; 2
494: 01 97 sbiw r24, 0x01 ; 1
496: f1 f7 brne .-4 ; 0x494 <__stack+0x35>
{
_delay_us(300);
UDR=a[count];
}
_delay_us(300);
}
498: 08 95 ret
0000049a <world>:
void world(void)
{
49a: ff 92 push r15
49c: 0f 93 push r16
49e: 1f 93 push r17
init_devices();
4a0: 0e 94 e1 01 call 0x3c2 ; 0x3c2 <init_devices>
//在这继续添加你的代码
ssig("控制器准备完毕,所有状态一切正常.\n\n姚璇制造.\n\n");
4a4: 80 e6 ldi r24, 0x60 ; 96
4a6: 90 e0 ldi r25, 0x00 ; 0
4a8: 0e 94 2e 02 call 0x45c ; 0x45c <ssig>
init_mma7455();
4ac: 0e 94 46 01 call 0x28c ; 0x28c <init_mma7455>
sei();
4b0: 78 94 sei
while(1)
{
cli();
twi_read_8(0x06);
sei();
UDR='X';
4b2: 88 e5 ldi r24, 0x58 ; 88
4b4: f8 2e mov r15, r24
print();
cli();
twi_read_8(0x07);
sei();
UDR='Y';
4b6: 09 e5 ldi r16, 0x59 ; 89
print();
cli();
twi_read_8(0x08);
sei();
UDR='Z';
4b8: 1a e5 ldi r17, 0x5A ; 90
sei();
while(1)
{
cli();
4ba: f8 94 cli
twi_read_8(0x06);
4bc: 86 e0 ldi r24, 0x06 ; 6
4be: 0e 94 f3 00 call 0x1e6 ; 0x1e6 <twi_read_8>
sei();
4c2: 78 94 sei
UDR='X';
4c4: fc b8 out 0x0c, r15 ; 12
print();
4c6: 0e 94 04 02 call 0x408 ; 0x408 <print>
cli();
4ca: f8 94 cli
twi_read_8(0x07);
4cc: 87 e0 ldi r24, 0x07 ; 7
4ce: 0e 94 f3 00 call 0x1e6 ; 0x1e6 <twi_read_8>
sei();
4d2: 78 94 sei
UDR='Y';
4d4: 0c b9 out 0x0c, r16 ; 12
print();
4d6: 0e 94 04 02 call 0x408 ; 0x408 <print>
cli();
4da: f8 94 cli
twi_read_8(0x08);
4dc: 88 e0 ldi r24, 0x08 ; 8
4de: 0e 94 f3 00 call 0x1e6 ; 0x1e6 <twi_read_8>
sei();
4e2: 78 94 sei
UDR='Z';
4e4: 1c b9 out 0x0c, r17 ; 12
print();
4e6: 0e 94 04 02 call 0x408 ; 0x408 <print>
a=0;
4ea: 10 92 8e 00 sts 0x008E, r1
4ee: e5 cf rjmp .-54 ; 0x4ba <world+0x20>
000004f0 <main>:
}
}
//主函数
int main(void)
{
4f0: 0e 94 4d 02 call 0x49a ; 0x49a <world>
world();
return 0;
}
4f4: 80 e0 ldi r24, 0x00 ; 0
4f6: 90 e0 ldi r25, 0x00 ; 0
4f8: 08 95 ret
000004fa <__udivmodqi4>:
4fa: 99 1b sub r25, r25
4fc: 79 e0 ldi r23, 0x09 ; 9
4fe: 04 c0 rjmp .+8 ; 0x508 <__udivmodqi4_ep>
00000500 <__udivmodqi4_loop>:
500: 99 1f adc r25, r25
502: 96 17 cp r25, r22
504: 08 f0 brcs .+2 ; 0x508 <__udivmodqi4_ep>
506: 96 1b sub r25, r22
00000508 <__udivmodqi4_ep>:
508: 88 1f adc r24, r24
50a: 7a 95 dec r23
50c: c9 f7 brne .-14 ; 0x500 <__udivmodqi4_loop>
50e: 80 95 com r24
510: 08 95 ret
00000512 <_exit>:
512: f8 94 cli
00000514 <__stop_program>:
514: ff cf rjmp .-2 ; 0x514 <__stop_program>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -