📄 lcd1602.lss
字号:
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 + -