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

📄 lcd1602.lss

📁 lcd1602液晶的avr测试实例程序
💻 LSS
📖 第 1 页 / 共 3 页
字号:

Lcd1602.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         0000061a  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000012  00800060  0000061a  000006ae  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          0000000a  00800072  00800072  000006c0  2**0
                  ALLOC
  3 .noinit       00000000  0080007c  0080007c  000006c0  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  000006c0  2**0
                  CONTENTS
  5 .debug_aranges 00000050  00000000  00000000  000006c0  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_pubnames 00000191  00000000  00000000  00000710  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_info   00000490  00000000  00000000  000008a1  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_abbrev 0000025a  00000000  00000000  00000d31  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_line   00000610  00000000  00000000  00000f8b  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_str    00000231  00000000  00000000  0000159b  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

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

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:	ea e1       	ldi	r30, 0x1A	; 26
  3a:	f6 e0       	ldi	r31, 0x06	; 6
  3c:	02 c0       	rjmp	.+4      	; 0x42

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

00000042 <.do_copy_data_start>:
  42:	a2 37       	cpi	r26, 0x72	; 114
  44:	b1 07       	cpc	r27, r17
  46:	d9 f7       	brne	.-10     	; 0x3e

00000048 <__do_clear_bss>:
  48:	10 e0       	ldi	r17, 0x00	; 0
  4a:	a2 e7       	ldi	r26, 0x72	; 114
  4c:	b0 e0       	ldi	r27, 0x00	; 0
  4e:	01 c0       	rjmp	.+2      	; 0x52

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

00000052 <.do_clear_bss_start>:
  52:	ac 37       	cpi	r26, 0x7C	; 124
  54:	b1 07       	cpc	r27, r17
  56:	e1 f7       	brne	.-8      	; 0x50
  58:	01 c0       	rjmp	.+2      	; 0x5c

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

0000005c <main>:
#include "DelayTime.h"


int main(void)
{
  5c:	cf e5       	ldi	r28, 0x5F	; 95
  5e:	d4 e0       	ldi	r29, 0x04	; 4
  60:	de bf       	out	0x3e, r29	; 62
  62:	cd bf       	out	0x3d, r28	; 61
	Uart_Init(51);
  64:	83 e3       	ldi	r24, 0x33	; 51
  66:	90 e0       	ldi	r25, 0x00	; 0
  68:	c4 d0       	rcall	.+392    	; 0x1f2
	Lcd_Init();
  6a:	5e d0       	rcall	.+188    	; 0x128
	
	//Lcd_PutChar('A');
	//Lcd_PutChar('0');
	Lcd_PutStr("Hello");
  6c:	80 e6       	ldi	r24, 0x60	; 96
  6e:	90 e0       	ldi	r25, 0x00	; 0
  70:	b1 d0       	rcall	.+354    	; 0x1d4
	//Lcd_ShowCursor();

	
	

	//Lcd_Reset();
	//Lcd_TestFunc();
	
	printf("Over!\n");
  72:	86 e6       	ldi	r24, 0x66	; 102
  74:	90 e0       	ldi	r25, 0x00	; 0
  76:	86 d1       	rcall	.+780    	; 0x384
	char pp;
	
	while(1)
	{
		pp=getchar();		
  78:	80 91 72 00 	lds	r24, 0x0072
  7c:	90 91 73 00 	lds	r25, 0x0073
  80:	44 d1       	rcall	.+648    	; 0x30a
  82:	18 2f       	mov	r17, r24
		Lcd_PutChar(pp);
  84:	a5 d0       	rcall	.+330    	; 0x1d0
		switch(pp)
  86:	81 2f       	mov	r24, r17
  88:	99 27       	eor	r25, r25
  8a:	81 36       	cpi	r24, 0x61	; 97
  8c:	91 05       	cpc	r25, r1
  8e:	59 f0       	breq	.+22     	; 0xa6
  90:	82 36       	cpi	r24, 0x62	; 98
  92:	91 05       	cpc	r25, r1
  94:	1c f4       	brge	.+6      	; 0x9c
  96:	43 97       	sbiw	r24, 0x13	; 19
  98:	49 f0       	breq	.+18     	; 0xac
  9a:	ee cf       	rjmp	.-36     	; 0x78
  9c:	83 36       	cpi	r24, 0x63	; 99
  9e:	91 05       	cpc	r25, r1
  a0:	59 f7       	brne	.-42     	; 0x78
		{
		case 'c':
			Lcd_Cls();
  a2:	65 d0       	rcall	.+202    	; 0x16e
			break;	
  a4:	e9 cf       	rjmp	.-46     	; 0x78
		case 'a':
			Lcd_SetXy(1,0);
  a6:	60 e0       	ldi	r22, 0x00	; 0
  a8:	81 e0       	ldi	r24, 0x01	; 1
  aa:	02 c0       	rjmp	.+4      	; 0xb0
			break;
		case 0x13:
			Lcd_SetXy(1,1);
  ac:	61 e0       	ldi	r22, 0x01	; 1
  ae:	86 2f       	mov	r24, r22
  b0:	85 d0       	rcall	.+266    	; 0x1bc
			break;
  b2:	e2 cf       	rjmp	.-60     	; 0x78

000000b4 <Lcd_SetRwMode>:
*  输入:    需要设定的模式 (读或写)                    *
********************************************************/
void Lcd_SetRwMode(char ucMode)
{
	if(ucMode == LCD_RW_MODE_WRITE)
  b4:	88 23       	and	r24, r24
  b6:	11 f4       	brne	.+4      	; 0xbc
		LCD_CTRL_PORT &=~ _BV(LCD_RW_BIT);
  b8:	c1 98       	cbi	0x18, 1	; 24
  ba:	08 95       	ret
	else
		LCD_CTRL_PORT |= _BV(LCD_RW_BIT);
  bc:	c1 9a       	sbi	0x18, 1	; 24
  be:	08 95       	ret
  c0:	08 95       	ret

000000c2 <Lcd_SetCmdDataMode>:
}
/********************************************************
*  函数说明:设置数据口操作模式		                        *
*  输入:    需要设定的模式 (发送指令或发送数据)                    *
********************************************************/
void Lcd_SetCmdDataMode(char ucMode)
{	
	if(ucMode == LCD_CD_MODE_COMMAND)
  c2:	88 23       	and	r24, r24
  c4:	11 f4       	brne	.+4      	; 0xca
		LCD_CTRL_PORT &=~_BV(LCD_RS_BIT);
  c6:	c0 98       	cbi	0x18, 0	; 24
  c8:	08 95       	ret
	else	
		LCD_CTRL_PORT |= _BV(LCD_RS_BIT);	
  ca:	c0 9a       	sbi	0x18, 0	; 24
  cc:	08 95       	ret
  ce:	08 95       	ret

000000d0 <Lcd_SetCmd>:
  d0:	1f 93       	push	r17
  d2:	18 2f       	mov	r17, r24
  d4:	80 e0       	ldi	r24, 0x00	; 0
  d6:	ee df       	rcall	.-36     	; 0xb4
  d8:	80 e0       	ldi	r24, 0x00	; 0
  da:	f3 df       	rcall	.-26     	; 0xc2
  dc:	82 e0       	ldi	r24, 0x02	; 2
  de:	90 e0       	ldi	r25, 0x00	; 0
  e0:	c3 d0       	rcall	.+390    	; 0x268
  e2:	c2 9a       	sbi	0x18, 2	; 24
  e4:	20 ef       	ldi	r18, 0xF0	; 240
  e6:	85 b3       	in	r24, 0x15	; 21
  e8:	82 23       	and	r24, r18
  ea:	85 bb       	out	0x15, r24	; 21
  ec:	91 2f       	mov	r25, r17
  ee:	92 95       	swap	r25
  f0:	9f 70       	andi	r25, 0x0F	; 15
  f2:	85 b3       	in	r24, 0x15	; 21
  f4:	89 2b       	or	r24, r25
  f6:	85 bb       	out	0x15, r24	; 21
  f8:	c2 98       	cbi	0x18, 2	; 24
  fa:	c2 9a       	sbi	0x18, 2	; 24
  fc:	85 b3       	in	r24, 0x15	; 21
  fe:	82 23       	and	r24, r18
 100:	85 bb       	out	0x15, r24	; 21
 102:	1f 70       	andi	r17, 0x0F	; 15
 104:	85 b3       	in	r24, 0x15	; 21
 106:	81 2b       	or	r24, r17
 108:	85 bb       	out	0x15, r24	; 21
 10a:	c2 98       	cbi	0x18, 2	; 24
 10c:	81 e0       	ldi	r24, 0x01	; 1
 10e:	d2 df       	rcall	.-92     	; 0xb4
 110:	80 e0       	ldi	r24, 0x00	; 0
 112:	d7 df       	rcall	.-82     	; 0xc2
 114:	1f 91       	pop	r17
 116:	08 95       	ret

00000118 <Lcd_WaitForReady>:
 118:	81 e0       	ldi	r24, 0x01	; 1
 11a:	cc df       	rcall	.-104    	; 0xb4
 11c:	80 e0       	ldi	r24, 0x00	; 0
 11e:	d1 df       	rcall	.-94     	; 0xc2
 120:	c2 9a       	sbi	0x18, 2	; 24
 122:	83 b3       	in	r24, 0x13	; 19
 124:	c2 98       	cbi	0x18, 2	; 24
 126:	08 95       	ret

00000128 <Lcd_Init>:
 128:	8f e7       	ldi	r24, 0x7F	; 127
 12a:	84 bb       	out	0x14, r24	; 20
 12c:	15 ba       	out	0x15, r1	; 21
 12e:	8f ef       	ldi	r24, 0xFF	; 255
 130:	87 bb       	out	0x17, r24	; 23
 132:	18 ba       	out	0x18, r1	; 24
 134:	88 e2       	ldi	r24, 0x28	; 40
 136:	cc df       	rcall	.-104    	; 0xd0
 138:	ef df       	rcall	.-34     	; 0x118
 13a:	88 e2       	ldi	r24, 0x28	; 40
 13c:	90 e0       	ldi	r25, 0x00	; 0
 13e:	8e d0       	rcall	.+284    	; 0x25c
 140:	88 e2       	ldi	r24, 0x28	; 40
 142:	c6 df       	rcall	.-116    	; 0xd0
 144:	8c e0       	ldi	r24, 0x0C	; 12
 146:	c4 df       	rcall	.-120    	; 0xd0
 148:	81 e0       	ldi	r24, 0x01	; 1
 14a:	c2 df       	rcall	.-124    	; 0xd0
 14c:	86 e0       	ldi	r24, 0x06	; 6
 14e:	c0 df       	rcall	.-128    	; 0xd0
 150:	82 e0       	ldi	r24, 0x02	; 2
 152:	be df       	rcall	.-132    	; 0xd0
 154:	82 e0       	ldi	r24, 0x02	; 2
 156:	90 e0       	ldi	r25, 0x00	; 0
 158:	87 d0       	rcall	.+270    	; 0x268
 15a:	08 95       	ret

0000015c <Lcd_Reset>:
 15c:	82 e0       	ldi	r24, 0x02	; 2
 15e:	b8 df       	rcall	.-144    	; 0xd0
 160:	08 95       	ret

00000162 <Lcd_ShowCursor>:
 162:	8f e0       	ldi	r24, 0x0F	; 15
 164:	b5 df       	rcall	.-150    	; 0xd0
 166:	08 95       	ret

00000168 <Lcd_HideCursor>:
 168:	8c e0       	ldi	r24, 0x0C	; 12
 16a:	b2 df       	rcall	.-156    	; 0xd0
 16c:	08 95       	ret

0000016e <Lcd_Cls>:
 16e:	81 e0       	ldi	r24, 0x01	; 1
 170:	af df       	rcall	.-162    	; 0xd0
 172:	08 95       	ret

00000174 <Lcd_SetData>:
 174:	1f 93       	push	r17
 176:	18 2f       	mov	r17, r24
 178:	80 e0       	ldi	r24, 0x00	; 0
 17a:	9c df       	rcall	.-200    	; 0xb4
 17c:	81 e0       	ldi	r24, 0x01	; 1
 17e:	a1 df       	rcall	.-190    	; 0xc2
 180:	88 e2       	ldi	r24, 0x28	; 40
 182:	90 e0       	ldi	r25, 0x00	; 0
 184:	6b d0       	rcall	.+214    	; 0x25c
 186:	c2 9a       	sbi	0x18, 2	; 24
 188:	20 ef       	ldi	r18, 0xF0	; 240
 18a:	85 b3       	in	r24, 0x15	; 21
 18c:	82 23       	and	r24, r18
 18e:	85 bb       	out	0x15, r24	; 21
 190:	91 2f       	mov	r25, r17
 192:	92 95       	swap	r25
 194:	9f 70       	andi	r25, 0x0F	; 15
 196:	85 b3       	in	r24, 0x15	; 21
 198:	89 2b       	or	r24, r25
 19a:	85 bb       	out	0x15, r24	; 21
 19c:	c2 98       	cbi	0x18, 2	; 24
 19e:	c2 9a       	sbi	0x18, 2	; 24
 1a0:	85 b3       	in	r24, 0x15	; 21
 1a2:	82 23       	and	r24, r18
 1a4:	85 bb       	out	0x15, r24	; 21
 1a6:	1f 70       	andi	r17, 0x0F	; 15

⌨️ 快捷键说明

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