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

📄 main.lss

📁 avr单片机的一些实际应用源码
💻 LSS
字号:

main.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         00000348  00000000  00000000  00000134  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      00000548  00000000  00000000  0000047c  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	0a c0       	rjmp	.+20     	; 0x16
   2:	22 c0       	rjmp	.+68     	; 0x48
   4:	21 c0       	rjmp	.+66     	; 0x48
   6:	20 c0       	rjmp	.+64     	; 0x48
   8:	1f c0       	rjmp	.+62     	; 0x48
   a:	1e c0       	rjmp	.+60     	; 0x48
   c:	1d c0       	rjmp	.+58     	; 0x48
   e:	1c c0       	rjmp	.+56     	; 0x48
  10:	1b c0       	rjmp	.+54     	; 0x48
  12:	1a c0       	rjmp	.+52     	; 0x48
  14:	19 c0       	rjmp	.+50     	; 0x48

00000016 <__ctors_end>:
  16:	11 24       	eor	r1, r1
  18:	1f be       	out	0x3f, r1	; 63
  1a:	cf ed       	ldi	r28, 0xDF	; 223
  1c:	cd bf       	out	0x3d, r28	; 61

0000001e <__do_copy_data>:
  1e:	10 e0       	ldi	r17, 0x00	; 0
  20:	a0 e6       	ldi	r26, 0x60	; 96
  22:	b0 e0       	ldi	r27, 0x00	; 0
  24:	ee e9       	ldi	r30, 0x9E	; 158
  26:	f0 e0       	ldi	r31, 0x00	; 0
  28:	03 c0       	rjmp	.+6      	; 0x30

0000002a <.do_copy_data_loop>:
  2a:	c8 95       	lpm
  2c:	31 96       	adiw	r30, 0x01	; 1
  2e:	0d 92       	st	X+, r0

00000030 <.do_copy_data_start>:
  30:	a0 36       	cpi	r26, 0x60	; 96
  32:	b1 07       	cpc	r27, r17
  34:	d1 f7       	brne	.-12     	; 0x2a

00000036 <__do_clear_bss>:
  36:	10 e0       	ldi	r17, 0x00	; 0
  38:	a0 e6       	ldi	r26, 0x60	; 96
  3a:	b0 e0       	ldi	r27, 0x00	; 0
  3c:	01 c0       	rjmp	.+2      	; 0x40

0000003e <.do_clear_bss_loop>:
  3e:	1d 92       	st	X+, r1

00000040 <.do_clear_bss_start>:
  40:	a0 36       	cpi	r26, 0x60	; 96
  42:	b1 07       	cpc	r27, r17
  44:	e1 f7       	brne	.-8      	; 0x3e
  46:	0d c0       	rjmp	.+26     	; 0x62

00000048 <__bad_interrupt>:
  48:	db cf       	rjmp	.-74     	; 0x0

0000004a <DelayMs>:

void DelayMs(uint ms)
{
	uint i;
	for(i=0;i<ms;i++)
  4a:	00 97       	sbiw	r24, 0x00	; 0
  4c:	49 f0       	breq	.+18     	; 0x60
  4e:	28 2f       	mov	r18, r24
  50:	39 2f       	mov	r19, r25

/* 16-bit count, 4 cycles/loop */
static __inline__ void
_delay_loop_2(uint16_t __count)
{
  52:	88 ee       	ldi	r24, 0xE8	; 232
  54:	93 e0       	ldi	r25, 0x03	; 3
	asm volatile (
  56:	01 97       	sbiw	r24, 0x01	; 1
  58:	f1 f7       	brne	.-4      	; 0x56
  5a:	21 50       	subi	r18, 0x01	; 1
  5c:	30 40       	sbci	r19, 0x00	; 0
  5e:	c9 f7       	brne	.-14     	; 0x52
  60:	08 95       	ret

00000062 <main>:
		_delay_loop_2(FREQ * 250);
}


int main (void)
{
  62:	cf ed       	ldi	r28, 0xDF	; 223
  64:	d0 e0       	ldi	r29, 0x00	; 0
  66:	de bf       	out	0x3e, r29	; 62
  68:	cd bf       	out	0x3d, r28	; 61
	uchar direction=1;
  6a:	11 e0       	ldi	r17, 0x01	; 1
	uchar pwm=0;
  6c:	c0 e0       	ldi	r28, 0x00	; 0

    TCCR1A = _BV (PWM10) | _BV (COM1A1);	//	8位PWM模式 , 向上计数时匹配清除OC1
  6e:	81 e8       	ldi	r24, 0x81	; 129
  70:	8f bd       	out	0x2f, r24	; 47

    DDRB= _BV (PB3);						//PWM引脚PB3方向设置为输出
  72:	88 e0       	ldi	r24, 0x08	; 8
  74:	87 bb       	out	0x17, r24	; 23

    TCCR1B = _BV (CS11);					//启动PWM  时钟源:CK/8 PWM 频率为 4MHz/8/512=976Hz
  76:	82 e0       	ldi	r24, 0x02	; 2
  78:	8e bd       	out	0x2e, r24	; 46
	
    while(1)
	{
		if(direction)
  7a:	11 23       	and	r17, r17
  7c:	29 f0       	breq	.+10     	; 0x88
		{
			if(++pwm==254)
  7e:	cf 5f       	subi	r28, 0xFF	; 255
  80:	ce 3f       	cpi	r28, 0xFE	; 254
  82:	29 f4       	brne	.+10     	; 0x8e
				direction=0;
  84:	10 e0       	ldi	r17, 0x00	; 0
  86:	03 c0       	rjmp	.+6      	; 0x8e
		}
		else
		{
			if(--pwm==0)
  88:	c1 50       	subi	r28, 0x01	; 1
  8a:	09 f4       	brne	.+2      	; 0x8e
				direction=1;
  8c:	11 e0       	ldi	r17, 0x01	; 1
		}

		OCR1=pwm;
  8e:	8c 2f       	mov	r24, r28
  90:	99 27       	eor	r25, r25
  92:	9b bd       	out	0x2b, r25	; 43
  94:	8a bd       	out	0x2a, r24	; 42
		DelayMs(10);
  96:	8a e0       	ldi	r24, 0x0A	; 10
  98:	90 e0       	ldi	r25, 0x00	; 0
  9a:	d7 df       	rcall	.-82     	; 0x4a
  9c:	ee cf       	rjmp	.-36     	; 0x7a

⌨️ 快捷键说明

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