📄 main.lss
字号:
main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000b6c 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000012 00800060 00000b6c 00000c00 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000006 00800072 00800072 00000c12 2**0
ALLOC
3 .noinit 00000000 00800078 00800078 00000c12 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 00000c12 2**0
CONTENTS
5 .debug_aranges 00000014 00000000 00000000 00000c12 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_pubnames 00000209 00000000 00000000 00000c26 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_info 000007ea 00000000 00000000 00000e2f 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_abbrev 000001c6 00000000 00000000 00001619 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_line 000007f5 00000000 00000000 000017df 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_str 000002e3 00000000 00000000 00001fd4 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 97 00 jmp 0x12e
4: 0c 94 b2 00 jmp 0x164
8: 0c 94 b2 00 jmp 0x164
c: 0c 94 b2 00 jmp 0x164
10: 0c 94 b2 00 jmp 0x164
14: 0c 94 b2 00 jmp 0x164
18: 0c 94 b2 00 jmp 0x164
1c: 0c 94 b2 00 jmp 0x164
20: 0c 94 b2 00 jmp 0x164
24: 0c 94 b2 00 jmp 0x164
28: 0c 94 b2 00 jmp 0x164
2c: 0c 94 b2 00 jmp 0x164
30: 0c 94 b2 00 jmp 0x164
34: 0c 94 b2 00 jmp 0x164
38: 0c 94 b2 00 jmp 0x164
3c: 0c 94 b2 00 jmp 0x164
40: 0c 94 b2 00 jmp 0x164
44: 0c 94 b2 00 jmp 0x164
48: 0c 94 b2 00 jmp 0x164
4c: 0c 94 b2 00 jmp 0x164
50: 0c 94 b2 00 jmp 0x164
00000054 <__ctors_end>:
54: 24 10 cpse r2, r4
56: 02 10 cpse r0, r2
58: df 0f add r29, r31
5a: ba 0f add r27, r26
5c: 94 0f add r25, r20
5e: 6d 0f add r22, r29
60: 44 0f add r20, r20
62: 1a 0f add r17, r26
64: ef 0e add r14, r31
66: c3 0e add r12, r19
68: 95 0e add r9, r21
6a: 66 0e add r6, r22
6c: 37 0e add r3, r23
6e: 06 0e add r0, r22
70: d4 0d add r29, r4
72: a1 0d add r26, r1
74: 6d 0d add r22, r13
76: 39 0d add r19, r9
78: 03 0d add r16, r3
7a: cd 0c add r12, r13
7c: 96 0c add r9, r6
7e: 5e 0c add r5, r14
80: 26 0c add r2, r6
82: ee 0b sbc r30, r30
84: b5 0b sbc r27, r21
86: 7c 0b sbc r23, r28
88: 42 0b sbc r20, r18
8a: 08 0b sbc r16, r24
8c: cf 0a sbc r12, r31
8e: 95 0a sbc r9, r21
90: 5b 0a sbc r5, r27
92: 21 0a sbc r2, r17
94: e8 09 sbc r30, r8
96: ae 09 sbc r26, r14
98: 75 09 sbc r23, r5
9a: 3d 09 sbc r19, r13
9c: 05 09 sbc r16, r5
9e: cd 08 sbc r12, r13
a0: 96 08 sbc r9, r6
a2: 5f 08 sbc r5, r15
a4: 29 08 sbc r2, r9
a6: f4 07 cpc r31, r20
a8: c0 07 cpc r28, r16
aa: 8c 07 cpc r24, r28
ac: 59 07 cpc r21, r25
ae: 27 07 cpc r18, r23
b0: f6 06 cpc r15, r22
b2: c6 06 cpc r12, r22
b4: 96 06 cpc r9, r22
b6: 68 06 cpc r6, r24
b8: 3a 06 cpc r3, r26
ba: 0e 06 cpc r0, r30
bc: e2 05 cpc r30, r2
be: b8 05 cpc r27, r8
c0: 8e 05 cpc r24, r14
c2: 65 05 cpc r22, r5
c4: 3d 05 cpc r19, r13
c6: 17 05 cpc r17, r7
c8: f1 04 cpc r15, r1
ca: cc 04 cpc r12, r12
cc: a8 04 cpc r10, r8
000000ce <icon_temp>:
ce: 00 00 03 d0 02 46 03 48 02 48 03 46 02 40 03 40 .....F.H.H.F.@.@
de: 02 40 03 40 02 40 02 40 04 20 04 20 02 40 01 80 .@.@.@.@. . .@..
000000ee <icon_volt>:
ee: 00 00 00 00 00 00 1f fc 10 04 12 24 12 24 11 44 ...........$.$.D
fe: 10 84 1f fc 10 04 12 24 10 04 1f fc 00 00 00 00 .......$........
0000010e <icon_rt>:
...
116: 1c 00 02 00 1f f8 f1 0f 10 88 1f f8 00 40 00 20 .............@.
...
0000012e <__init>:
12e: 11 24 eor r1, r1
130: 1f be out 0x3f, r1 ; 63
132: cf e5 ldi r28, 0x5F ; 95
134: d4 e0 ldi r29, 0x04 ; 4
136: de bf out 0x3e, r29 ; 62
138: cd bf out 0x3d, r28 ; 61
0000013a <__do_copy_data>:
13a: 10 e0 ldi r17, 0x00 ; 0
13c: a0 e6 ldi r26, 0x60 ; 96
13e: b0 e0 ldi r27, 0x00 ; 0
140: ec e6 ldi r30, 0x6C ; 108
142: fb e0 ldi r31, 0x0B ; 11
144: 02 c0 rjmp .+4 ; 0x14a
00000146 <.do_copy_data_loop>:
146: 05 90 lpm r0, Z+
148: 0d 92 st X+, r0
0000014a <.do_copy_data_start>:
14a: a2 37 cpi r26, 0x72 ; 114
14c: b1 07 cpc r27, r17
14e: d9 f7 brne .-10 ; 0x146
00000150 <__do_clear_bss>:
150: 10 e0 ldi r17, 0x00 ; 0
152: a2 e7 ldi r26, 0x72 ; 114
154: b0 e0 ldi r27, 0x00 ; 0
156: 01 c0 rjmp .+2 ; 0x15a
00000158 <.do_clear_bss_loop>:
158: 1d 92 st X+, r1
0000015a <.do_clear_bss_start>:
15a: a8 37 cpi r26, 0x78 ; 120
15c: b1 07 cpc r27, r17
15e: e1 f7 brne .-8 ; 0x158
160: 0c 94 1a 04 jmp 0x834
00000164 <__bad_interrupt>:
164: 0c 94 00 00 jmp 0x0
00000168 <delay_nms>:
//*参数: 无 *
//*返回: 无 *
//***********************************************************************
void delay_nms(unsigned int nms)
{
168: 9c 01 movw r18, r24
for(;nms>0;nms--)
16a: 21 15 cp r18, r1
16c: 31 05 cpc r19, r1
16e: 39 f0 breq .+14 ; 0x17e
milliseconds can be achieved.
*/
static __inline__ void
_delay_loop_2(uint16_t __count)
{
170: 80 ed ldi r24, 0xD0 ; 208
172: 97 e0 ldi r25, 0x07 ; 7
__asm__ volatile (
174: 01 97 sbiw r24, 0x01 ; 1
176: f1 f7 brne .-4 ; 0x174
//*返回: 无 *
//***********************************************************************
void delay_nms(unsigned int nms)
{
for(;nms>0;nms--)
178: 21 50 subi r18, 0x01 ; 1
17a: 30 40 sbci r19, 0x00 ; 0
17c: f6 cf rjmp .-20 ; 0x16a
17e: 08 95 ret
00000180 <lcm12864_check_busy>:
{
_delay_loop_2(2000);
}
}
//***********************************************************************
//*名称: void lcm12864_check_busy(void) *
//*功能: 检查lcm12864忙碌子程序 *
//*参数: 无 *
//*返回: 无 *
//***********************************************************************
void lcm12864_check_busy(void)
{
LCD_DB_SET_IN;
180: 14 ba out 0x14, r1 ; 20
LCD_DB_OUT=0xFF;
182: 8f ef ldi r24, 0xFF ; 255
184: 85 bb out 0x15, r24 ; 21
LCD_RS_CBI; // 显示指令
186: df 98 cbi 0x1b, 7 ; 27
LCD_RW_SBI; // 读数据
188: de 9a sbi 0x1b, 6 ; 27
LCD_E_SBI; // 读写使能
18a: dd 9a sbi 0x1b, 5 ; 27
while(LCD_BF); // 判断忙碌标志位
18c: 9f 99 sbic 0x13, 7 ; 19
18e: fe cf rjmp .-4 ; 0x18c
LCD_E_CBI; // 读写使能关闭
190: dd 98 cbi 0x1b, 5 ; 27
LCD_DB_SET_OUT;
192: 8f ef ldi r24, 0xFF ; 255
194: 84 bb out 0x14, r24 ; 20
196: 08 95 ret
00000198 <lcm12864_wirte_cmd>:
}
//***********************************************************************
//*名称: void lcm12864_wirte_cmd(unsigned char command) *
//*功能: 往lcm12864写指令子程序 *
//*参数: command 字符型 指令代码 *
//*返回: 无 *
//***********************************************************************
void lcm12864_wirte_cmd(unsigned char command)
{
198: 1f 93 push r17
19a: 18 2f mov r17, r24
lcm12864_check_busy(); // 检查LCD是否忙碌
19c: 0e 94 c0 00 call 0x180
LCD_DB_SET_OUT;
1a0: 8f ef ldi r24, 0xFF ; 255
1a2: 84 bb out 0x14, r24 ; 20
LCD_RS_CBI; // 显示指令
1a4: df 98 cbi 0x1b, 7 ; 27
LCD_RW_CBI; // 写数据
1a6: de 98 cbi 0x1b, 6 ; 27
LCD_DB_OUT=command;
1a8: 15 bb out 0x15, r17 ; 21
LCD_E_SBI;
1aa: dd 9a sbi 0x1b, 5 ; 27
asm("nop"::);
1ac: 00 00 nop
LCD_E_CBI;
1ae: dd 98 cbi 0x1b, 5 ; 27
1b0: 1f 91 pop r17
1b2: 08 95 ret
000001b4 <lcm12864_read_data>:
}
//***********************************************************************************
//*名称: unsigned char lcm12864_read_data(void) *
//*功能: 从lcm12864读数据子程序 *
//*参数: 无 *
//*返回: lcm12864_data 字符型 读取数据 *
//***********************************************************************************
unsigned char lcm12864_read_data(void)
{
unsigned char rev_data;
lcm12864_check_busy();
1b4: 0e 94 c0 00 call 0x180
LCD_RS_SBI; //显示数据
1b8: df 9a sbi 0x1b, 7 ; 27
LCD_RW_SBI; //读数据
1ba: de 9a sbi 0x1b, 6 ; 27
LCD_E_SBI;
1bc: dd 9a sbi 0x1b, 5 ; 27
rev_data=LCD_DB_OUT;
1be: 85 b3 in r24, 0x15 ; 21
LCD_E_CBI;
1c0: dd 98 cbi 0x1b, 5 ; 27
return rev_data;
}
1c2: 99 27 eor r25, r25
1c4: 08 95 ret
000001c6 <lcm12864_wirte_data>:
//***********************************************************************************
//*名称: lcm12864_wirte_data(unsigned char data_byte) *
//*功能: 往lcm12864写数据 *
//*参数: lcm12864_data 要写入的数 *
//*返回: 无 *
//***********************************************************************************
void lcm12864_wirte_data(unsigned char data_byte)
{
1c6: 1f 93 push r17
1c8: 18 2f mov r17, r24
lcm12864_check_busy(); // 检查LCD是否忙碌
1ca: 0e 94 c0 00 call 0x180
LCD_DB_SET_OUT;
1ce: 8f ef ldi r24, 0xFF ; 255
1d0: 84 bb out 0x14, r24 ; 20
LCD_RS_SBI; //显示数据
1d2: df 9a sbi 0x1b, 7 ; 27
LCD_RW_CBI; //写数据
1d4: de 98 cbi 0x1b, 6 ; 27
LCD_DB_OUT=data_byte;
1d6: 15 bb out 0x15, r17 ; 21
LCD_E_SBI; // 读写使能
1d8: dd 9a sbi 0x1b, 5 ; 27
asm("nop"::);
1da: 00 00 nop
LCD_E_CBI;
1dc: dd 98 cbi 0x1b, 5 ; 27
1de: 1f 91 pop r17
1e0: 08 95 ret
000001e2 <lcm12864_clear>:
}
//***********************************************************************************
//*名称: lcm12864_clear(void) *
//*功能: lcm12864DDRAM清屏 *
//*参数: 无 *
//*返回: 无 *
//***********************************************************************************
void lcm12864_clear(void)
{
lcm12864_wirte_cmd(0x01);
1e2: 81 e0 ldi r24, 0x01 ; 1
1e4: 0e 94 cc 00 call 0x198
1e8: 08 95 ret
000001ea <lcm12864_init>:
}
//***********************************************************************************
//*名称: lcm12864_init(void) *
//*功能: lcm12864初始化 *
//*参数: 无 *
//*返回: 无 *
//***********************************************************************************
void lcm12864_init(void)
{
LCD_PSB_SBI; //8位并口方式
1ea: 97 9a sbi 0x12, 7 ; 18
LCD_RST_CBI; //lcm12864复位
1ec: 91 98 cbi 0x12, 1 ; 18
delay_nms(5);
1ee: 85 e0 ldi r24, 0x05 ; 5
1f0: 90 e0 ldi r25, 0x00 ; 0
1f2: 0e 94 b4 00 call 0x168
LCD_RST_SBI;
1f6: 91 9a sbi 0x12, 1 ; 18
lcm12864_wirte_cmd(0x30); //基本指令
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -