⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 7455.lss

📁 GY-29-MMA7455发送资料
💻 LSS
📖 第 1 页 / 共 3 页
字号:

7455.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00000516  00000000  00000000  00000074  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         0000002e  00800060  00000516  0000058a  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          0000000f  0080008e  00000544  000005b8  2**0
                  ALLOC
  3 .debug_aranges 00000020  00000000  00000000  000005b8  2**0
                  CONTENTS, READONLY, DEBUGGING
  4 .debug_pubnames 0000011a  00000000  00000000  000005d8  2**0
                  CONTENTS, READONLY, DEBUGGING
  5 .debug_info   000006ad  00000000  00000000  000006f2  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_abbrev 0000020a  00000000  00000000  00000d9f  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_line   000007ca  00000000  00000000  00000fa9  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_frame  00000130  00000000  00000000  00001774  2**2
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_str    000001af  00000000  00000000  000018a4  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_loc    0000010f  00000000  00000000  00001a53  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	0c 94 2a 00 	jmp	0x54	; 0x54 <__ctors_end>
   4:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
   8:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
   c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  10:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  14:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  18:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  1c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  20:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  24:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  28:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  2c:	0c 94 5b 01 	jmp	0x2b6	; 0x2b6 <__vector_11>
  30:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  34:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  38:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  3c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  40:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  44:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  48:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  4c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  50:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>

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:	e6 e1       	ldi	r30, 0x16	; 22
  68:	f5 e0       	ldi	r31, 0x05	; 5
  6a:	02 c0       	rjmp	.+4      	; 0x70 <.do_copy_data_start>

0000006c <.do_copy_data_loop>:
  6c:	05 90       	lpm	r0, Z+
  6e:	0d 92       	st	X+, r0

00000070 <.do_copy_data_start>:
  70:	ae 38       	cpi	r26, 0x8E	; 142
  72:	b1 07       	cpc	r27, r17
  74:	d9 f7       	brne	.-10     	; 0x6c <.do_copy_data_loop>

00000076 <__do_clear_bss>:
  76:	10 e0       	ldi	r17, 0x00	; 0
  78:	ae e8       	ldi	r26, 0x8E	; 142
  7a:	b0 e0       	ldi	r27, 0x00	; 0
  7c:	01 c0       	rjmp	.+2      	; 0x80 <.do_clear_bss_start>

0000007e <.do_clear_bss_loop>:
  7e:	1d 92       	st	X+, r1

00000080 <.do_clear_bss_start>:
  80:	ad 39       	cpi	r26, 0x9D	; 157
  82:	b1 07       	cpc	r27, r17
  84:	e1 f7       	brne	.-8      	; 0x7e <.do_clear_bss_loop>
  86:	0e 94 78 02 	call	0x4f0	; 0x4f0 <main>
  8a:	0c 94 89 02 	jmp	0x512	; 0x512 <_exit>

0000008e <__bad_interrupt>:
  8e:	0c 94 00 00 	jmp	0	; 0x0 <__vectors>

00000092 <usart_init>:
extern void twi_read_8(uchar adress);
extern void init_mma7455(void);

//串口通信初始化
void usart_init(void)
{
  92:	1a b8       	out	0x0a, r1	; 10
	UCSRB = 0x00;//禁止中断
	UCSRA = 0x00;
  94:	1b b8       	out	0x0b, r1	; 11
	UCSRC = BIT(URSEL) | 0x06;
  96:	86 e8       	ldi	r24, 0x86	; 134
  98:	80 bd       	out	0x20, r24	; 32
	UBRRL = 0x0C;
  9a:	8c e0       	ldi	r24, 0x0C	; 12
  9c:	89 b9       	out	0x09, r24	; 9
	UBRRH = 0x00;
  9e:	10 bc       	out	0x20, r1	; 32
	UCSRB = 0x98;
  a0:	88 e9       	ldi	r24, 0x98	; 152
  a2:	8a b9       	out	0x0a, r24	; 10
}
  a4:	08 95       	ret

000000a6 <twi_init>:
extern uchar reg;


//TWI初始化函数
void twi_init(void)
{
  a6:	16 be       	out	0x36, r1	; 54
	TWCR = 0x00; //禁止TWI
	TWBR = 0x00; //设置比特率
  a8:	10 b8       	out	0x00, r1	; 0
	TWAR = 0x3A; //设置从机地址
  aa:	8a e3       	ldi	r24, 0x3A	; 58
  ac:	82 b9       	out	0x02, r24	; 2
	TWSR|= 0x00; //设置分频因子
  ae:	81 b1       	in	r24, 0x01	; 1
  b0:	81 b9       	out	0x01, r24	; 1
	TWCR = 0x44; //启动TWI
  b2:	84 e4       	ldi	r24, 0x44	; 68
  b4:	86 bf       	out	0x36, r24	; 54
}
  b6:	08 95       	ret

000000b8 <twi_start>:

uchar twi_start(void)
{
  b8:	84 ea       	ldi	r24, 0xA4	; 164
  ba:	86 bf       	out	0x36, r24	; 54
	TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
	while (!(TWCR & (1<<TWINT)));
  bc:	06 b6       	in	r0, 0x36	; 54
  be:	07 fe       	sbrs	r0, 7
  c0:	fd cf       	rjmp	.-6      	; 0xbc <twi_start+0x4>
	if((TWSR & 0xf8)==TW_START)
  c2:	81 b1       	in	r24, 0x01	; 1
  c4:	88 7f       	andi	r24, 0xF8	; 248
  c6:	88 30       	cpi	r24, 0x08	; 8
  c8:	11 f4       	brne	.+4      	; 0xce <twi_start+0x16>
  ca:	81 e0       	ldi	r24, 0x01	; 1
  cc:	08 95       	ret
	{
		return 1;
	}
	else if((TWSR & 0xf8)==TW_REP_START)
  ce:	81 b1       	in	r24, 0x01	; 1
  d0:	88 7f       	andi	r24, 0xF8	; 248
  d2:	80 31       	cpi	r24, 0x10	; 16
  d4:	11 f0       	breq	.+4      	; 0xda <twi_start+0x22>
  d6:	80 e0       	ldi	r24, 0x00	; 0
  d8:	08 95       	ret
  da:	82 e0       	ldi	r24, 0x02	; 2
	}
	else
	{
		return 0;
	}
}
  dc:	08 95       	ret

000000de <twi_stop>:


//停止通信,发送STOP信号
void twi_stop(void)
{
  de:	84 e9       	ldi	r24, 0x94	; 148
  e0:	86 bf       	out	0x36, r24	; 54
	TWCR = (1<<TWINT)|(1<<TWSTO)|(1<<TWEN);
}
  e2:	08 95       	ret

000000e4 <twi_to_write>:

//返回值:	1表示成功,0表示失败
uchar twi_to_write(void)
{
  e4:	82 b1       	in	r24, 0x02	; 2
  e6:	83 b9       	out	0x03, r24	; 3
	TWDR=TWAR;
	TWCR = (1<<TWINT) | (1<<TWEN);
  e8:	84 e8       	ldi	r24, 0x84	; 132
  ea:	86 bf       	out	0x36, r24	; 54
	while (!(TWCR & (1<<TWINT)));
  ec:	06 b6       	in	r0, 0x36	; 54
  ee:	07 fe       	sbrs	r0, 7
  f0:	fd cf       	rjmp	.-6      	; 0xec <twi_to_write+0x8>
	if((TWSR & 0xf8)==TW_MT_SLA_ACK)
  f2:	81 b1       	in	r24, 0x01	; 1
  f4:	90 e0       	ldi	r25, 0x00	; 0
  f6:	88 7f       	andi	r24, 0xF8	; 248
  f8:	88 31       	cpi	r24, 0x18	; 24
  fa:	09 f4       	brne	.+2      	; 0xfe <twi_to_write+0x1a>
  fc:	91 e0       	ldi	r25, 0x01	; 1
	}
	else
	{
		return 0;
	}
}
  fe:	89 2f       	mov	r24, r25
 100:	08 95       	ret

00000102 <twi_to_read>:

//返回值:	1表示成功,0表示失败
uchar twi_to_read(void)
{
 102:	82 b1       	in	r24, 0x02	; 2
 104:	8f 5f       	subi	r24, 0xFF	; 255
 106:	83 b9       	out	0x03, r24	; 3
	TWDR=TWAR+1;
	TWCR = (1<<TWINT) | (1<<TWEN);
 108:	84 e8       	ldi	r24, 0x84	; 132
 10a:	86 bf       	out	0x36, r24	; 54
	while (!(TWCR & (1<<TWINT)));
 10c:	06 b6       	in	r0, 0x36	; 54
 10e:	07 fe       	sbrs	r0, 7
 110:	fd cf       	rjmp	.-6      	; 0x10c <twi_to_read+0xa>
	if((TWSR & 0xf8)==TW_MR_SLA_ACK )
 112:	81 b1       	in	r24, 0x01	; 1
 114:	90 e0       	ldi	r25, 0x00	; 0
 116:	88 7f       	andi	r24, 0xF8	; 248
 118:	80 34       	cpi	r24, 0x40	; 64
 11a:	09 f4       	brne	.+2      	; 0x11e <twi_to_read+0x1c>
 11c:	91 e0       	ldi	r25, 0x01	; 1
	}
	else
	{
		return 0;
	}
}
 11e:	89 2f       	mov	r24, r25
 120:	08 95       	ret

00000122 <twi_send>:

//返回值: 0表示失败,1表示接到ACK,2表示接NOT ACK
uchar twi_send(uchar data)
{
 122:	83 b9       	out	0x03, r24	; 3
	TWDR=data;
	TWCR = (1<<TWINT) | (1<<TWEN);
 124:	84 e8       	ldi	r24, 0x84	; 132
 126:	86 bf       	out	0x36, r24	; 54
	while (!(TWCR & (1<<TWINT)));
 128:	06 b6       	in	r0, 0x36	; 54
 12a:	07 fe       	sbrs	r0, 7
 12c:	fd cf       	rjmp	.-6      	; 0x128 <twi_send+0x6>
	if ((TWSR & 0xF8) ==TW_MT_DATA_ACK)
 12e:	81 b1       	in	r24, 0x01	; 1
 130:	88 7f       	andi	r24, 0xF8	; 248
 132:	88 32       	cpi	r24, 0x28	; 40
 134:	11 f4       	brne	.+4      	; 0x13a <twi_send+0x18>
 136:	81 e0       	ldi	r24, 0x01	; 1
 138:	08 95       	ret
	{
		return 1;
	}
	else if ((TWSR & 0xF8) ==TW_MT_DATA_NACK)
 13a:	81 b1       	in	r24, 0x01	; 1
 13c:	88 7f       	andi	r24, 0xF8	; 248
 13e:	80 33       	cpi	r24, 0x30	; 48
 140:	11 f0       	breq	.+4      	; 0x146 <twi_send+0x24>
 142:	80 e0       	ldi	r24, 0x00	; 0
 144:	08 95       	ret
 146:	82 e0       	ldi	r24, 0x02	; 2
	}
	else
	{
		return 0;
	}
}
 148:	08 95       	ret

0000014a <twi_receive>:

