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

📄 usart.lss

📁 这是一个基于AVR系列单片机的程序
💻 LSS
字号:

usart.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         0000009e  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000000  00800060  0000009e  00000132  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000000  00800060  0000009e  00000132  2**0
                  ALLOC
  3 .noinit       00000000  00800060  00800060  00000132  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  00000132  2**0
                  CONTENTS
  5 .stab         0000036c  00000000  00000000  00000134  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      00000084  00000000  00000000  000004a0  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_aranges 00000014  00000000  00000000  00000524  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_pubnames 00000046  00000000  00000000  00000538  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_info   000000cc  00000000  00000000  0000057e  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_abbrev 0000007c  00000000  00000000  0000064a  2**0
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_line   000000f1  00000000  00000000  000006c6  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_str    00000099  00000000  00000000  000007b7  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	12 c0       	rjmp	.+36     	; 0x26 <__ctors_end>
   2:	2b c0       	rjmp	.+86     	; 0x5a <__bad_interrupt>
   4:	2a c0       	rjmp	.+84     	; 0x5a <__bad_interrupt>
   6:	29 c0       	rjmp	.+82     	; 0x5a <__bad_interrupt>
   8:	28 c0       	rjmp	.+80     	; 0x5a <__bad_interrupt>
   a:	27 c0       	rjmp	.+78     	; 0x5a <__bad_interrupt>
   c:	26 c0       	rjmp	.+76     	; 0x5a <__bad_interrupt>
   e:	25 c0       	rjmp	.+74     	; 0x5a <__bad_interrupt>
  10:	24 c0       	rjmp	.+72     	; 0x5a <__bad_interrupt>
  12:	23 c0       	rjmp	.+70     	; 0x5a <__bad_interrupt>
  14:	22 c0       	rjmp	.+68     	; 0x5a <__bad_interrupt>
  16:	21 c0       	rjmp	.+66     	; 0x5a <__bad_interrupt>
  18:	20 c0       	rjmp	.+64     	; 0x5a <__bad_interrupt>
  1a:	1f c0       	rjmp	.+62     	; 0x5a <__bad_interrupt>
  1c:	1e c0       	rjmp	.+60     	; 0x5a <__bad_interrupt>
  1e:	1d c0       	rjmp	.+58     	; 0x5a <__bad_interrupt>
  20:	1c c0       	rjmp	.+56     	; 0x5a <__bad_interrupt>
  22:	1b c0       	rjmp	.+54     	; 0x5a <__bad_interrupt>
  24:	1a c0       	rjmp	.+52     	; 0x5a <__bad_interrupt>

00000026 <__ctors_end>:
  26:	11 24       	eor	r1, r1
  28:	1f be       	out	0x3f, r1	; 63
  2a:	cf e5       	ldi	r28, 0x5F	; 95
  2c:	d4 e0       	ldi	r29, 0x04	; 4
  2e:	de bf       	out	0x3e, r29	; 62
  30:	cd bf       	out	0x3d, r28	; 61

00000032 <__do_copy_data>:
  32:	10 e0       	ldi	r17, 0x00	; 0
  34:	a0 e6       	ldi	r26, 0x60	; 96
  36:	b0 e0       	ldi	r27, 0x00	; 0
  38:	ee e9       	ldi	r30, 0x9E	; 158
  3a:	f0 e0       	ldi	r31, 0x00	; 0
  3c:	02 c0       	rjmp	.+4      	; 0x42 <.do_copy_data_start>

0000003e <.do_copy_data_loop>:
  3e:	05 90       	lpm	r0, Z+
  40:	0d 92       	st	X+, r0

00000042 <.do_copy_data_start>:
  42:	a0 36       	cpi	r26, 0x60	; 96
  44:	b1 07       	cpc	r27, r17
  46:	d9 f7       	brne	.-10     	; 0x3e <.do_copy_data_loop>

00000048 <__do_clear_bss>:
  48:	10 e0       	ldi	r17, 0x00	; 0
  4a:	a0 e6       	ldi	r26, 0x60	; 96
  4c:	b0 e0       	ldi	r27, 0x00	; 0
  4e:	01 c0       	rjmp	.+2      	; 0x52 <.do_clear_bss_start>

00000050 <.do_clear_bss_loop>:
  50:	1d 92       	st	X+, r1

00000052 <.do_clear_bss_start>:
  52:	a0 36       	cpi	r26, 0x60	; 96
  54:	b1 07       	cpc	r27, r17
  56:	e1 f7       	brne	.-8      	; 0x50 <.do_clear_bss_loop>
  58:	12 c0       	rjmp	.+36     	; 0x7e <main>

0000005a <__bad_interrupt>:
  5a:	d2 cf       	rjmp	.-92     	; 0x0 <__vectors>

0000005c <SendByte>:
//功能:通过串口发送一个字节
//------------------------------------------------------------------------------
void SendByte(unsigned char SendByte)
{
	while (!(UCSRA & (1 << UDRE)))
  5c:	5d 9b       	sbis	0x0b, 5	; 11
  5e:	fe cf       	rjmp	.-4      	; 0x5c <SendByte>
		;
	UDR = SendByte;
  60:	8c b9       	out	0x0c, r24	; 12
  62:	08 95       	ret

00000064 <ReceiveByte>:
}

//------------------------------------------------------------------------------
//名称:unsigned char ReceiveByte(void)
//功能:通过串口接收一个字节
//------------------------------------------------------------------------------
unsigned char ReceiveByte(void)
{
	while (!(UCSRA & (1<<RXC)))
  64:	5f 9b       	sbis	0x0b, 7	; 11
  66:	fe cf       	rjmp	.-4      	; 0x64 <ReceiveByte>
		;
	return UDR;
  68:	8c b1       	in	r24, 0x0c	; 12
}
  6a:	99 27       	eor	r25, r25
  6c:	08 95       	ret

0000006e <UsartInit>:

//------------------------------------------------------------------------------
//名称:void UsartInit(void)
//功能:初始化串口
//------------------------------------------------------------------------------
void UsartInit(void)
{	
	UBRRH = (F_CPU / 16 /BAUD - 1) / 256;
  6e:	10 bc       	out	0x20, r1	; 32
	UBRRL = F_CPU / 16 /BAUD - 1;
  70:	83 e3       	ldi	r24, 0x33	; 51
  72:	89 b9       	out	0x09, r24	; 9
	//根据给出的的波特率、时钟频率计算UBRH、UBRL的值	
	UCSRB = (1 << RXEN) | (1 << TXEN);
  74:	88 e1       	ldi	r24, 0x18	; 24
  76:	8a b9       	out	0x0a, r24	; 10
	//允许发送接收
	UCSRC = (1 << URSEL) | (1 << UCSZ1) | (1 << UCSZ0);	
  78:	86 e8       	ldi	r24, 0x86	; 134
  7a:	80 bd       	out	0x20, r24	; 32
  7c:	08 95       	ret

0000007e <main>:
	//一个停止位,8位数据,无校验      
}

//******************************************************************************
//主程序
//******************************************************************************

int main(void)
{
  7e:	cf e5       	ldi	r28, 0x5F	; 95
  80:	d4 e0       	ldi	r29, 0x04	; 4
  82:	de bf       	out	0x3e, r29	; 62
  84:	cd bf       	out	0x3d, r28	; 61
	UsartInit();	
  86:	f3 df       	rcall	.-26     	; 0x6e <UsartInit>
	SendByte(0x5a);	
  88:	8a e5       	ldi	r24, 0x5A	; 90
  8a:	e8 df       	rcall	.-48     	; 0x5c <SendByte>
	
	for (; ;)
	{
		if (ReceiveByte() == 0xcd)
  8c:	eb df       	rcall	.-42     	; 0x64 <ReceiveByte>
  8e:	8d 3c       	cpi	r24, 0xCD	; 205
  90:	e9 f7       	brne	.-6      	; 0x8c <main+0xe>
		{
			SendByte(0x12);
  92:	82 e1       	ldi	r24, 0x12	; 18
  94:	e3 df       	rcall	.-58     	; 0x5c <SendByte>
			SendByte(0x34);
  96:	84 e3       	ldi	r24, 0x34	; 52
  98:	e1 df       	rcall	.-62     	; 0x5c <SendByte>
			SendByte(0x56);
  9a:	86 e5       	ldi	r24, 0x56	; 86
  9c:	f6 cf       	rjmp	.-20     	; 0x8a <main+0xc>

⌨️ 快捷键说明

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