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

📄 main.lss

📁 1602基于AVRMEGA的液晶显示
💻 LSS
📖 第 1 页 / 共 2 页
字号:

main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00000390  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         0000000e  00800060  00000390  00000424  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000000  0080006e  0000039e  00000432  2**0
                  ALLOC
  3 .noinit       00000000  0080006e  0080006e  00000432  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  00000432  2**0
                  CONTENTS
  5 .stab         0000036c  00000000  00000000  00000434  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      00000084  00000000  00000000  000007a0  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_aranges 0000003c  00000000  00000000  00000824  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_pubnames 0000011e  00000000  00000000  00000860  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_info   00000454  00000000  00000000  0000097e  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_abbrev 000001d0  00000000  00000000  00000dd2  2**0
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_line   000004cc  00000000  00000000  00000fa2  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_str    00000129  00000000  00000000  0000146e  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	0c 94 2a 00 	jmp	0x54 <__ctors_end>
   4:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
   8:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
   c:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  10:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  14:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  18:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  1c:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  20:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  24:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  28:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  2c:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  30:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  34:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  38:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  3c:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  40:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  44:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  48:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  4c:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  50:	0c 94 45 00 	jmp	0x8a <__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:	e0 e9       	ldi	r30, 0x90	; 144
  68:	f3 e0       	ldi	r31, 0x03	; 3
  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 36       	cpi	r26, 0x6E	; 110
  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 e6       	ldi	r26, 0x6E	; 110
  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:	ae 36       	cpi	r26, 0x6E	; 110
  82:	b1 07       	cpc	r27, r17
  84:	e1 f7       	brne	.-8      	; 0x7e <.do_clear_bss_loop>
  86:	0c 94 a7 01 	jmp	0x34e <main>

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

0000008e <ClearLcd>:
#define EN_1 PORTD |=  (1<<EN)


void ClearLcd(void) 
{
  8e:	1f 93       	push	r17
   EN_0;
  90:	1f e7       	ldi	r17, 0x7F	; 127
  92:	82 b3       	in	r24, 0x12	; 18
  94:	81 23       	and	r24, r17
  96:	82 bb       	out	0x12, r24	; 18
   RS_0;
  98:	94 98       	cbi	0x12, 4	; 18
   RW_0;
  9a:	95 98       	cbi	0x12, 5	; 18
   DataOut;
  9c:	8f ef       	ldi	r24, 0xFF	; 255
  9e:	8a bb       	out	0x1a, r24	; 26
   DataLcd = 1;
  a0:	81 e0       	ldi	r24, 0x01	; 1
  a2:	8b bb       	out	0x1b, r24	; 27
   delay_us(200);
  a4:	88 ec       	ldi	r24, 0xC8	; 200
  a6:	90 e0       	ldi	r25, 0x00	; 0
  a8:	0e 94 70 01 	call	0x2e0 <delay_us>
   EN_1;
  ac:	97 9a       	sbi	0x12, 7	; 18
   delay_us(300);
  ae:	8c e2       	ldi	r24, 0x2C	; 44
  b0:	91 e0       	ldi	r25, 0x01	; 1
  b2:	0e 94 70 01 	call	0x2e0 <delay_us>
   EN_0;
  b6:	82 b3       	in	r24, 0x12	; 18
  b8:	81 23       	and	r24, r17
  ba:	82 bb       	out	0x12, r24	; 18
   delay_us(300);
  bc:	8c e2       	ldi	r24, 0x2C	; 44
  be:	91 e0       	ldi	r25, 0x01	; 1
  c0:	0e 94 70 01 	call	0x2e0 <delay_us>
   RS_1;
  c4:	94 9a       	sbi	0x12, 4	; 18
   RW_1;
  c6:	95 9a       	sbi	0x12, 5	; 18
  c8:	1f 91       	pop	r17
  ca:	08 95       	ret

000000cc <home>:
}   
/**/
void home(void)
{
   RS_0;
  cc:	94 98       	cbi	0x12, 4	; 18
   RW_0;
  ce:	95 98       	cbi	0x12, 5	; 18
   DataLcd = 2;
  d0:	82 e0       	ldi	r24, 0x02	; 2
  d2:	8b bb       	out	0x1b, r24	; 27
   delay_us(100);
  d4:	84 e6       	ldi	r24, 0x64	; 100
  d6:	90 e0       	ldi	r25, 0x00	; 0
  d8:	0e 94 70 01 	call	0x2e0 <delay_us>
   EN_1;
  dc:	97 9a       	sbi	0x12, 7	; 18
   delay_us(100);
  de:	84 e6       	ldi	r24, 0x64	; 100
  e0:	90 e0       	ldi	r25, 0x00	; 0
  e2:	0e 94 70 01 	call	0x2e0 <delay_us>
   EN_0;
  e6:	97 98       	cbi	0x12, 7	; 18
   delay_us(100);
  e8:	84 e6       	ldi	r24, 0x64	; 100
  ea:	90 e0       	ldi	r25, 0x00	; 0
  ec:	0e 94 70 01 	call	0x2e0 <delay_us>
   RS_1;
  f0:	94 9a       	sbi	0x12, 4	; 18
   RW_1;
  f2:	95 9a       	sbi	0x12, 5	; 18
  f4:	08 95       	ret

000000f6 <InputSet>:
}
void InputSet(void)
{
   RS_0;
  f6:	94 98       	cbi	0x12, 4	; 18
   RW_0;
  f8:	95 98       	cbi	0x12, 5	; 18
   DataLcd = 6;   //
  fa:	86 e0       	ldi	r24, 0x06	; 6
  fc:	8b bb       	out	0x1b, r24	; 27
   delay_us(100);
  fe:	84 e6       	ldi	r24, 0x64	; 100
 100:	90 e0       	ldi	r25, 0x00	; 0
 102:	0e 94 70 01 	call	0x2e0 <delay_us>
   EN_1;
 106:	97 9a       	sbi	0x12, 7	; 18
   delay_us(100);
 108:	84 e6       	ldi	r24, 0x64	; 100
 10a:	90 e0       	ldi	r25, 0x00	; 0
 10c:	0e 94 70 01 	call	0x2e0 <delay_us>
   EN_0;
 110:	97 98       	cbi	0x12, 7	; 18
   delay_us(100);
 112:	84 e6       	ldi	r24, 0x64	; 100
 114:	90 e0       	ldi	r25, 0x00	; 0
 116:	0e 94 70 01 	call	0x2e0 <delay_us>
   RS_1;
 11a:	94 9a       	sbi	0x12, 4	; 18
   RW_1;
 11c:	95 9a       	sbi	0x12, 5	; 18
 11e:	08 95       	ret

00000120 <VisionSet>:
}
void VisionSet(void)
{
 120:	1f 93       	push	r17
   EN_0;
 122:	1f e7       	ldi	r17, 0x7F	; 127
 124:	82 b3       	in	r24, 0x12	; 18
 126:	81 23       	and	r24, r17
 128:	82 bb       	out	0x12, r24	; 18
   RS_0;
 12a:	94 98       	cbi	0x12, 4	; 18
   RW_0;
 12c:	95 98       	cbi	0x12, 5	; 18
   DataLcd = 0x0f;   //设置D=1,C=1,B=1
 12e:	8f e0       	ldi	r24, 0x0F	; 15
 130:	8b bb       	out	0x1b, r24	; 27
   delay_us(100);
 132:	84 e6       	ldi	r24, 0x64	; 100
 134:	90 e0       	ldi	r25, 0x00	; 0
 136:	0e 94 70 01 	call	0x2e0 <delay_us>
   EN_1;
 13a:	97 9a       	sbi	0x12, 7	; 18
   delay_us(100);
 13c:	84 e6       	ldi	r24, 0x64	; 100
 13e:	90 e0       	ldi	r25, 0x00	; 0
 140:	0e 94 70 01 	call	0x2e0 <delay_us>
   EN_0;
 144:	82 b3       	in	r24, 0x12	; 18
 146:	81 23       	and	r24, r17
 148:	82 bb       	out	0x12, r24	; 18
   delay_us(100);
 14a:	84 e6       	ldi	r24, 0x64	; 100
 14c:	90 e0       	ldi	r25, 0x00	; 0
 14e:	0e 94 70 01 	call	0x2e0 <delay_us>
   RS_1;
 152:	94 9a       	sbi	0x12, 4	; 18
   RW_1;
 154:	95 9a       	sbi	0x12, 5	; 18
 156:	1f 91       	pop	r17
 158:	08 95       	ret

0000015a <FunctionSet>:
}
void FunctionSet(void)
{
 15a:	1f 93       	push	r17
   DataOut;
 15c:	8f ef       	ldi	r24, 0xFF	; 255
 15e:	8a bb       	out	0x1a, r24	; 26
   EN_0;
 160:	1f e7       	ldi	r17, 0x7F	; 127
 162:	82 b3       	in	r24, 0x12	; 18
 164:	81 23       	and	r24, r17
 166:	82 bb       	out	0x12, r24	; 18
   RS_0;
 168:	94 98       	cbi	0x12, 4	; 18
   RW_0;
 16a:	95 98       	cbi	0x12, 5	; 18
   DataLcd = 0x38;   //设置DL=1,N=1,F=0
 16c:	88 e3       	ldi	r24, 0x38	; 56
 16e:	8b bb       	out	0x1b, r24	; 27
   delay_us(100);       //地址建立时间,最小140ns
 170:	84 e6       	ldi	r24, 0x64	; 100
 172:	90 e0       	ldi	r25, 0x00	; 0
 174:	0e 94 70 01 	call	0x2e0 <delay_us>
   EN_1;
 178:	97 9a       	sbi	0x12, 7	; 18
   delay_us(100);     //脉冲宽度,最小450ns
 17a:	84 e6       	ldi	r24, 0x64	; 100
 17c:	90 e0       	ldi	r25, 0x00	; 0
 17e:	0e 94 70 01 	call	0x2e0 <delay_us>
   EN_0;
 182:	82 b3       	in	r24, 0x12	; 18
 184:	81 23       	and	r24, r17
 186:	82 bb       	out	0x12, r24	; 18
   delay_us(100);     //地址保持时间,最小10ns
 188:	84 e6       	ldi	r24, 0x64	; 100
 18a:	90 e0       	ldi	r25, 0x00	; 0
 18c:	0e 94 70 01 	call	0x2e0 <delay_us>
   RS_1;
 190:	94 9a       	sbi	0x12, 4	; 18
   RW_1;
 192:	95 9a       	sbi	0x12, 5	; 18
 194:	1f 91       	pop	r17
 196:	08 95       	ret

00000198 <CgramSet>:
}
void CgramSet(void)
{
 198:	08 95       	ret

0000019a <DdramSet>:
   
}
void DdramSet(unsigned char addr)
{
 19a:	1f 93       	push	r17
   EN_0;
 19c:	1f e7       	ldi	r17, 0x7F	; 127
 19e:	92 b3       	in	r25, 0x12	; 18
 1a0:	91 23       	and	r25, r17
 1a2:	92 bb       	out	0x12, r25	; 18
   RS_0;
 1a4:	94 98       	cbi	0x12, 4	; 18
   RW_0;
 1a6:	95 98       	cbi	0x12, 5	; 18
   DataLcd = (0x80+addr);   //
 1a8:	80 58       	subi	r24, 0x80	; 128
 1aa:	8b bb       	out	0x1b, r24	; 27
   delay_us(100);
 1ac:	84 e6       	ldi	r24, 0x64	; 100
 1ae:	90 e0       	ldi	r25, 0x00	; 0
 1b0:	0e 94 70 01 	call	0x2e0 <delay_us>
   EN_1;
 1b4:	97 9a       	sbi	0x12, 7	; 18
   delay_us(100);
 1b6:	84 e6       	ldi	r24, 0x64	; 100
 1b8:	90 e0       	ldi	r25, 0x00	; 0
 1ba:	0e 94 70 01 	call	0x2e0 <delay_us>
   EN_0;
 1be:	82 b3       	in	r24, 0x12	; 18
 1c0:	81 23       	and	r24, r17
 1c2:	82 bb       	out	0x12, r24	; 18
   delay_us(100);
 1c4:	84 e6       	ldi	r24, 0x64	; 100
 1c6:	90 e0       	ldi	r25, 0x00	; 0
 1c8:	0e 94 70 01 	call	0x2e0 <delay_us>
   RS_1;
 1cc:	94 9a       	sbi	0x12, 4	; 18
   RW_1;
 1ce:	95 9a       	sbi	0x12, 5	; 18

⌨️ 快捷键说明

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