//返回值: 0表示失败,1表示接到ACK,2表示接NOT ACK
uchar twi_receive(void)
{
 14a:	84 e8       	ldi	r24, 0x84	; 132
 14c:	86 bf       	out	0x36, r24	; 54
	TWCR = (1<<TWINT) | (1<<TWEN);
	while (!(TWCR & (1<<TWINT)));
 14e:	06 b6       	in	r0, 0x36	; 54
 150:	07 fe       	sbrs	r0, 7
 152:	fd cf       	rjmp	.-6      	; 0x14e <twi_receive+0x4>
	a=TWDR;
 154:	83 b1       	in	r24, 0x03	; 3
 156:	80 93 8e 00 	sts	0x008E, r24
	if ((TWSR & 0xF8) ==TW_MR_DATA_ACK)
 15a:	81 b1       	in	r24, 0x01	; 1
 15c:	88 7f       	andi	r24, 0xF8	; 248
 15e:	80 35       	cpi	r24, 0x50	; 80
 160:	11 f4       	brne	.+4      	; 0x166 <twi_receive+0x1c>
 162:	81 e0       	ldi	r24, 0x01	; 1
 164:	08 95       	ret
	{
		return 1;
	}
	else if ((TWSR & 0xF8) ==TW_MR_DATA_NACK)
 166:	81 b1       	in	r24, 0x01	; 1
 168:	88 7f       	andi	r24, 0xF8	; 248
 16a:	88 35       	cpi	r24, 0x58	; 88
 16c:	11 f0       	breq	.+4      	; 0x172 <twi_receive+0x28>
 16e:	80 e0       	ldi	r24, 0x00	; 0
 170:	08 95       	ret
 172:	82 e0       	ldi	r24, 0x02	; 2
	}
	else
	{
		return 0;
	}
}
 174:	08 95       	ret

00000176 <twi_write_8>:


void twi_write_8(uchar adress,uchar com)
{
 176:	28 2f       	mov	r18, r24
	TWCR = 0x44; //启动TWI
}

uchar twi_start(void)
{
	TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
 178:	94 ea       	ldi	r25, 0xA4	; 164
 17a:	96 bf       	out	0x36, r25	; 54
	while (!(TWCR & (1<<TWINT)));
 17c:	06 b6       	in	r0, 0x36	; 54
 17e:	07 fe       	sbrs	r0, 7
 180:	fd cf       	rjmp	.-6      	; 0x17c <twi_write_8+0x6>
	if((TWSR & 0xf8)==TW_START)
 182:	81 b1       	in	r24, 0x01	; 1
 184:	88 7f       	andi	r24, 0xF8	; 248
 186:	88 30       	cpi	r24, 0x08	; 8
 188:	21 f0       	breq	.+8      	; 0x192 <twi_write_8+0x1c>
	{
		return 1;
	}
	else if((TWSR & 0xf8)==TW_REP_START)
 18a:	81 b1       	in	r24, 0x01	; 1
 18c:	88 7f       	andi	r24, 0xF8	; 248
 18e:	80 31       	cpi	r24, 0x10	; 16
 190:	a1 f7       	brne	.-24     	; 0x17a <twi_write_8+0x4>

//返回值:	1表示成功,0表示失败
uchar twi_to_write(void)
{
	TWDR=TWAR;
	TWCR = (1<<TWINT) | (1<<TWEN);
 192:	94 e8       	ldi	r25, 0x84	; 132
}

//返回值:	1表示成功,0表示失败
uchar twi_to_write(void)
{
	TWDR=TWAR;
 194:	82 b1       	in	r24, 0x02	; 2
 196:	83 b9       	out	0x03, r24	; 3
	TWCR = (1<<TWINT) | (1<<TWEN);
 198:	96 bf       	out	0x36, r25	; 54
	while (!(TWCR & (1<<TWINT)));
 19a:	06 b6       	in	r0, 0x36	; 54
 19c:	07 fe       	sbrs	r0, 7
 19e:	fd cf       	rjmp	.-6      	; 0x19a <twi_write_8+0x24>
	if((TWSR & 0xf8)==TW_MT_SLA_ACK)
 1a0:	81 b1       	in	r24, 0x01	; 1
 1a2:	88 7f       	andi	r24, 0xF8	; 248
 1a4:	88 31       	cpi	r24, 0x18	; 24

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -