?? 1602test.lss
字號(hào):
1602test.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 000002c4 00000000 00000000 00000074 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000036 00800060 000002c4 00000338 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .stab 0000036c 00000000 00000000 00000370 2**2
CONTENTS, READONLY, DEBUGGING
3 .stabstr 00000084 00000000 00000000 000006dc 2**0
CONTENTS, READONLY, DEBUGGING
4 .debug_aranges 00000020 00000000 00000000 00000760 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_pubnames 000000b5 00000000 00000000 00000780 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_info 00000777 00000000 00000000 00000835 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_abbrev 00000179 00000000 00000000 00000fac 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_line 000003b0 00000000 00000000 00001125 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_frame 000000a0 00000000 00000000 000014d5 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_str 0000014f 00000000 00000000 00001575 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_loc 00000273 00000000 00000000 000016c4 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: 10 e0 ldi r17, 0x00 ; 0
62: a0 e6 ldi r26, 0x60 ; 96
64: b0 e0 ldi r27, 0x00 ; 0
66: e4 ec ldi r30, 0xC4 ; 196
68: f2 e0 ldi r31, 0x02 ; 2
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: a6 39 cpi r26, 0x96 ; 150
72: b1 07 cpc r27, r17
74: d9 f7 brne .-10 ; 0x6c <.do_copy_data_loop>
00000076 <__do_clear_bss>:
76: 10 e0 ldi r17, 0x00 ; 0
78: a6 e9 ldi r26, 0x96 ; 150
7a: b0 e0 ldi r27, 0x00 ; 0
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: a6 39 cpi r26, 0x96 ; 150
82: b1 07 cpc r27, r17
84: e1 f7 brne .-8 ; 0x7e <.do_clear_bss_loop>
86: 0c 94 24 01 jmp 0x248 ; 0x248 <main>
0000008a <__bad_interrupt>:
8a: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
0000008e <LCD_write_en>:
1、是寫“命令”還是“數(shù)據(jù)”要看 LCD_ write函數(shù)中的 cmd 參數(shù)
-----------------------------------------------------*/
void LCD_write_en (void)
{
8e: c7 9a sbi 0x18, 7 ; 24
*/
void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
90: 83 e0 ldi r24, 0x03 ; 3
92: 90 e0 ldi r25, 0x00 ; 0
94: 01 97 sbiw r24, 0x01 ; 1
96: f1 f7 brne .-4 ; 0x94 <LCD_write_en+0x6>
void LCD_write_en (void)
{
LCD_EN_PORT |=LCD_EN_H;
wait_us(15);
LCD_EN_PORT &=LCD_EN_L;
98: c7 98 cbi 0x18, 7 ; 24
9a: 08 95 ret
0000009c <LCD_waite>:
}
/*---------------------------------------------------
void LCD_write (uint8_t cmd ,uint8_t data);
說明:向LCD寫
1、 cmd<>0 寫命令 cmd為指令,data=0
2、 cmd=0 寫數(shù)據(jù) data 為數(shù)據(jù)
-----------------------------------------------------*/
void LCD_write(uint8_t cmd ,uint8_t data)
{
uint8_t cmd_temp,data_temp;
cmd_temp = cmd;
data_temp = data;
LCD_waite();
LCD_WR_PORT &=LCD_WR_L;
LCD_DATA_PORT &= 0X0f;
if(cmd==0)
{
LCD_RS_PORT |= LCD_RS_H; //RS=1
LCD_DATA_PORT |= data_temp&0xf0; //送數(shù)據(jù)的高 4bit
}
else
{
LCD_RS_PORT &= LCD_RS_L; //RS=0
LCD_DATA_PORT |= cmd_temp&0xf0; //送命令的高4bit
};
LCD_write_en();
LCD_DATA_PORT &= 0X0f;
cmd_temp=cmd_temp << 4; //send low 4bit
data_temp=data_temp << 4;
if (cmd==0)
LCD_DATA_PORT |= data_temp&0xf0;
else
LCD_DATA_PORT |= cmd_temp&0xf0;
LCD_write_en();
LCD_WR_PORT |= LCD_WR_H;
LCD_RS_PORT &= LCD_RS_L;
}
/*----------------------------------------------------------
void LCD_waite (void)
說明:等待LCD不忙
------------------------------------------------------------*/
void LCD_waite (void)
{
9c: 8f 98 cbi 0x11, 7 ; 17
LCD_DATA_DDR &= ~0x80; //PA7 I/O口方向設(shè)置為輸入
LCD_WR_PORT |= LCD_WR_H; //RW=1
9e: c6 9a sbi 0x18, 6 ; 24
LCD_RS_PORT &= LCD_RS_L; //RS=0
a0: c5 98 cbi 0x18, 5 ; 24
LCD_EN_PORT |= LCD_EN_H; //EN=1
a2: c7 9a sbi 0x18, 7 ; 24
while (!( LCD_DATA_PIN&0x80 ) == 0); //RW=1,讀PD7,為0表示空閑;
a4: 87 99 sbic 0x10, 7 ; 16
a6: fe cf rjmp .-4 ; 0xa4 <LCD_waite+0x8>
LCD_EN_PORT &= LCD_EN_L; //EN=0
a8: c7 98 cbi 0x18, 7 ; 24
LCD_DATA_DDR |= 0xf0;
aa: 81 b3 in r24, 0x11 ; 17
ac: 80 6f ori r24, 0xF0 ; 240
ae: 81 bb out 0x11, r24 ; 17
b0: 08 95 ret
000000b2 <LCD_write>:
b2: 0f 93 push r16
b4: 1f 93 push r17
b6: 18 2f mov r17, r24
b8: 06 2f mov r16, r22
ba: 0e 94 4e 00 call 0x9c ; 0x9c <LCD_waite>
be: c6 98 cbi 0x18, 6 ; 24
c0: 82 b3 in r24, 0x12 ; 18
c2: 8f 70 andi r24, 0x0F ; 15
c4: 82 bb out 0x12, r24 ; 18
c6: 11 23 and r17, r17
c8: 81 f4 brne .+32 ; 0xea <LCD_write+0x38>
ca: c5 9a sbi 0x18, 5 ; 24
cc: 82 b3 in r24, 0x12 ; 18
ce: 90 2f mov r25, r16
d0: 90 7f andi r25, 0xF0 ; 240
d2: 89 2b or r24, r25
d4: 82 bb out 0x12, r24 ; 18
d6: 0e 94 47 00 call 0x8e ; 0x8e <LCD_write_en>
da: 82 b3 in r24, 0x12 ; 18
dc: 8f 70 andi r24, 0x0F ; 15
de: 82 bb out 0x12, r24 ; 18
e0: 82 b3 in r24, 0x12 ; 18
e2: 02 95 swap r16
e4: 00 7f andi r16, 0xF0 ; 240
e6: 80 2b or r24, r16
e8: 0f c0 rjmp .+30 ; 0x108 <LCD_write+0x56>
ea: c5 98 cbi 0x18, 5 ; 24
ec: 82 b3 in r24, 0x12 ; 18
ee: 91 2f mov r25, r17
f0: 90 7f andi r25, 0xF0 ; 240
f2: 89 2b or r24, r25
f4: 82 bb out 0x12, r24 ; 18
f6: 0e 94 47 00 call 0x8e ; 0x8e <LCD_write_en>
fa: 82 b3 in r24, 0x12 ; 18
fc: 8f 70 andi r24, 0x0F ; 15
fe: 82 bb out 0x12, r24 ; 18
100: 82 b3 in r24, 0x12 ; 18
102: 12 95 swap r17
104: 10 7f andi r17, 0xF0 ; 240
106: 81 2b or r24, r17
108: 82 bb out 0x12, r24 ; 18
10a: 0e 94 47 00 call 0x8e ; 0x8e <LCD_write_en>
10e: c6 9a sbi 0x18, 6 ; 24
110: c5 98 cbi 0x18, 5 ; 24
112: 1f 91 pop r17
114: 0f 91 pop r16
116: 08 95 ret
00000118 <LCD_init>:
}
/*-------------------------------------------
void LCD_init(void)
說明:LCD初始化設(shè)置
---------------------------------------------*/
void LCD_init (void)
{
118: 0f 93 push r16
11a: 1f 93 push r17
*/
void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
11c: 84 ed ldi r24, 0xD4 ; 212
11e: 90 e3 ldi r25, 0x30 ; 48
120: 01 97 sbiw r24, 0x01 ; 1
122: f1 f7 brne .-4 ; 0x120 <LCD_init+0x8>
void LCD_init (void)
{
_delay_ms(50);
LCD_write(0x30,0);
124: 60 e0 ldi r22, 0x00 ; 0
126: 80 e3 ldi r24, 0x30 ; 48
128: 0e 94 59 00 call 0xb2 ; 0xb2 <LCD_write>
*/
void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
12c: 8c ed ldi r24, 0xDC ; 220
12e: 95 e0 ldi r25, 0x05 ; 5
130: 01 97 sbiw r24, 0x01 ; 1
132: f1 f7 brne .-4 ; 0x130 <LCD_init+0x18>
_delay_ms(50);
LCD_write(0x30,0);
_delay_ms(6);
LCD_write(0x30,0);
134: 60 e0 ldi r22, 0x00 ; 0
136: 80 e3 ldi r24, 0x30 ; 48
138: 0e 94 59 00 call 0xb2 ; 0xb2 <LCD_write>
*/
void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
13c: 0a ef ldi r16, 0xFA ; 250
13e: 10 e0 ldi r17, 0x00 ; 0
140: c8 01 movw r24, r16
142: 01 97 sbiw r24, 0x01 ; 1
144: f1 f7 brne .-4 ; 0x142 <LCD_init+0x2a>
LCD_write(0x30,0);
_delay_ms(6);
LCD_write(0x30,0);
_delay_ms(1);
LCD_write(0x30,0);
146: 60 e0 ldi r22, 0x00 ; 0
148: 80 e3 ldi r24, 0x30 ; 48
14a: 0e 94 59 00 call 0xb2 ; 0xb2 <LCD_write>
*/
void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
14e: c8 01 movw r24, r16
150: 01 97 sbiw r24, 0x01 ; 1
152: f1 f7 brne .-4 ; 0x150 <LCD_init+0x38>
LCD_write(0x30,0);
_delay_ms(1);
LCD_write(0x30,0);
_delay_ms(1);
LCD_write(0x02,0);
154: 60 e0 ldi r22, 0x00 ; 0
156: 82 e0 ldi r24, 0x02 ; 2
158: 0e 94 59 00 call 0xb2 ; 0xb2 <LCD_write>
*/
void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
15c: c8 01 movw r24, r16
15e: 01 97 sbiw r24, 0x01 ; 1
160: f1 f7 brne .-4 ; 0x15e <LCD_init+0x46>
LCD_write(0x02,0);
_delay_ms(1);
LCD_write(0x28,0); //4bit Display
162: 60 e0 ldi r22, 0x00 ; 0
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -