📄 u2.lss
字号:
u2.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 000001ac 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000000 00800060 000001ac 00000240 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000000 00800060 000001ac 00000240 2**0
ALLOC
3 .noinit 00000000 00800060 00800060 00000240 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 00000240 2**0
CONTENTS
5 .debug_aranges 00000014 00000000 00000000 00000240 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_pubnames 0000007d 00000000 00000000 00000254 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_info 0000021b 00000000 00000000 000002d1 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_abbrev 000000e9 00000000 00000000 000004ec 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_line 00000254 00000000 00000000 000005d5 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_str 000000a9 00000000 00000000 00000829 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: ec ea ldi r30, 0xAC ; 172
3a: f1 e0 ldi r31, 0x01 ; 1
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: a0 36 cpi r26, 0x60 ; 96
44: b1 07 cpc r27, r17
46: d9 f7 brne .-10 ; 0x3e
00000048 <__do_clear_bss>:
48: 10 e0 ldi r17, 0x00 ; 0
4a: a0 e6 ldi r26, 0x60 ; 96
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: a0 36 cpi r26, 0x60 ; 96
54: b1 07 cpc r27, r17
56: e1 f7 brne .-8 ; 0x50
58: 78 c0 rjmp .+240 ; 0x14a
0000005a <__bad_interrupt>:
5a: d2 cf rjmp .-92 ; 0x0
0000005c <delay>:
void delay(int c)
{
int i,j;
for(i=0;i<c;i++)
5c: 40 e0 ldi r20, 0x00 ; 0
5e: 50 e0 ldi r21, 0x00 ; 0
60: 48 17 cp r20, r24
62: 59 07 cpc r21, r25
64: 4c f4 brge .+18 ; 0x78
66: 27 ee ldi r18, 0xE7 ; 231
68: 33 e0 ldi r19, 0x03 ; 3
for(j=0;j<1000;j++)
6a: 22 53 subi r18, 0x32 ; 50
6c: 30 40 sbci r19, 0x00 ; 0
6e: 37 ff sbrs r19, 7
70: fc cf rjmp .-8 ; 0x6a
72: 4f 5f subi r20, 0xFF ; 255
74: 5f 4f sbci r21, 0xFF ; 255
76: f4 cf rjmp .-24 ; 0x60
78: 08 95 ret
0000007a <rd_state>:
;
}
char rd_state() //读状态
{
char temp;
DDRB=0x00;
7a: 17 ba out 0x17, r1 ; 23
PORTD|=(1<<cd);
7c: 92 9a sbi 0x12, 2 ; 18
PORTD&=~(1<<rd);
7e: 91 98 cbi 0x12, 1 ; 18
temp=PINB;
80: 86 b3 in r24, 0x16 ; 22
PORTD|=(1<<rd);
82: 91 9a sbi 0x12, 1 ; 18
return(temp);
}
84: 99 27 eor r25, r25
86: 08 95 ret
00000088 <rd_enable>:
void rd_enable() //等待可读写
{
char temp;
temp=rd_state();
88: f8 df rcall .-16 ; 0x7a
while((temp&0x03)!=0x03)
temp=rd_state();
8a: 99 27 eor r25, r25
8c: 83 70 andi r24, 0x03 ; 3
8e: 90 70 andi r25, 0x00 ; 0
90: 03 97 sbiw r24, 0x03 ; 3
92: d1 f7 brne .-12 ; 0x88
94: 08 95 ret
00000096 <rd_auto>:
}
void rd_auto() //等待自动读写
{
char temp;
temp=rd_state();
96: f1 df rcall .-30 ; 0x7a
while((temp&0x04)!=0x04)
temp=rd_state();
98: 82 ff sbrs r24, 2
9a: fd cf rjmp .-6 ; 0x96
9c: 08 95 ret
0000009e <wr_auto>:
}
void wr_auto() //等待自动写
{
char temp;
temp=rd_state();
9e: ed df rcall .-38 ; 0x7a
while((temp&0x08)!=0x08)
temp=rd_state();
a0: 83 ff sbrs r24, 3
a2: fd cf rjmp .-6 ; 0x9e
a4: 08 95 ret
000000a6 <wr_data>:
}
/*写命令、写数据命令*********************
数据1、数据2、命令、参数个数*************
*****************************************/
void wr_data(char data1,char data2,char cmd,char num)
{
a6: ff 92 push r15
a8: 0f 93 push r16
aa: 1f 93 push r17
ac: cf 93 push r28
ae: 18 2f mov r17, r24
b0: 06 2f mov r16, r22
b2: f4 2e mov r15, r20
b4: c2 2f mov r28, r18
char temp;
temp=num;
if(temp==2)
b6: 22 30 cpi r18, 0x02 ; 2
b8: 39 f4 brne .+14 ; 0xc8
{
rd_enable();
ba: e6 df rcall .-52 ; 0x88
DDRB=0xff;
bc: 8f ef ldi r24, 0xFF ; 255
be: 87 bb out 0x17, r24 ; 23
PORTD&=~(1<<cd);
c0: 92 98 cbi 0x12, 2 ; 18
PORTB=data1;
c2: 18 bb out 0x18, r17 ; 24
PORTD&=~(1<<wr);
c4: 90 98 cbi 0x12, 0 ; 18
PORTD|=(1<<wr);
c6: 90 9a sbi 0x12, 0 ; 18
}
if(temp==2||temp==1)
c8: c1 50 subi r28, 0x01 ; 1
ca: c2 30 cpi r28, 0x02 ; 2
cc: 38 f4 brcc .+14 ; 0xdc
{
rd_enable();
ce: dc df rcall .-72 ; 0x88
DDRB=0xff;
d0: 8f ef ldi r24, 0xFF ; 255
d2: 87 bb out 0x17, r24 ; 23
PORTD&=~(1<<cd);
d4: 92 98 cbi 0x12, 2 ; 18
PORTB=data2;
d6: 08 bb out 0x18, r16 ; 24
PORTD&=~(1<<wr);
d8: 90 98 cbi 0x12, 0 ; 18
PORTD|=(1<<wr);
da: 90 9a sbi 0x12, 0 ; 18
}
rd_enable();
dc: d5 df rcall .-86 ; 0x88
PORTB=0xff;
de: 8f ef ldi r24, 0xFF ; 255
e0: 88 bb out 0x18, r24 ; 24
PORTD|=(1<<cd);
e2: 92 9a sbi 0x12, 2 ; 18
PORTB=cmd;
e4: f8 ba out 0x18, r15 ; 24
PORTD&=~(1<<wr);
e6: 90 98 cbi 0x12, 0 ; 18
PORTD|=(1<<wr);
e8: 90 9a sbi 0x12, 0 ; 18
ea: cf 91 pop r28
ec: 1f 91 pop r17
ee: 0f 91 pop r16
f0: ff 90 pop r15
f2: 08 95 ret
000000f4 <rd_data>:
}
char rd_data() //读数据
{
char temp;
rd_enable();
f4: c9 df rcall .-110 ; 0x88
PORTD&=~(1<<cd);
f6: 92 98 cbi 0x12, 2 ; 18
PORTD&=~(1<<rd);
f8: 91 98 cbi 0x12, 1 ; 18
temp=PINB;
fa: 86 b3 in r24, 0x16 ; 22
PORTD|=(1<<rd);
fc: 91 9a sbi 0x12, 1 ; 18
return(temp);
}
fe: 99 27 eor r25, r25
100: 08 95 ret
00000102 <lcd_init>:
void lcd_init()
{
wr_data(0x00,0x00,0x40,0x02); //设置文本显示首地址
102: 22 e0 ldi r18, 0x02 ; 2
104: 40 e4 ldi r20, 0x40 ; 64
106: 60 e0 ldi r22, 0x00 ; 0
108: 86 2f mov r24, r22
10a: cd df rcall .-102 ; 0xa6
wr_data(0x14,0x00,0x41,0x02); //设置文本显示宽度
10c: 22 e0 ldi r18, 0x02 ; 2
10e: 41 e4 ldi r20, 0x41 ; 65
110: 60 e0 ldi r22, 0x00 ; 0
112: 84 e1 ldi r24, 0x14 ; 20
114: c8 df rcall .-112 ; 0xa6
wr_data(0x40,0x01,0x42,0x02); //设置图形显示首地址
116: 22 e0 ldi r18, 0x02 ; 2
118: 42 e4 ldi r20, 0x42 ; 66
11a: 61 e0 ldi r22, 0x01 ; 1
11c: 80 e4 ldi r24, 0x40 ; 64
11e: c3 df rcall .-122 ; 0xa6
wr_data(0x20,0x00,0x43,0x02); //设置图形显示宽度
120: 22 e0 ldi r18, 0x02 ; 2
122: 43 e4 ldi r20, 0x43 ; 67
124: 60 e0 ldi r22, 0x00 ; 0
126: 80 e2 ldi r24, 0x20 ; 32
128: be df rcall .-132 ; 0xa6
wr_data(0x00,0x00,0xa7,0x00); //光标形状设置
12a: 20 e0 ldi r18, 0x00 ; 0
12c: 47 ea ldi r20, 0xA7 ; 167
12e: 62 2f mov r22, r18
130: 82 2f mov r24, r18
132: b9 df rcall .-142 ; 0xa6
wr_data(0x00,0x00,0x80,0x00); //显示方式设置,“或”
134: 20 e0 ldi r18, 0x00 ; 0
136: 40 e8 ldi r20, 0x80 ; 128
138: 62 2f mov r22, r18
13a: 82 2f mov r24, r18
13c: b4 df rcall .-152 ; 0xa6
wr_data(0x00,0x00,0x9c,0x00); //显示开关设置
13e: 20 e0 ldi r18, 0x00 ; 0
140: 4c e9 ldi r20, 0x9C ; 156
142: 62 2f mov r22, r18
144: 82 2f mov r24, r18
146: af df rcall .-162 ; 0xa6
148: 08 95 ret
0000014a <main>:
}
void main()
{
14a: cf e5 ldi r28, 0x5F ; 95
14c: d4 e0 ldi r29, 0x04 ; 4
14e: de bf out 0x3e, r29 ; 62
150: cd bf out 0x3d, r28 ; 61
char i,temp=0,row=0;
152: c0 e0 ldi r28, 0x00 ; 0
delay(50);
154: 82 e3 ldi r24, 0x32 ; 50
156: 90 e0 ldi r25, 0x00 ; 0
158: 81 df rcall .-254 ; 0x5c
DDRD=0x07;
15a: 87 e0 ldi r24, 0x07 ; 7
15c: 81 bb out 0x11, r24 ; 17
lcd_init();
15e: d1 df rcall .-94 ; 0x102
wr_data(0x00,0x00,0x24,0x02); //设置写地址
160: 22 e0 ldi r18, 0x02 ; 2
162: 44 e2 ldi r20, 0x24 ; 36
164: 6c 2f mov r22, r28
166: 8c 2f mov r24, r28
168: 9e df rcall .-196 ; 0xa6
wr_data(0x00,0x00,0xb0,0x00); //设置自动写方式
16a: 2c 2f mov r18, r28
16c: 40 eb ldi r20, 0xB0 ; 176
16e: 6c 2f mov r22, r28
170: 8c 2f mov r24, r28
172: 99 df rcall .-206 ; 0xa6
174: 1e e7 ldi r17, 0x7E ; 126
for(i=0;i<127;i++)
{
wr_auto();
176: 93 df rcall .-218 ; 0x9e
DDRB=0xff;
178: 8f ef ldi r24, 0xFF ; 255
17a: 87 bb out 0x17, r24 ; 23
PORTD&=~(1<<cd);
17c: 92 98 cbi 0x12, 2 ; 18
PORTB=temp;
17e: c8 bb out 0x18, r28 ; 24
PORTD&=~(1<<wr);
180: 90 98 cbi 0x12, 0 ; 18
PORTD|=(1<<wr);
182: 90 9a sbi 0x12, 0 ; 18
temp++;
184: cf 5f subi r28, 0xFF ; 255
186: 18 0f add r17, r24
188: 17 ff sbrs r17, 7
18a: f5 cf rjmp .-22 ; 0x176
// P1=temp;
}
wr_data(0x00,0x00,0xb2,0x00); //自动写结束
18c: 20 e0 ldi r18, 0x00 ; 0
18e: 42 eb ldi r20, 0xB2 ; 178
190: 62 2f mov r22, r18
192: 82 2f mov r24, r18
194: 88 df rcall .-240 ; 0xa6
wr_data(0x40,0x01,0x24,0x02); //设置写地址
196: 22 e0 ldi r18, 0x02 ; 2
198: 44 e2 ldi r20, 0x24 ; 36
19a: 61 e0 ldi r22, 0x01 ; 1
19c: 80 e4 ldi r24, 0x40 ; 64
19e: 83 df rcall .-250 ; 0xa6
wr_data(0x00,0xaa,0xc4,0x01); //写图像区
1a0: 21 e0 ldi r18, 0x01 ; 1
1a2: 44 ec ldi r20, 0xC4 ; 196
1a4: 6a ea ldi r22, 0xAA ; 170
1a6: 80 e0 ldi r24, 0x00 ; 0
1a8: 7e df rcall .-260 ; 0xa6
while(1)
1aa: ff cf rjmp .-2 ; 0x1aa
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -