📄 usart3_step_lcd.lst
字号:
usart3_step_lcd.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 00000010 00800100 00001340 000013d4 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 00001340 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 0000011b 00800110 00800110 000013e4 2**0
ALLOC
3 .noinit 00000000 0080022b 0080022b 000013e4 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 000013e4 2**0
CONTENTS
5 .debug_aranges 00000014 00000000 00000000 000013e4 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_pubnames 00000322 00000000 00000000 000013f8 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_info 0000088e 00000000 00000000 0000171a 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_abbrev 00000170 00000000 00000000 00001fa8 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_line 000009fe 00000000 00000000 00002118 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_str 0000033e 00000000 00000000 00002b16 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 1f 01 jmp 0x23e <__init>
4: 0c 94 2f 05 jmp 0xa5e <__vector_1>
8: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
c: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
10: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
14: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
18: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
1c: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
20: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
24: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
28: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
2c: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
30: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
34: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
38: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
3c: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
40: 0c 94 6b 02 jmp 0x4d6 <__vector_16>
44: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
48: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
4c: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
50: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
54: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
58: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
5c: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
60: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
64: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
68: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
6c: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
70: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
74: 0c 94 d2 03 jmp 0x7a4 <__vector_29>
78: 0c 94 3b 05 jmp 0xa76 <__vector_30>
7c: 0c 94 5e 05 jmp 0xabc <__vector_31>
80: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
84: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
88: 0c 94 3c 01 jmp 0x278 <__bad_interrupt>
0000008c <SECOND>:
8c: 0d 0a 49 6e 70 75 74 20 53 65 63 6f 6e 64 3a 00 ..Input Second:.
0000009c <MINUTE>:
9c: 0d 0a 49 6e 70 75 74 20 4d 69 6e 75 74 65 3a 00 ..Input Minute:.
000000ac <HOUR>:
ac: 0d 0a 49 6e 70 75 74 20 48 6f 75 72 3a 00 ..Input Hour:.
000000ba <SPEED>:
ba: 0d 0a 49 6e 70 75 74 20 79 6f 75 72 20 73 70 65 ..Input your spe
ca: 65 64 3a 00 ed:.
000000ce <M_Backward_JIANSU>:
ce: 0d 0a 42 61 63 6b 77 61 72 64 5f 44 6f 77 6e 73 ..Backward_Downs
de: 70 65 65 64 3a 45 4e 54 45 52 20 31 20 4f 52 20 peed:ENTER 1 OR
ee: 32 20 4f 52 20 33 0d 0a 00 2 OR 3...
000000f7 <M_Backward_JIASU>:
f7: 0d 0a 42 61 63 6b 77 61 72 64 5f 55 70 73 70 65 ..Backward_Upspe
107: 65 64 3a 45 4e 54 45 52 20 31 20 4f 52 20 32 20 ed:ENTER 1 OR 2
117: 4f 52 20 33 0d 0a 00 OR 3...
0000011e <M_Forward_JIANSU>:
11e: 0d 0a 46 6f 72 77 61 72 64 5f 44 6f 77 6e 73 70 ..Forward_Downsp
12e: 65 65 64 3a 45 4e 54 45 52 20 31 20 4f 52 20 32 eed:ENTER 1 OR 2
13e: 20 4f 52 20 33 0d 0a 00 OR 3...
00000146 <M_Forward_JIASU>:
146: 0d 0a 46 6f 72 77 61 72 64 5f 55 70 73 70 65 65 ..Forward_Upspee
156: 64 3a 45 4e 54 45 52 20 31 20 4f 52 20 32 20 4f d:ENTER 1 OR 2 O
166: 52 20 33 0d 0a 20 00 R 3.. .
0000016d <M_SELECT1>:
16d: 0d 0a 46 4f 52 57 41 52 44 28 31 29 20 20 4f 52 ..FORWARD(1) OR
17d: 20 42 41 43 4b 57 41 52 44 28 32 29 0d 0a 00 BACKWARD(2)...
0000018c <M_SELECT>:
18c: 0d 0a 55 50 53 50 45 45 44 28 31 29 20 20 4f 52 ..UPSPEED(1) OR
19c: 20 44 4f 57 4e 53 50 45 45 44 28 32 29 0d 0a 00 DOWNSPEED(2)...
000001ac <M_thank>:
1ac: 0d 0a 54 68 61 6e 6b 20 79 6f 75 21 0d 0a 20 00 ..Thank you!.. .
000001bc <M_Help>:
1bc: 0d 0a 46 3a 46 4f 52 57 41 52 44 20 20 42 3a 42 ..F:FORWARD B:B
1cc: 41 43 4b 57 41 52 44 20 20 20 53 3a 47 49 56 45 ACKWARD S:GIVE
1dc: 5f 53 50 45 45 44 20 20 20 20 54 3a 54 49 4d 45 _SPEED T:TIME
1ec: 20 20 20 51 3a 71 75 69 74 0d 0a 00 Q:quit...
000001f8 <logo>:
1f8: 0d 0a 55 53 41 52 54 20 43 6f 6e 74 72 6f 6c 20 ..USART Control
208: 53 74 65 70 5f 6d 6f 74 6f 72 0d 0a 0d 0a 3c 48 Step_motor....<H
218: 3e 20 48 65 6c 70 20 4d 65 73 73 61 67 65 73 0d > Help Messages.
228: 0a 00 ..
0000022a <prompt>:
22a: 55 53 41 52 54 5f 53 54 45 50 5f 4d 4f 54 4f 52 USART_STEP_MOTOR
23a: 20 3a 00 00 :..
0000023e <__init>:
23e: 11 24 eor r1, r1
240: 1f be out 0x3f, r1 ; 63
242: cf ef ldi r28, 0xFF ; 255
244: d0 e1 ldi r29, 0x10 ; 16
246: de bf out 0x3e, r29 ; 62
248: cd bf out 0x3d, r28 ; 61
0000024a <__do_copy_data>:
24a: 11 e0 ldi r17, 0x01 ; 1
24c: a0 e0 ldi r26, 0x00 ; 0
24e: b1 e0 ldi r27, 0x01 ; 1
250: e0 e4 ldi r30, 0x40 ; 64
252: f3 e1 ldi r31, 0x13 ; 19
254: 00 e0 ldi r16, 0x00 ; 0
256: 0b bf out 0x3b, r16 ; 59
258: 02 c0 rjmp .+4 ; 0x25e <.__do_copy_data_start>
0000025a <.__do_copy_data_loop>:
25a: 07 90 elpm r0, Z+
25c: 0d 92 st X+, r0
0000025e <.__do_copy_data_start>:
25e: a0 31 cpi r26, 0x10 ; 16
260: b1 07 cpc r27, r17
262: d9 f7 brne .-10 ; 0x25a <.__do_copy_data_loop>
00000264 <__do_clear_bss>:
264: 12 e0 ldi r17, 0x02 ; 2
266: a0 e1 ldi r26, 0x10 ; 16
268: b1 e0 ldi r27, 0x01 ; 1
26a: 01 c0 rjmp .+2 ; 0x26e <.do_clear_bss_start>
0000026c <.do_clear_bss_loop>:
26c: 1d 92 st X+, r1
0000026e <.do_clear_bss_start>:
26e: ab 32 cpi r26, 0x2B ; 43
270: b1 07 cpc r27, r17
272: e1 f7 brne .-8 ; 0x26c <.do_clear_bss_loop>
274: 0c 94 e0 05 jmp 0xbc0 <main>
00000278 <__bad_interrupt>:
278: 0c 94 00 00 jmp 0x0 <__vectors>
0000027c <serial_Initialize>:
serial_Initialize(BAUD_RATE);
}
void serial_Initialize(unsigned long int baud)
{
27c: 9b 01 movw r18, r22
27e: ac 01 movw r20, r24
unsigned short int ubrr1;
ubrr1=((SYSTEM_CLOCK/(16L*baud))-1);
280: 94 e0 ldi r25, 0x04 ; 4
282: 22 0f add r18, r18
284: 33 1f adc r19, r19
286: 44 1f adc r20, r20
288: 55 1f adc r21, r21
28a: 9a 95 dec r25
28c: d1 f7 brne .-12 ; 0x282 <serial_Initialize+0x6>
28e: 60 e0 ldi r22, 0x00 ; 0
290: 70 e0 ldi r23, 0x00 ; 0
292: 81 ee ldi r24, 0xE1 ; 225
294: 90 e0 ldi r25, 0x00 ; 0
296: 0e 94 7e 09 call 0x12fc <__udivmodsi4>
29a: 21 50 subi r18, 0x01 ; 1
29c: 30 40 sbci r19, 0x00 ; 0
UBRR1H=(unsigned char)(ubrr1>>8);
29e: 83 2f mov r24, r19
2a0: 99 27 eor r25, r25
2a2: 80 93 98 00 sts 0x0098, r24
UBRR1L=(unsigned char)ubrr1;
2a6: 20 93 99 00 sts 0x0099, r18
UCSR1A=0x20;//发送缓冲器准备好进行新的数据接收
2aa: 80 e2 ldi r24, 0x20 ; 32
2ac: 80 93 9b 00 sts 0x009B, r24
UCSR1B=((1<<RXCIE)|(1<<RXEN)|(1<<TXEN));//中断使能
2b0: 88 e9 ldi r24, 0x98 ; 152
2b2: 80 93 9a 00 sts 0x009A, r24
UCSR1C=DATA_8;
2b6: 86 e0 ldi r24, 0x06 ; 6
2b8: 80 93 9d 00 sts 0x009D, r24
UART_RxTail=0;
2bc: 10 92 94 01 sts 0x0194, r1
UART_RxHead=0;
2c0: 10 92 93 01 sts 0x0193, r1
UART_TxTail=0;
2c4: 10 92 16 02 sts 0x0216, r1
UART_TxHead=0;
2c8: 10 92 15 02 sts 0x0215, r1
2cc: 08 95 ret
000002ce <Initialize>:
2ce: 85 b7 in r24, 0x35 ; 53
2d0: 80 68 ori r24, 0x80 ; 128
2d2: 85 bf out 0x35, r24 ; 53
2d4: 81 e0 ldi r24, 0x01 ; 1
2d6: 89 bf out 0x39, r24 ; 57
2d8: 82 e0 ldi r24, 0x02 ; 2
2da: 80 93 6a 00 sts 0x006A, r24
2de: 78 94 sei
2e0: 60 e0 ldi r22, 0x00 ; 0
2e2: 72 ec ldi r23, 0xC2 ; 194
2e4: 81 e0 ldi r24, 0x01 ; 1
2e6: 90 e0 ldi r25, 0x00 ; 0
2e8: 0e 94 3e 01 call 0x27c <serial_Initialize>
2ec: 08 95 ret
000002ee <initialize_timer>:
}
void initialize_timer(void)
{TCNT0=0xf0;
2ee: 80 ef ldi r24, 0xF0 ; 240
2f0: 82 bf out 0x32, r24 ; 50
TCCR0=0x07;
2f2: 87 e0 ldi r24, 0x07 ; 7
2f4: 83 bf out 0x33, r24 ; 51
TIMSK=0x01;
2f6: 81 e0 ldi r24, 0x01 ; 1
2f8: 87 bf out 0x37, r24 ; 55
sei();
2fa: 78 94 sei
2fc: 08 95 ret
000002fe <delay>:
}
void delay(unsigned int d1,unsigned int d2)
{unsigned int i,j;
for(i=0;i<d1;i++)
2fe: 40 e0 ldi r20, 0x00 ; 0
300: 50 e0 ldi r21, 0x00 ; 0
302: 48 17 cp r20, r24
304: 59 07 cpc r21, r25
306: 68 f4 brcc .+26 ; 0x322 <delay+0x24>
{for(j=0;j<d2;j++);}
308: 20 e0 ldi r18, 0x00 ; 0
30a: 30 e0 ldi r19, 0x00 ; 0
30c: 02 c0 rjmp .+4 ; 0x312 <delay+0x14>
30e: 2f 5f subi r18, 0xFF ; 255
310: 3f 4f sbci r19, 0xFF ; 255
312: 26 17 cp r18, r22
314: 37 07 cpc r19, r23
316: d8 f3 brcs .-10 ; 0x30e <delay+0x10>
318: 4f 5f subi r20, 0xFF ; 255
31a: 5f 4f sbci r21, 0xFF ; 255
31c: 48 17 cp r20, r24
31e: 59 07 cpc r21, r25
320: 98 f3 brcs .-26 ; 0x308 <delay+0xa>
322: 08 95 ret
00000324 <lcd_data_wait>:
}
void initialize_text_lcd(void)
{lcd_con();
*lcd_data='0';
lcd_data_wait();
*lcd_data='0';
lcd_data_wait();
*lcd_data=':';
lcd_data_wait();
*lcd_data='0';
lcd_data_wait();
*lcd_data='0';
lcd_data_wait();
*lcd_data=':';
lcd_data_wait();
*lcd_data='0';
lcd_data_wait();
*lcd_data='0';
lcd_data_wait();
}
void lcd_con(void)
{lcd_control=TLCD_CTRL;
lcd_data=TLCD_DATA;
lcd_control_wait();
*lcd_control|=0x38;
lcd_control_wait();
*lcd_control|=0x02;
lcd_control_wait();
*lcd_control|=0x01;
lcd_control_wait();
*lcd_control|=0x06;
lcd_control_wait();
*lcd_control|=0x0e;
lcd_control_wait();
}
void lcd_control_wait(void)
{delay(1000,1000);
}
void lcd_data_wait(void)
{delay(1000,10);
324: 6a e0 ldi r22, 0x0A ; 10
326: 70 e0 ldi r23, 0x00 ; 0
328: 88 ee ldi r24, 0xE8 ; 232
32a: 93 e0 ldi r25, 0x03 ; 3
32c: 0e 94 7f 01 call 0x2fe <delay>
330: 08 95 ret
00000332 <lcd_control_wait>:
332: 68 ee ldi r22, 0xE8 ; 232
334: 73 e0 ldi r23, 0x03 ; 3
336: cb 01 movw r24, r22
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -