?? main.lss
字號:
main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 0000039e 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 000000ec 00800060 0000039e 00000432 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 0000000b 0080014c 0080014c 0000051e 2**0
ALLOC
3 .noinit 00000000 00800157 00800157 0000051e 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 0000051e 2**0
CONTENTS
5 .stab 0000036c 00000000 00000000 00000520 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 00000084 00000000 00000000 0000088c 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_aranges 00000014 00000000 00000000 00000910 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_pubnames 00000140 00000000 00000000 00000924 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_info 000004ce 00000000 00000000 00000a64 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_abbrev 00000155 00000000 00000000 00000f32 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_line 000003e1 00000000 00000000 00001087 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_str 0000018e 00000000 00000000 00001468 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 2a 00 jmp 0x54 <__ctors_end>
4: 0c 94 3f 01 jmp 0x27e <__vector_1>
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: 11 e0 ldi r17, 0x01 ; 1
62: a0 e6 ldi r26, 0x60 ; 96
64: b0 e0 ldi r27, 0x00 ; 0
66: ee e9 ldi r30, 0x9E ; 158
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: ac 34 cpi r26, 0x4C ; 76
72: b1 07 cpc r27, r17
74: d9 f7 brne .-10 ; 0x6c <.do_copy_data_loop>
00000076 <__do_clear_bss>:
76: 11 e0 ldi r17, 0x01 ; 1
78: ac e4 ldi r26, 0x4C ; 76
7a: b1 e0 ldi r27, 0x01 ; 1
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: a7 35 cpi r26, 0x57 ; 87
82: b1 07 cpc r27, r17
84: e1 f7 brne .-8 ; 0x7e <.do_clear_bss_loop>
86: 0c 94 b3 01 jmp 0x366 <main>
0000008a <__bad_interrupt>:
8a: 0c 94 00 00 jmp 0x0 <__vectors>
0000008e <sbbi>:
void sbbi(uint8_t a)
{
PORTB|=1<<a;
8e: 21 e0 ldi r18, 0x01 ; 1
90: 30 e0 ldi r19, 0x00 ; 0
92: 02 c0 rjmp .+4 ; 0x98 <sbbi+0xa>
94: 22 0f add r18, r18
96: 33 1f adc r19, r19
98: 8a 95 dec r24
9a: e2 f7 brpl .-8 ; 0x94 <sbbi+0x6>
9c: 88 b3 in r24, 0x18 ; 24
9e: 82 2b or r24, r18
a0: 88 bb out 0x18, r24 ; 24
a2: 08 95 ret
000000a4 <cbbi>:
}
void cbbi(uint8_t a)
{
uint8_t b=0xfe;
a4: 9e ef ldi r25, 0xFE ; 254
for(;a>0;a--)
a6: 88 23 and r24, r24
a8: 21 f0 breq .+8 ; 0xb2 <cbbi+0xe>
{
b<<=1;
aa: 99 0f add r25, r25
b|=0x01;
ac: 91 60 ori r25, 0x01 ; 1
ae: 81 50 subi r24, 0x01 ; 1
b0: fa cf rjmp .-12 ; 0xa6 <cbbi+0x2>
}
PORTB&=b;
b2: 88 b3 in r24, 0x18 ; 24
b4: 89 23 and r24, r25
b6: 88 bb out 0x18, r24 ; 24
b8: 08 95 ret
000000ba <Delay>:
}
void Delay(uint16_t time)
{
while(time>0)
time--;
ba: 00 97 sbiw r24, 0x00 ; 0
bc: 11 f0 breq .+4 ; 0xc2 <Delay+0x8>
be: 01 97 sbiw r24, 0x01 ; 1
c0: fc cf rjmp .-8 ; 0xba <Delay>
c2: 08 95 ret
000000c4 <En_Toggle>:
}
void En_Toggle(void)
{
En_H;
c4: 82 e0 ldi r24, 0x02 ; 2
c6: 0e 94 47 00 call 0x8e <sbbi>
DelaytE;
ca: 8a e0 ldi r24, 0x0A ; 10
cc: 90 e0 ldi r25, 0x00 ; 0
ce: 0e 94 5d 00 call 0xba <Delay>
En_L;
d2: 82 e0 ldi r24, 0x02 ; 2
d4: 0e 94 52 00 call 0xa4 <cbbi>
DelaytE;
d8: 8a e0 ldi r24, 0x0A ; 10
da: 90 e0 ldi r25, 0x00 ; 0
dc: 0e 94 5d 00 call 0xba <Delay>
e0: 08 95 ret
000000e2 <Wait_Until_Ready>:
}
void Wait_Until_Ready(void)
{
RW_R;
e2: 81 e0 ldi r24, 0x01 ; 1
e4: 0e 94 47 00 call 0x8e <sbbi>
RS_L;
e8: 80 e0 ldi r24, 0x00 ; 0
ea: 0e 94 52 00 call 0xa4 <cbbi>
LCDDDR=0X00;
ee: 1a ba out 0x1a, r1 ; 26
LCDPORT=0X00;
f0: 1b ba out 0x1b, r1 ; 27
En_H;
f2: 82 e0 ldi r24, 0x02 ; 2
f4: 0e 94 47 00 call 0x8e <sbbi>
DelaytE;
f8: 8a e0 ldi r24, 0x0A ; 10
fa: 90 e0 ldi r25, 0x00 ; 0
fc: 0e 94 5d 00 call 0xba <Delay>
loop_until_bit_is_clear(LCDPIN,7);
100: cf 99 sbic 0x19, 7 ; 25
102: fe cf rjmp .-4 ; 0x100 <Wait_Until_Ready+0x1e>
En_L;
104: 82 e0 ldi r24, 0x02 ; 2
106: 0e 94 52 00 call 0xa4 <cbbi>
10a: 08 95 ret
0000010c <Write_Command>:
}
void Write_Command(uint8_t Command)
{
10c: 1f 93 push r17
10e: 18 2f mov r17, r24
RW_W;
110: 81 e0 ldi r24, 0x01 ; 1
112: 0e 94 52 00 call 0xa4 <cbbi>
RS_L;
116: 80 e0 ldi r24, 0x00 ; 0
118: 0e 94 52 00 call 0xa4 <cbbi>
LCDDDR=0XFF;
11c: 8f ef ldi r24, 0xFF ; 255
11e: 8a bb out 0x1a, r24 ; 26
LCDPORT=Command;
120: 1b bb out 0x1b, r17 ; 27
En_Toggle();
122: 0e 94 62 00 call 0xc4 <En_Toggle>
Wait_Until_Ready();
126: 0e 94 71 00 call 0xe2 <Wait_Until_Ready>
12a: 1f 91 pop r17
12c: 08 95 ret
0000012e <Write_Data>:
}
void Write_Data(uint8_t Data)
{
12e: 1f 93 push r17
130: 18 2f mov r17, r24
RW_W;
132: 81 e0 ldi r24, 0x01 ; 1
134: 0e 94 52 00 call 0xa4 <cbbi>
RS_H;
138: 80 e0 ldi r24, 0x00 ; 0
13a: 0e 94 47 00 call 0x8e <sbbi>
LCDDDR=0XFF;
13e: 8f ef ldi r24, 0xFF ; 255
140: 8a bb out 0x1a, r24 ; 26
LCDPORT=Data;
142: 1b bb out 0x1b, r17 ; 27
En_Toggle();
144: 0e 94 62 00 call 0xc4 <En_Toggle>
Wait_Until_Ready();
148: 0e 94 71 00 call 0xe2 <Wait_Until_Ready>
14c: 1f 91 pop r17
14e: 08 95 ret
00000150 <Write_Position>:
}
void Write_Position(uint8_t row,uint8_t colum)
{
uint8_t p;
if(row==1)
150: 81 30 cpi r24, 0x01 ; 1
152: 19 f4 brne .+6 ; 0x15a <Write_Position+0xa>
{
p=0x80+colum-1;
Write_Command(p);
154: 86 2f mov r24, r22
156: 81 58 subi r24, 0x81 ; 129
158: 02 c0 rjmp .+4 ; 0x15e <Write_Position+0xe>
}
else
{
p=0xC0+colum-1;
Write_Command(p);
15a: 86 2f mov r24, r22
15c: 81 54 subi r24, 0x41 ; 65
15e: 0e 94 86 00 call 0x10c <Write_Command>
162: 08 95 ret
00000164 <Write_String>:
}
}
void Write_String(uint8_t *s)
{
164: cf 93 push r28
166: df 93 push r29
168: ec 01 movw r28, r24
for(;*s!='\0';s++)
16a: 88 81 ld r24, Y
16c: 88 23 and r24, r24
16e: 31 f0 breq .+12 ; 0x17c <Write_String+0x18>
Write_Data(*s);
170: 89 91 ld r24, Y+
172: 0e 94 97 00 call 0x12e <Write_Data>
176: 88 81 ld r24, Y
178: 88 23 and r24, r24
17a: d1 f7 brne .-12 ; 0x170 <Write_String+0xc>
17c: df 91 pop r29
17e: cf 91 pop r28
180: 08 95 ret
00000182 <Initialize_LCD>:
}
void Initialize_LCD(void)
{
DDRB=0xff;
182: 8f ef ldi r24, 0xFF ; 255
184: 87 bb out 0x17, r24 ; 23
Write_Command(0x38);
186: 88 e3 ldi r24, 0x38 ; 56
188: 0e 94 86 00 call 0x10c <Write_Command>
Write_Command(0x06);
18c: 86 e0 ldi r24, 0x06 ; 6
18e: 0e 94 86 00 call 0x10c <Write_Command>
Write_Command(0x0c);
192: 8c e0 ldi r24, 0x0C ; 12
194: 0e 94 86 00 call 0x10c <Write_Command>
Clear_Screen;
198: 81 e0 ldi r24, 0x01 ; 1
19a: 0e 94 86 00 call 0x10c <Write_Command>
19e: 08 95 ret
000001a0 <Write_Word>:
}
void Write_Word(uint8_t row,uint8_t colum ,uint8_t Data)
{
1a0: 1f 93 push r17
1a2: 14 2f mov r17, r20
Write_Position(row,colum);
1a4: 0e 94 a8 00 call 0x150 <Write_Position>
Write_Data(Data);
1a8: 81 2f mov r24, r17
1aa: 0e 94 97 00 call 0x12e <Write_Data>
1ae: 1f 91 pop r17
1b0: 08 95 ret
000001b2 <ssbi>:
void ssbi(uint8_t a)
{
PORTD|=1<<a; //PB口A位置位
1b2: 21 e0 ldi r18, 0x01 ; 1
1b4: 30 e0 ldi r19, 0x00 ; 0
1b6: 02 c0 rjmp .+4 ; 0x1bc <ssbi+0xa>
1b8: 22 0f add r18, r18
1ba: 33 1f adc r19, r19
1bc: 8a 95 dec r24
1be: e2 f7 brpl .-8 ; 0x1b8 <ssbi+0x6>
1c0: 82 b3 in r24, 0x12 ; 18
1c2: 82 2b or r24, r18
1c4: 82 bb out 0x12, r24 ; 18
1c6: 08 95 ret
000001c8 <ccbi>:
}
void ccbi(uint8_t a) //PB口A位復位
{
uint8_t b=0xfe;
1c8: 9e ef ldi r25, 0xFE ; 254
for(;a>0;a--)
1ca: 88 23 and r24, r24
1cc: 21 f0 breq .+8 ; 0x1d6 <ccbi+0xe>
{
b<<=1;
1ce: 99 0f add r25, r25
b|=0x01;
1d0: 91 60 ori r25, 0x01 ; 1
1d2: 81 50 subi r24, 0x01 ; 1
1d4: fa cf rjmp .-12 ; 0x1ca <ccbi+0x2>
}
PORTD&=b;
1d6: 82 b3 in r24, 0x12 ; 18
1d8: 89 23 and r24, r25
1da: 82 bb out 0x12, r24 ; 18
1dc: 08 95 ret
000001de <KB_Write>:
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -