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

📄 cepark-avr

📁 CEPARK-AVR单片机教程LCD12232液晶显示实验
💻
📖 第 1 页 / 共 3 页
字号:

main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         0000054c  00000000  00000000  00000094  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         0000034a  00800060  0000054c  000005e0  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000002  008003aa  008003aa  0000092a  2**0
                  ALLOC
  3 .stab         0000036c  00000000  00000000  0000092c  2**2
                  CONTENTS, READONLY, DEBUGGING
  4 .stabstr      00000084  00000000  00000000  00000c98  2**0
                  CONTENTS, READONLY, DEBUGGING
  5 .debug_aranges 00000040  00000000  00000000  00000d1c  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_pubnames 0000018a  00000000  00000000  00000d5c  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_info   00000636  00000000  00000000  00000ee6  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_abbrev 00000212  00000000  00000000  0000151c  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_line   00000686  00000000  00000000  0000172e  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_frame  000000d0  00000000  00000000  00001db4  2**0
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_str    000001a6  00000000  00000000  00001e84  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_loc    0000023e  00000000  00000000  0000202a  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	0c 94 2a 00 	jmp	0x54	; 0x54 <__ctors_end>
   4:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
   8:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
   c:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  10:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  14:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  18:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  1c:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  20:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  24:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  28:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  2c:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  30:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  34:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  38:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  3c:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  40:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  44:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  48:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  4c:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  50:	0c 94 45 00 	jmp	0x8a	; 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:	13 e0       	ldi	r17, 0x03	; 3
  62:	a0 e6       	ldi	r26, 0x60	; 96
  64:	b0 e0       	ldi	r27, 0x00	; 0
  66:	ec e4       	ldi	r30, 0x4C	; 76
  68:	f5 e0       	ldi	r31, 0x05	; 5
  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:	aa 3a       	cpi	r26, 0xAA	; 170
  72:	b1 07       	cpc	r27, r17
  74:	d9 f7       	brne	.-10     	; 0x6c <.do_copy_data_loop>

00000076 <__do_clear_bss>:
  76:	13 e0       	ldi	r17, 0x03	; 3
  78:	aa ea       	ldi	r26, 0xAA	; 170
  7a:	b3 e0       	ldi	r27, 0x03	; 3
  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:	ac 3a       	cpi	r26, 0xAC	; 172
  82:	b1 07       	cpc	r27, r17
  84:	e1 f7       	brne	.-8      	; 0x7e <.do_clear_bss_loop>
  86:	0c 94 47 00 	jmp	0x8e	; 0x8e <main>

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

0000008e <main>:
#include <util/delay.h>       //GCC中的延时函数头文件
#include "LCD12232.h"

int main(void)            
{    
  8e:	0e 94 8f 02 	call	0x51e	; 0x51e <LCDPort_Init>
	LCDPort_Init();   //端口初始化
	LCD_Init();    //LCD初始化
  92:	0e 94 a9 00 	call	0x152	; 0x152 <LCD_Init>
	clear_lcd();
  96:	0e 94 d9 00 	call	0x1b2	; 0x1b2 <clear_lcd>
	Delayms(3000);
  9a:	88 eb       	ldi	r24, 0xB8	; 184
  9c:	9b e0       	ldi	r25, 0x0B	; 11
  9e:	0e 94 81 02 	call	0x502	; 0x502 <Delayms>
	
	//第一行显示数组
	tex_Write(lab1);
  a2:	88 e4       	ldi	r24, 0x48	; 72
  a4:	92 e0       	ldi	r25, 0x02	; 2
  a6:	0e 94 fe 00 	call	0x1fc	; 0x1fc <tex_Write>
	tex_Write(lab2);
  aa:	88 e5       	ldi	r24, 0x58	; 88
  ac:	92 e0       	ldi	r25, 0x02	; 2
  ae:	0e 94 fe 00 	call	0x1fc	; 0x1fc <tex_Write>
	tex_Write(lab3);
  b2:	88 e6       	ldi	r24, 0x68	; 104
  b4:	92 e0       	ldi	r25, 0x02	; 2
  b6:	0e 94 fe 00 	call	0x1fc	; 0x1fc <tex_Write>
	tex_Write(lab4);
  ba:	88 e7       	ldi	r24, 0x78	; 120
  bc:	92 e0       	ldi	r25, 0x02	; 2
  be:	0e 94 fe 00 	call	0x1fc	; 0x1fc <tex_Write>
	tex_Write(lab5);
  c2:	88 e8       	ldi	r24, 0x88	; 136
  c4:	92 e0       	ldi	r25, 0x02	; 2
  c6:	0e 94 fe 00 	call	0x1fc	; 0x1fc <tex_Write>
	tex_Write(lab6);
  ca:	88 e9       	ldi	r24, 0x98	; 152
  cc:	92 e0       	ldi	r25, 0x02	; 2
  ce:	0e 94 fe 00 	call	0x1fc	; 0x1fc <tex_Write>
	tex_Write(lab7);
  d2:	88 ea       	ldi	r24, 0xA8	; 168
  d4:	92 e0       	ldi	r25, 0x02	; 2
  d6:	0e 94 fe 00 	call	0x1fc	; 0x1fc <tex_Write>
	tex_Write(lab8);
  da:	88 eb       	ldi	r24, 0xB8	; 184
  dc:	92 e0       	ldi	r25, 0x02	; 2
  de:	0e 94 fe 00 	call	0x1fc	; 0x1fc <tex_Write>
	tex_Write(lab9);
  e2:	88 ec       	ldi	r24, 0xC8	; 200
  e4:	92 e0       	ldi	r25, 0x02	; 2
  e6:	0e 94 fe 00 	call	0x1fc	; 0x1fc <tex_Write>
	tex_Write(lab0);
  ea:	88 ed       	ldi	r24, 0xD8	; 216
  ec:	92 e0       	ldi	r25, 0x02	; 2
  ee:	0e 94 fe 00 	call	0x1fc	; 0x1fc <tex_Write>
	//第二行显示汉字
	WriteCharacter(lab_n);
  f2:	88 ee       	ldi	r24, 0xE8	; 232
  f4:	92 e0       	ldi	r25, 0x02	; 2
  f6:	0e 94 98 01 	call	0x330	; 0x330 <WriteCharacter>
	WriteCharacter(lab_y);
  fa:	88 e0       	ldi	r24, 0x08	; 8
  fc:	93 e0       	ldi	r25, 0x03	; 3
  fe:	0e 94 98 01 	call	0x330	; 0x330 <WriteCharacter>
	WriteCharacter(lab_l);
 102:	88 e2       	ldi	r24, 0x28	; 40
 104:	93 e0       	ldi	r25, 0x03	; 3
 106:	0e 94 98 01 	call	0x330	; 0x330 <WriteCharacter>
	WriteCharacter(lab_g);
 10a:	88 e4       	ldi	r24, 0x48	; 72
 10c:	93 e0       	ldi	r25, 0x03	; 3
 10e:	0e 94 98 01 	call	0x330	; 0x330 <WriteCharacter>
	WriteCharacter(lab_x);
 112:	88 e6       	ldi	r24, 0x68	; 104
 114:	93 e0       	ldi	r25, 0x03	; 3
 116:	0e 94 98 01 	call	0x330	; 0x330 <WriteCharacter>
	WriteCharacter(lab_u);
 11a:	88 e8       	ldi	r24, 0x88	; 136
 11c:	93 e0       	ldi	r25, 0x03	; 3
 11e:	0e 94 98 01 	call	0x330	; 0x330 <WriteCharacter>
 122:	ff cf       	rjmp	.-2      	; 0x122 <main+0x94>

00000124 <WriteCommand>:
}

 //LCD写指令,
void WriteCommand(unsigned char chip_select,unsigned char cmd)
{
 124:	99 27       	eor	r25, r25
 126:	80 ff       	sbrs	r24, 0
 128:	06 c0       	rjmp	.+12     	; 0x136 <WriteCommand+0x12>
	if(chip_select & 1)     //判断对左页还是右页的操作
	{
		SET_E1;      //如果是左页,E1使能
 12a:	de 9a       	sbi	0x1b, 6	; 27
	}
	
	else if(chip_select & 2)            //
	{
		SET_E2;       //右页,E2使能
	}
	
	CLR_A0;      //A0=0 写命令
 12c:	dc 98       	cbi	0x1b, 4	; 27
	CLR_RW;     //RW=0 写操作
 12e:	dd 98       	cbi	0x1b, 5	; 27
	
	PORTB = cmd;     //写命令数据到数据端口
 130:	68 bb       	out	0x18, r22	; 24

	if(chip_select & 1)         //
	{
		CLR_E1;          //关闭左右页使能
 132:	de 98       	cbi	0x1b, 6	; 27
 134:	0b c0       	rjmp	.+22     	; 0x14c <WriteCommand+0x28>
 136:	81 ff       	sbrs	r24, 1
 138:	06 c0       	rjmp	.+12     	; 0x146 <WriteCommand+0x22>
 13a:	df 9a       	sbi	0x1b, 7	; 27
 13c:	dc 98       	cbi	0x1b, 4	; 27
 13e:	dd 98       	cbi	0x1b, 5	; 27
 140:	68 bb       	out	0x18, r22	; 24
	}
	
	else if(chip_select & 2)      //
	{
		CLR_E2;          //
 142:	df 98       	cbi	0x1b, 7	; 27
 144:	03 c0       	rjmp	.+6      	; 0x14c <WriteCommand+0x28>
 146:	dc 98       	cbi	0x1b, 4	; 27
 148:	dd 98       	cbi	0x1b, 5	; 27
 14a:	68 bb       	out	0x18, r22	; 24
	}
	
    SET_A0;         //
 14c:	dc 9a       	sbi	0x1b, 4	; 27
	SET_RW;         //    	
 14e:	dd 9a       	sbi	0x1b, 5	; 27
 150:	08 95       	ret

00000152 <LCD_Init>:
 152:	62 ee       	ldi	r22, 0xE2	; 226
 154:	81 e0       	ldi	r24, 0x01	; 1
 156:	0e 94 92 00 	call	0x124	; 0x124 <WriteCommand>
 15a:	62 ee       	ldi	r22, 0xE2	; 226
 15c:	82 e0       	ldi	r24, 0x02	; 2
 15e:	0e 94 92 00 	call	0x124	; 0x124 <WriteCommand>
 162:	69 ea       	ldi	r22, 0xA9	; 169
 164:	81 e0       	ldi	r24, 0x01	; 1
 166:	0e 94 92 00 	call	0x124	; 0x124 <WriteCommand>
 16a:	69 ea       	ldi	r22, 0xA9	; 169
 16c:	82 e0       	ldi	r24, 0x02	; 2
 16e:	0e 94 92 00 	call	0x124	; 0x124 <WriteCommand>
 172:	6f ea       	ldi	r22, 0xAF	; 175
 174:	81 e0       	ldi	r24, 0x01	; 1
 176:	0e 94 92 00 	call	0x124	; 0x124 <WriteCommand>
 17a:	6f ea       	ldi	r22, 0xAF	; 175
 17c:	82 e0       	ldi	r24, 0x02	; 2
 17e:	0e 94 92 00 	call	0x124	; 0x124 <WriteCommand>
 182:	08 95       	ret

00000184 <WriteData>:
}

//写数据
void WriteData(unsigned char chip_select,unsigned char data)
{
 184:	99 27       	eor	r25, r25
 186:	80 ff       	sbrs	r24, 0
 188:	06 c0       	rjmp	.+12     	; 0x196 <WriteData+0x12>
	if(chip_select & 1)      //判断左右页
	{
		SET_E1;          //
 18a:	de 9a       	sbi	0x1b, 6	; 27
	}
	
	else if(chip_select & 2)      //
	{
		SET_E2;         //
	}
	
	SET_A0;           //A0=1,写数据
 18c:	dc 9a       	sbi	0x1b, 4	; 27
	CLR_RW;        //RW=0,写操作
 18e:	dd 98       	cbi	0x1b, 5	; 27
	
	PORTB = data;     //写数据到数据端口
 190:	68 bb       	out	0x18, r22	; 24

	if(chip_select & 1)         //
	{
		CLR_E1;          //结束使能
 192:	de 98       	cbi	0x1b, 6	; 27
 194:	0b c0       	rjmp	.+22     	; 0x1ac <WriteData+0x28>
 196:	81 ff       	sbrs	r24, 1
 198:	06 c0       	rjmp	.+12     	; 0x1a6 <WriteData+0x22>
 19a:	df 9a       	sbi	0x1b, 7	; 27
 19c:	dc 9a       	sbi	0x1b, 4	; 27
 19e:	dd 98       	cbi	0x1b, 5	; 27
 1a0:	68 bb       	out	0x18, r22	; 24
	}
	
	else if(chip_select & 2)         //
	{
		CLR_E2;                //
 1a2:	df 98       	cbi	0x1b, 7	; 27
 1a4:	03 c0       	rjmp	.+6      	; 0x1ac <WriteData+0x28>

⌨️ 快捷键说明

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