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

📄 main.lss

📁 avr单片机的ad转换例程 可以拷贝过来直接使用
💻 LSS
📖 第 1 页 / 共 2 页
字号:

main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .data         00000034  00800100  0000042a  000004be  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  1 .text         0000042a  00000000  00000000  00000094  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  2 .bss          0000000c  00800134  00800134  000004f2  2**0
                  ALLOC
  3 .stab         00000378  00000000  00000000  000004f4  2**2
                  CONTENTS, READONLY, DEBUGGING
  4 .stabstr      00000071  00000000  00000000  0000086c  2**0
                  CONTENTS, READONLY, DEBUGGING
  5 .debug_aranges 00000020  00000000  00000000  000008dd  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_pubnames 000000fb  00000000  00000000  000008fd  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_info   0000044d  00000000  00000000  000009f8  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_abbrev 000001ad  00000000  00000000  00000e45  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_line   00000529  00000000  00000000  00000ff2  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_frame  000000e0  00000000  00000000  0000151c  2**2
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_str    00000178  00000000  00000000  000015fc  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_loc    000000ab  00000000  00000000  00001774  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	19 c0       	rjmp	.+50     	; 0x34 <__ctors_end>
   2:	33 c0       	rjmp	.+102    	; 0x6a <__bad_interrupt>
   4:	32 c0       	rjmp	.+100    	; 0x6a <__bad_interrupt>
   6:	5d c1       	rjmp	.+698    	; 0x2c2 <__vector_3>
   8:	09 c1       	rjmp	.+530    	; 0x21c <__vector_4>
   a:	2f c0       	rjmp	.+94     	; 0x6a <__bad_interrupt>
   c:	2e c0       	rjmp	.+92     	; 0x6a <__bad_interrupt>
   e:	2d c0       	rjmp	.+90     	; 0x6a <__bad_interrupt>
  10:	2c c0       	rjmp	.+88     	; 0x6a <__bad_interrupt>
  12:	2b c0       	rjmp	.+86     	; 0x6a <__bad_interrupt>
  14:	2a c0       	rjmp	.+84     	; 0x6a <__bad_interrupt>
  16:	29 c0       	rjmp	.+82     	; 0x6a <__bad_interrupt>
  18:	28 c0       	rjmp	.+80     	; 0x6a <__bad_interrupt>
  1a:	27 c0       	rjmp	.+78     	; 0x6a <__bad_interrupt>
  1c:	26 c0       	rjmp	.+76     	; 0x6a <__bad_interrupt>
  1e:	25 c0       	rjmp	.+74     	; 0x6a <__bad_interrupt>
  20:	24 c0       	rjmp	.+72     	; 0x6a <__bad_interrupt>
  22:	23 c0       	rjmp	.+70     	; 0x6a <__bad_interrupt>
  24:	22 c0       	rjmp	.+68     	; 0x6a <__bad_interrupt>
  26:	21 c0       	rjmp	.+66     	; 0x6a <__bad_interrupt>
  28:	20 c0       	rjmp	.+64     	; 0x6a <__bad_interrupt>
  2a:	1f c0       	rjmp	.+62     	; 0x6a <__bad_interrupt>
  2c:	1e c0       	rjmp	.+60     	; 0x6a <__bad_interrupt>
  2e:	1d c0       	rjmp	.+58     	; 0x6a <__bad_interrupt>
  30:	1c c0       	rjmp	.+56     	; 0x6a <__bad_interrupt>
  32:	1b c0       	rjmp	.+54     	; 0x6a <__bad_interrupt>

00000034 <__ctors_end>:
  34:	11 24       	eor	r1, r1
  36:	1f be       	out	0x3f, r1	; 63
  38:	cf ef       	ldi	r28, 0xFF	; 255
  3a:	d2 e0       	ldi	r29, 0x02	; 2
  3c:	de bf       	out	0x3e, r29	; 62
  3e:	cd bf       	out	0x3d, r28	; 61

00000040 <__do_copy_data>:
  40:	11 e0       	ldi	r17, 0x01	; 1
  42:	a0 e0       	ldi	r26, 0x00	; 0
  44:	b1 e0       	ldi	r27, 0x01	; 1
  46:	ea e2       	ldi	r30, 0x2A	; 42
  48:	f4 e0       	ldi	r31, 0x04	; 4
  4a:	02 c0       	rjmp	.+4      	; 0x50 <.do_copy_data_start>

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

00000050 <.do_copy_data_start>:
  50:	a4 33       	cpi	r26, 0x34	; 52
  52:	b1 07       	cpc	r27, r17
  54:	d9 f7       	brne	.-10     	; 0x4c <.do_copy_data_loop>

00000056 <__do_clear_bss>:
  56:	11 e0       	ldi	r17, 0x01	; 1
  58:	a4 e3       	ldi	r26, 0x34	; 52
  5a:	b1 e0       	ldi	r27, 0x01	; 1
  5c:	01 c0       	rjmp	.+2      	; 0x60 <.do_clear_bss_start>

0000005e <.do_clear_bss_loop>:
  5e:	1d 92       	st	X+, r1

00000060 <.do_clear_bss_start>:
  60:	a0 34       	cpi	r26, 0x40	; 64
  62:	b1 07       	cpc	r27, r17
  64:	e1 f7       	brne	.-8      	; 0x5e <.do_clear_bss_loop>
  66:	7c d1       	rcall	.+760    	; 0x360 <main>
  68:	df c1       	rjmp	.+958    	; 0x428 <_exit>

0000006a <__bad_interrupt>:
  6a:	ca cf       	rjmp	.-108    	; 0x0 <__vectors>

0000006c <num_do>:
uchar  v;
uchar nb,ns,ng;

void num_do(uchar d)
{
  6c:	28 2f       	mov	r18, r24
nb=d/100;
  6e:	64 e6       	ldi	r22, 0x64	; 100
  70:	bb d1       	rcall	.+886    	; 0x3e8 <__udivmodqi4>
  72:	80 93 3f 01 	sts	0x013F, r24
ns=(d%100)/10;
  76:	82 2f       	mov	r24, r18
  78:	b7 d1       	rcall	.+878    	; 0x3e8 <__udivmodqi4>
  7a:	29 2f       	mov	r18, r25
  7c:	89 2f       	mov	r24, r25
  7e:	6a e0       	ldi	r22, 0x0A	; 10
  80:	b3 d1       	rcall	.+870    	; 0x3e8 <__udivmodqi4>
  82:	80 93 34 01 	sts	0x0134, r24
ng=(d%100)%10;
  86:	82 2f       	mov	r24, r18
  88:	af d1       	rcall	.+862    	; 0x3e8 <__udivmodqi4>
  8a:	90 93 35 01 	sts	0x0135, r25
  8e:	08 95       	ret

00000090 <IO_INT>:
}

void IO_INT(void)
{
  90:	8f ef       	ldi	r24, 0xFF	; 255
  92:	84 b9       	out	0x04, r24	; 4
DDRB=0xff;
PORTB=0xff;
  94:	85 b9       	out	0x05, r24	; 5
DDRD=0xff;
  96:	8a b9       	out	0x0a, r24	; 10
PORTD=0xff;
  98:	8b b9       	out	0x0b, r24	; 11
PORTC |= (1 << PC1);
  9a:	41 9a       	sbi	0x08, 1	; 8
ADMUX = (1<<REFS0); 
  9c:	80 e4       	ldi	r24, 0x40	; 64
  9e:	80 93 7c 00 	sts	0x007C, r24
ADCSRA = (1<<ADEN)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1);
  a2:	8e e8       	ldi	r24, 0x8E	; 142
  a4:	80 93 7a 00 	sts	0x007A, r24
  a8:	08 95       	ret

000000aa <busy_check>:
}

void busy_check(void)
{ 
  aa:	8f ef       	ldi	r24, 0xFF	; 255
  ac:	8b b9       	out	0x0b, r24	; 11

uchar i;
PORTD=0Xff;
while(1)
   {
      RS_CLR;
  ae:	2a 98       	cbi	0x05, 2	; 5
      RW_SET;
  b0:	29 9a       	sbi	0x05, 1	; 5
      EN_SET;
  b2:	28 9a       	sbi	0x05, 0	; 5
      i=PIND;
  b4:	89 b1       	in	r24, 0x09	; 9
      EN_CLR;
  b6:	28 98       	cbi	0x05, 0	; 5
      if((i&0X80)==0X00)
  b8:	87 fd       	sbrc	r24, 7
  ba:	01 c0       	rjmp	.+2      	; 0xbe <busy_check+0x14>
      asm("nop");
  bc:	00 00       	nop
      asm("nop");
  be:	00 00       	nop
  c0:	08 95       	ret

000000c2 <wcom>:
      break;
   }
}

void wcom(uchar com)//并口写命令
{
  c2:	1f 93       	push	r17
  c4:	18 2f       	mov	r17, r24

 busy_check();
  c6:	f1 df       	rcall	.-30     	; 0xaa <busy_check>
 RS_CLR;
  c8:	2a 98       	cbi	0x05, 2	; 5
 RW_CLR;
  ca:	29 98       	cbi	0x05, 1	; 5
 EN_SET;
  cc:	28 9a       	sbi	0x05, 0	; 5
 asm("nop"); 
  ce:	00 00       	nop
 PORTD=com;
  d0:	1b b9       	out	0x0b, r17	; 11
 asm("nop"); 
  d2:	00 00       	nop
 EN_CLR;
  d4:	28 98       	cbi	0x05, 0	; 5
  d6:	1f 91       	pop	r17
  d8:	08 95       	ret

000000da <wdata>:
 }
void wdata(uchar dat)//并口写数据
{
  da:	1f 93       	push	r17
  dc:	18 2f       	mov	r17, r24

 busy_check();
  de:	e5 df       	rcall	.-54     	; 0xaa <busy_check>
 RS_SET;
  e0:	2a 9a       	sbi	0x05, 2	; 5
 RW_CLR;
  e2:	29 98       	cbi	0x05, 1	; 5
 EN_SET;
  e4:	28 9a       	sbi	0x05, 0	; 5
 asm("nop"); 
  e6:	00 00       	nop
 PORTD=dat;
  e8:	1b b9       	out	0x0b, r17	; 11
 asm("nop"); 
  ea:	00 00       	nop
 EN_CLR;
  ec:	28 98       	cbi	0x05, 0	; 5
  ee:	1f 91       	pop	r17
  f0:	08 95       	ret

000000f2 <initlcd>:
}

void initlcd(void)
{
  f2:	80 e3       	ldi	r24, 0x30	; 48
  f4:	e6 df       	rcall	.-52     	; 0xc2 <wcom>
wcom(0x30);//基本指令
wcom(0x0c);//0000,1100 游标显示关
  f6:	8c e0       	ldi	r24, 0x0C	; 12
  f8:	e4 df       	rcall	.-56     	; 0xc2 <wcom>
wcom(0x02);//0000,0010 显示RAM 地址归位
  fa:	82 e0       	ldi	r24, 0x02	; 2
  fc:	e2 df       	rcall	.-60     	; 0xc2 <wcom>
wcom(0x80);//1000,0000 设定显示RAM 地址到地址计数器
  fe:	80 e8       	ldi	r24, 0x80	; 128
 100:	e0 df       	rcall	.-64     	; 0xc2 <wcom>
wcom(0x06);//右移位
 102:	86 e0       	ldi	r24, 0x06	; 6
 104:	de df       	rcall	.-68     	; 0xc2 <wcom>
wcom(0x0c);//开显示
 106:	8c e0       	ldi	r24, 0x0C	; 12
 108:	dc df       	rcall	.-72     	; 0xc2 <wcom>
 10a:	08 95       	ret

0000010c <clear>:
}
void clear(void)
{
 10c:	80 e3       	ldi	r24, 0x30	; 48
 10e:	d9 df       	rcall	.-78     	; 0xc2 <wcom>
wcom(0x30);
wcom(0x01);//clear
 110:	81 e0       	ldi	r24, 0x01	; 1
 112:	d7 df       	rcall	.-82     	; 0xc2 <wcom>
 114:	08 95       	ret

00000116 <display>:
}

void display(void)
{
 116:	80 e8       	ldi	r24, 0x80	; 128
 118:	d4 df       	rcall	.-88     	; 0xc2 <wcom>
 11a:	0a c0       	rjmp	.+20     	; 0x130 <display+0x1a>
	wcom(0x80);
	while( *line1!=0x00 )
	{
		wdata(*line1);
 11c:	de df       	rcall	.-68     	; 0xda <wdata>
		line1++;
 11e:	80 91 39 01 	lds	r24, 0x0139
 122:	90 91 3a 01 	lds	r25, 0x013A
 126:	01 96       	adiw	r24, 0x01	; 1
 128:	90 93 3a 01 	sts	0x013A, r25
 12c:	80 93 39 01 	sts	0x0139, r24
 130:	e0 91 39 01 	lds	r30, 0x0139
 134:	f0 91 3a 01 	lds	r31, 0x013A
 138:	80 81       	ld	r24, Z
 13a:	88 23       	and	r24, r24
 13c:	79 f7       	brne	.-34     	; 0x11c <display+0x6>
	}

	wcom(0x90);
 13e:	80 e9       	ldi	r24, 0x90	; 144
 140:	c0 df       	rcall	.-128    	; 0xc2 <wcom>
 142:	0a c0       	rjmp	.+20     	; 0x158 <display+0x42>
	while( *line2!=0x00 )
	{
		wdata(*line2);
 144:	ca df       	rcall	.-108    	; 0xda <wdata>
		line2++;
 146:	80 91 3d 01 	lds	r24, 0x013D
 14a:	90 91 3e 01 	lds	r25, 0x013E
 14e:	01 96       	adiw	r24, 0x01	; 1
 150:	90 93 3e 01 	sts	0x013E, r25
 154:	80 93 3d 01 	sts	0x013D, r24
 158:	e0 91 3d 01 	lds	r30, 0x013D
 15c:	f0 91 3e 01 	lds	r31, 0x013E
 160:	80 81       	ld	r24, Z
 162:	88 23       	and	r24, r24
 164:	79 f7       	brne	.-34     	; 0x144 <display+0x2e>
	}

	wcom(0x88);
 166:	88 e8       	ldi	r24, 0x88	; 136
 168:	ac df       	rcall	.-168    	; 0xc2 <wcom>
 16a:	0a c0       	rjmp	.+20     	; 0x180 <display+0x6a>
	while( *line3!=0x00 )
	{
		wdata(*line3);
 16c:	b6 df       	rcall	.-148    	; 0xda <wdata>
		line3++;
 16e:	80 91 3b 01 	lds	r24, 0x013B
 172:	90 91 3c 01 	lds	r25, 0x013C
 176:	01 96       	adiw	r24, 0x01	; 1
 178:	90 93 3c 01 	sts	0x013C, r25
 17c:	80 93 3b 01 	sts	0x013B, r24
 180:	e0 91 3b 01 	lds	r30, 0x013B
 184:	f0 91 3c 01 	lds	r31, 0x013C
 188:	80 81       	ld	r24, Z
 18a:	88 23       	and	r24, r24
 18c:	79 f7       	brne	.-34     	; 0x16c <display+0x56>
	}

	wcom(0x98);
 18e:	88 e9       	ldi	r24, 0x98	; 152
 190:	98 df       	rcall	.-208    	; 0xc2 <wcom>
 192:	0a c0       	rjmp	.+20     	; 0x1a8 <display+0x92>
	while( *line4!=0x00 )
	{
		wdata(*line4);
 194:	a2 df       	rcall	.-188    	; 0xda <wdata>
		line4++;
 196:	80 91 36 01 	lds	r24, 0x0136
 19a:	90 91 37 01 	lds	r25, 0x0137
 19e:	01 96       	adiw	r24, 0x01	; 1
 1a0:	90 93 37 01 	sts	0x0137, r25
 1a4:	80 93 36 01 	sts	0x0136, r24
 1a8:	e0 91 36 01 	lds	r30, 0x0136
 1ac:	f0 91 37 01 	lds	r31, 0x0137
 1b0:	80 81       	ld	r24, Z
 1b2:	88 23       	and	r24, r24
 1b4:	79 f7       	brne	.-34     	; 0x194 <display+0x7e>
 1b6:	08 95       	ret

000001b8 <system_init>:
	}
	//line1 = "";
    // line2 = "";
   // line3 = "";
   // line4 = "";
}
void system_init(void)
{
 1b8:	80 e0       	ldi	r24, 0x00	; 0
 1ba:	91 e0       	ldi	r25, 0x01	; 1
 1bc:	90 93 3a 01 	sts	0x013A, r25
 1c0:	80 93 39 01 	sts	0x0139, r24
	line1 = "";
    line2 = "";
 1c4:	90 93 3e 01 	sts	0x013E, r25
 1c8:	80 93 3d 01 	sts	0x013D, r24
    line3 = "";

⌨️ 快捷键说明

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