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

📄 essai.lss

📁 adc conversion on atmega and lcd display (on avr studio)
💻 LSS
📖 第 1 页 / 共 2 页
字号:

ESSAI.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         0000027a  00000000  00000000  00000094  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         000000ca  00800060  0000027a  0000030e  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000004  0080012a  0080012a  000003d8  2**0
                  ALLOC
  3 .debug_aranges 00000020  00000000  00000000  000003d8  2**0
                  CONTENTS, READONLY, DEBUGGING
  4 .debug_pubnames 000000a6  00000000  00000000  000003f8  2**0
                  CONTENTS, READONLY, DEBUGGING
  5 .debug_info   0000071f  00000000  00000000  0000049e  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_abbrev 000001a5  00000000  00000000  00000bbd  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_line   00000542  00000000  00000000  00000d62  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_frame  00000090  00000000  00000000  000012a4  2**2
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_str    00000177  00000000  00000000  00001334  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_loc    000002cc  00000000  00000000  000014ab  2**0
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_ranges 00000048  00000000  00000000  00001777  2**0
                  CONTENTS, READONLY, DEBUGGING

Disassembly of section .text:

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

0000002a <__ctors_end>:
  2a:	11 24       	eor	r1, r1
  2c:	1f be       	out	0x3f, r1	; 63
  2e:	cf e5       	ldi	r28, 0x5F	; 95
  30:	d2 e0       	ldi	r29, 0x02	; 2
  32:	de bf       	out	0x3e, r29	; 62
  34:	cd bf       	out	0x3d, r28	; 61

00000036 <__do_copy_data>:
  36:	11 e0       	ldi	r17, 0x01	; 1
  38:	a0 e6       	ldi	r26, 0x60	; 96
  3a:	b0 e0       	ldi	r27, 0x00	; 0
  3c:	ea e7       	ldi	r30, 0x7A	; 122
  3e:	f2 e0       	ldi	r31, 0x02	; 2
  40:	02 c0       	rjmp	.+4      	; 0x46 <.do_copy_data_start>

00000042 <.do_copy_data_loop>:
  42:	05 90       	lpm	r0, Z+
  44:	0d 92       	st	X+, r0

00000046 <.do_copy_data_start>:
  46:	aa 32       	cpi	r26, 0x2A	; 42
  48:	b1 07       	cpc	r27, r17
  4a:	d9 f7       	brne	.-10     	; 0x42 <.do_copy_data_loop>

0000004c <__do_clear_bss>:
  4c:	11 e0       	ldi	r17, 0x01	; 1
  4e:	aa e2       	ldi	r26, 0x2A	; 42
  50:	b1 e0       	ldi	r27, 0x01	; 1
  52:	01 c0       	rjmp	.+2      	; 0x56 <.do_clear_bss_start>

00000054 <.do_clear_bss_loop>:
  54:	1d 92       	st	X+, r1

00000056 <.do_clear_bss_start>:
  56:	ae 32       	cpi	r26, 0x2E	; 46
  58:	b1 07       	cpc	r27, r17
  5a:	e1 f7       	brne	.-8      	; 0x54 <.do_clear_bss_loop>
  5c:	f0 d0       	rcall	.+480    	; 0x23e <main>
  5e:	0b c1       	rjmp	.+534    	; 0x276 <_exit>

00000060 <__bad_interrupt>:
  60:	cf cf       	rjmp	.-98     	; 0x0 <__vectors>

00000062 <getkey>:
#include <util/delay.h>
#define LCD PORTC
unsigned char getkey(void)
{
	unsigned char RES;
			PORTD|=_BV(4);
  62:	94 9a       	sbi	0x12, 4	; 18
    can be achieved.
*/
void
_delay_loop_1(uint8_t __count)
{
	__asm__ volatile (
  64:	8d e0       	ldi	r24, 0x0D	; 13
  66:	8a 95       	dec	r24
  68:	f1 f7       	brne	.-4      	; 0x66 <getkey+0x4>
			_delay_us(10);
			if (bit_is_set(PINB,0)) {RES="8";}
  6a:	b0 9b       	sbis	0x16, 0	; 22
  6c:	02 c0       	rjmp	.+4      	; 0x72 <getkey+0x10>
  6e:	80 e6       	ldi	r24, 0x60	; 96
  70:	90 e0       	ldi	r25, 0x00	; 0
			if (bit_is_set(PINB,1)) {RES="7";}
  72:	b1 9b       	sbis	0x16, 1	; 22
  74:	02 c0       	rjmp	.+4      	; 0x7a <getkey+0x18>
  76:	82 e6       	ldi	r24, 0x62	; 98
  78:	90 e0       	ldi	r25, 0x00	; 0
			if (bit_is_set(PINB,2)) {RES="H";}
  7a:	b2 9b       	sbis	0x16, 2	; 22
  7c:	02 c0       	rjmp	.+4      	; 0x82 <getkey+0x20>
  7e:	84 e6       	ldi	r24, 0x64	; 100
  80:	90 e0       	ldi	r25, 0x00	; 0
			if (bit_is_set(PINB,3)) {RES="9";}
  82:	b3 9b       	sbis	0x16, 3	; 22
  84:	02 c0       	rjmp	.+4      	; 0x8a <getkey+0x28>
  86:	86 e6       	ldi	r24, 0x66	; 102
  88:	90 e0       	ldi	r25, 0x00	; 0
			PORTD&=~_BV(4);
  8a:	94 98       	cbi	0x12, 4	; 18

			PORTD|=_BV(5);
  8c:	95 9a       	sbi	0x12, 5	; 18
  8e:	9d e0       	ldi	r25, 0x0D	; 13
  90:	9a 95       	dec	r25
  92:	f1 f7       	brne	.-4      	; 0x90 <getkey+0x2e>
			_delay_us(10);
			if (bit_is_set(PINB,0)) {RES="5";}
  94:	b0 9b       	sbis	0x16, 0	; 22
  96:	02 c0       	rjmp	.+4      	; 0x9c <getkey+0x3a>
  98:	88 e6       	ldi	r24, 0x68	; 104
  9a:	90 e0       	ldi	r25, 0x00	; 0
			if (bit_is_set(PINB,1)) {RES="4";}
  9c:	b1 9b       	sbis	0x16, 1	; 22
  9e:	02 c0       	rjmp	.+4      	; 0xa4 <getkey+0x42>
  a0:	8a e6       	ldi	r24, 0x6A	; 106
  a2:	90 e0       	ldi	r25, 0x00	; 0
			if (bit_is_set(PINB,2)) {RES="R";}
  a4:	b2 9b       	sbis	0x16, 2	; 22
  a6:	02 c0       	rjmp	.+4      	; 0xac <getkey+0x4a>
  a8:	8c e6       	ldi	r24, 0x6C	; 108
  aa:	90 e0       	ldi	r25, 0x00	; 0
			if (bit_is_set(PINB,3)) {RES="6";}
  ac:	b3 9b       	sbis	0x16, 3	; 22
  ae:	02 c0       	rjmp	.+4      	; 0xb4 <getkey+0x52>
  b0:	8e e6       	ldi	r24, 0x6E	; 110
  b2:	90 e0       	ldi	r25, 0x00	; 0
			PORTD&=~_BV(5);
  b4:	95 98       	cbi	0x12, 5	; 18

			PORTD|=_BV(6);
  b6:	96 9a       	sbi	0x12, 6	; 18
  b8:	9d e0       	ldi	r25, 0x0D	; 13
  ba:	9a 95       	dec	r25
  bc:	f1 f7       	brne	.-4      	; 0xba <getkey+0x58>
			_delay_us(10);
			if (bit_is_set(PINB,0)) {RES="2";}
  be:	b0 9b       	sbis	0x16, 0	; 22
  c0:	02 c0       	rjmp	.+4      	; 0xc6 <getkey+0x64>
  c2:	80 e7       	ldi	r24, 0x70	; 112
  c4:	90 e0       	ldi	r25, 0x00	; 0
			if (bit_is_set(PINB,1)) {RES="1";}
  c6:	b1 9b       	sbis	0x16, 1	; 22
  c8:	02 c0       	rjmp	.+4      	; 0xce <getkey+0x6c>
  ca:	82 e7       	ldi	r24, 0x72	; 114
  cc:	90 e0       	ldi	r25, 0x00	; 0
			if (bit_is_set(PINB,2)) {RES="B";}
  ce:	b2 9b       	sbis	0x16, 2	; 22
  d0:	02 c0       	rjmp	.+4      	; 0xd6 <getkey+0x74>
  d2:	84 e7       	ldi	r24, 0x74	; 116
  d4:	90 e0       	ldi	r25, 0x00	; 0
			if (bit_is_set(PINB,3)) {RES="3";}
  d6:	b3 9b       	sbis	0x16, 3	; 22
  d8:	02 c0       	rjmp	.+4      	; 0xde <getkey+0x7c>
  da:	86 e7       	ldi	r24, 0x76	; 118
  dc:	90 e0       	ldi	r25, 0x00	; 0
			PORTD&=~_BV(6);
  de:	96 98       	cbi	0x12, 6	; 18

			PORTD|=_BV(7);
  e0:	97 9a       	sbi	0x12, 7	; 18
  e2:	9d e0       	ldi	r25, 0x0D	; 13
  e4:	9a 95       	dec	r25
  e6:	f1 f7       	brne	.-4      	; 0xe4 <getkey+0x82>
			_delay_us(10);
			if (bit_is_set(PINB,0)) {RES="0";}
  e8:	b0 9b       	sbis	0x16, 0	; 22
  ea:	02 c0       	rjmp	.+4      	; 0xf0 <getkey+0x8e>
  ec:	88 e7       	ldi	r24, 0x78	; 120
  ee:	90 e0       	ldi	r25, 0x00	; 0
			if (bit_is_set(PINB,1)) {RES="A";}
  f0:	b1 9b       	sbis	0x16, 1	; 22
  f2:	02 c0       	rjmp	.+4      	; 0xf8 <getkey+0x96>
  f4:	8a e7       	ldi	r24, 0x7A	; 122
  f6:	90 e0       	ldi	r25, 0x00	; 0
			if (bit_is_set(PINB,2)) {RES=" ";}
  f8:	b2 9b       	sbis	0x16, 2	; 22
  fa:	02 c0       	rjmp	.+4      	; 0x100 <getkey+0x9e>
  fc:	8c e7       	ldi	r24, 0x7C	; 124
  fe:	90 e0       	ldi	r25, 0x00	; 0
			if (bit_is_set(PINB,3)) {RES="E";}
 100:	b3 9b       	sbis	0x16, 3	; 22
 102:	02 c0       	rjmp	.+4      	; 0x108 <getkey+0xa6>
 104:	8e e7       	ldi	r24, 0x7E	; 126
 106:	90 e0       	ldi	r25, 0x00	; 0
			PORTD&=~_BV(7);
 108:	97 98       	cbi	0x12, 7	; 18
return(RES);
}
 10a:	08 95       	ret

0000010c <ecrit_instr_lcd>:
void ecrit_instr_lcd(unsigned char instr)
{

	unsigned char instr_tmp = 0x00;

	LCD&=~_BV(0);
 10c:	a8 98       	cbi	0x15, 0	; 21
	LCD|=_BV(1);
 10e:	a9 9a       	sbi	0x15, 1	; 21
	instr_tmp = instr;
	instr_tmp &= 0xF0;
 110:	98 2f       	mov	r25, r24
 112:	90 7f       	andi	r25, 0xF0	; 240
	instr_tmp = instr_tmp>>2;
 114:	96 95       	lsr	r25
 116:	96 95       	lsr	r25
	instr_tmp |= 0x02;
	instr_tmp &= 0xFE;
 118:	92 60       	ori	r25, 0x02	; 2
	LCD = instr_tmp;
 11a:	95 bb       	out	0x15, r25	; 21
    milliseconds can be achieved.
 */
void
_delay_loop_2(uint16_t __count)
{
	__asm__ volatile (
 11c:	20 e9       	ldi	r18, 0x90	; 144
 11e:	31 e0       	ldi	r19, 0x01	; 1
 120:	f9 01       	movw	r30, r18
 122:	31 97       	sbiw	r30, 0x01	; 1
 124:	f1 f7       	brne	.-4      	; 0x122 <ecrit_instr_lcd+0x16>
	_delay_us(400);
	LCD&=~_BV(1);
 126:	a9 98       	cbi	0x15, 1	; 21

	instr_tmp=0x00;
	LCD&=~_BV(0);
 128:	a8 98       	cbi	0x15, 0	; 21
	LCD|=_BV(1);
 12a:	a9 9a       	sbi	0x15, 1	; 21
	instr_tmp = instr;
	instr_tmp &= 0x0F;
 12c:	8f 70       	andi	r24, 0x0F	; 15
	instr_tmp = instr_tmp<<2;
 12e:	88 0f       	add	r24, r24
 130:	88 0f       	add	r24, r24
	instr_tmp |= 0x02;
	instr_tmp &= 0xFE;
 132:	82 60       	ori	r24, 0x02	; 2
	LCD = instr_tmp;
 134:	85 bb       	out	0x15, r24	; 21
 136:	c9 01       	movw	r24, r18
 138:	01 97       	sbiw	r24, 0x01	; 1
 13a:	f1 f7       	brne	.-4      	; 0x138 <ecrit_instr_lcd+0x2c>
	_delay_us(400);
	LCD&=~_BV(1);
 13c:	a9 98       	cbi	0x15, 1	; 21

}
 13e:	08 95       	ret

00000140 <lcd_goto>:




void lcd_goto(unsigned char cell)
	{
 140:	0f 93       	push	r16
 142:	1f 93       	push	r17
 144:	cf 93       	push	r28
 146:	df 93       	push	r29
 148:	18 2f       	mov	r17, r24
	unsigned int i;
	ecrit_instr_lcd (0x02);
 14a:	82 e0       	ldi	r24, 0x02	; 2
 14c:	df df       	rcall	.-66     	; 0x10c <ecrit_instr_lcd>
 14e:	c1 e0       	ldi	r28, 0x01	; 1
 150:	d0 e0       	ldi	r29, 0x00	; 0
	for (i = 1; i < cell; i++)
 152:	01 2f       	mov	r16, r17
 154:	10 e0       	ldi	r17, 0x00	; 0
 156:	03 c0       	rjmp	.+6      	; 0x15e <lcd_goto+0x1e>
		{
		ecrit_instr_lcd (0x14);
 158:	84 e1       	ldi	r24, 0x14	; 20
 15a:	d8 df       	rcall	.-80     	; 0x10c <ecrit_instr_lcd>

void lcd_goto(unsigned char cell)
	{
	unsigned int i;
	ecrit_instr_lcd (0x02);
	for (i = 1; i < cell; i++)
 15c:	21 96       	adiw	r28, 0x01	; 1
 15e:	c0 17       	cp	r28, r16
 160:	d1 07       	cpc	r29, r17
 162:	d0 f3       	brcs	.-12     	; 0x158 <lcd_goto+0x18>
		{
		ecrit_instr_lcd (0x14);
		}

⌨️ 快捷键说明

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