?? uart.lss
字號:
uart.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000196 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000000 00800060 00000196 0000022a 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000004 00800060 00800060 0000022a 2**0
ALLOC
3 .noinit 00000000 00800064 00800064 0000022a 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 0000022a 2**0
CONTENTS
5 .stab 0000036c 00000000 00000000 0000022c 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 00000084 00000000 00000000 00000598 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_aranges 00000014 00000000 00000000 0000061c 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_pubnames 0000009d 00000000 00000000 00000630 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_info 00000190 00000000 00000000 000006cd 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_abbrev 000000ba 00000000 00000000 0000085d 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_line 000001e8 00000000 00000000 00000917 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_str 000000af 00000000 00000000 00000aff 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 2a 00 jmp 0x54 <__ctors_end>
4: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
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: 10 e0 ldi r17, 0x00 ; 0
62: a0 e6 ldi r26, 0x60 ; 96
64: b0 e0 ldi r27, 0x00 ; 0
66: e6 e9 ldi r30, 0x96 ; 150
68: f1 e0 ldi r31, 0x01 ; 1
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: a0 36 cpi r26, 0x60 ; 96
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: a0 e6 ldi r26, 0x60 ; 96
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: a4 36 cpi r26, 0x64 ; 100
82: b1 07 cpc r27, r17
84: e1 f7 brne .-8 ; 0x7e <.do_clear_bss_loop>
86: 0c 94 af 00 jmp 0x15e <main>
0000008a <__bad_interrupt>:
8a: 0c 94 00 00 jmp 0x0 <__vectors>
0000008e <delay>:
///////////////////////////////////
void delay(void)
{
unsigned int i,j;
for(i=0;i<40000;i++)
8e: 80 e0 ldi r24, 0x00 ; 0
90: 90 e0 ldi r25, 0x00 ; 0
92: 01 96 adiw r24, 0x01 ; 1
94: 2c e9 ldi r18, 0x9C ; 156
96: 80 34 cpi r24, 0x40 ; 64
98: 92 07 cpc r25, r18
9a: d8 f3 brcs .-10 ; 0x92 <delay+0x4>
9c: 08 95 ret
0000009e <port_Init>:
for(j=0;j<1;j++)
;
}
///////////////////////////////////
//端口初始化
void port_Init(void)
{
DDRA=0xff;//A口做輸出口
9e: 8f ef ldi r24, 0xFF ; 255
a0: 8a bb out 0x1a, r24 ; 26
PORTA=0x00;//
a2: 1b ba out 0x1b, r1 ; 27
DDRB=0xff; //B口做輸出口
a4: 87 bb out 0x17, r24 ; 23
PORTB=0X00;//
a6: 18 ba out 0x18, r1 ; 24
DDRC=0xff;//C口作輸出口
a8: 84 bb out 0x14, r24 ; 20
PORTC=0x00;//
aa: 15 ba out 0x15, r1 ; 21
DDRD=0xff;//D口作輸出口
ac: 81 bb out 0x11, r24 ; 17
PORTD=0x00;//
ae: 12 ba out 0x12, r1 ; 18
b0: 08 95 ret
000000b2 <Usart_Init>:
}
/////////////////////////////////////////////////////
//功能:串口初始化
void Usart_Init(void)//9600,8,1,
{
UCSRB = 0x00; //disable while setting baud rate
b2: 1a b8 out 0x0a, r1 ; 10
UCSRA = 0x00;
b4: 1b b8 out 0x0b, r1 ; 11
UCSRC = 0x86;
b6: 86 e8 ldi r24, 0x86 ; 134
b8: 80 bd out 0x20, r24 ; 32
UBRRL = 0x33; //set baud rate lo
ba: 83 e3 ldi r24, 0x33 ; 51
bc: 89 b9 out 0x09, r24 ; 9
UBRRH = 0x00; //set baud rate hi
be: 10 bc out 0x20, r1 ; 32
UCSRB = 0x18;
c0: 88 e1 ldi r24, 0x18 ; 24
c2: 8a b9 out 0x0a, r24 ; 10
c4: 08 95 ret
000000c6 <Usart_Tx>:
}
//字符輸出函數
void Usart_Tx(unsigned char data)
{
while (!(UCSRA&(1<<UDRE)));
c6: 5d 9b sbis 0x0b, 5 ; 11
c8: fe cf rjmp .-4 ; 0xc6 <Usart_Tx>
UDR=data;
ca: 8c b9 out 0x0c, r24 ; 12
cc: 08 95 ret
000000ce <Usart_Rx>:
}
//字符輸入函數
unsigned char Usart_Rx(void)
{
while(!(UCSRA& (1<<RXC)));
ce: 5f 9b sbis 0x0b, 7 ; 11
d0: fe cf rjmp .-4 ; 0xce <Usart_Rx>
return UDR;
d2: 8c b1 in r24, 0x0c ; 12
}
d4: 99 27 eor r25, r25
d6: 08 95 ret
000000d8 <data_class>:
///////////////////////////////////////////
void data_class(unsigned char ill_num)
{
d8: 1f 93 push r17
da: 18 2f mov r17, r24
Usart_Tx(0xff);//header
dc: 8f ef ldi r24, 0xFF ; 255
de: 0e 94 63 00 call 0xc6 <Usart_Tx>
Usart_Tx(0x07);//year
e2: 87 e0 ldi r24, 0x07 ; 7
e4: 0e 94 63 00 call 0xc6 <Usart_Tx>
Usart_Tx(0x05);//month
e8: 85 e0 ldi r24, 0x05 ; 5
ea: 0e 94 63 00 call 0xc6 <Usart_Tx>
Usart_Tx(0x01);//day
ee: 81 e0 ldi r24, 0x01 ; 1
f0: 0e 94 63 00 call 0xc6 <Usart_Tx>
Usart_Tx(ill_num);//ill_number
f4: 81 2f mov r24, r17
f6: 0e 94 63 00 call 0xc6 <Usart_Tx>
Usart_Tx(0x01);//project_name
fa: 81 e0 ldi r24, 0x01 ; 1
fc: 0e 94 63 00 call 0xc6 <Usart_Tx>
Usart_Tx(0x11);//8 正常范圍
100: 81 e1 ldi r24, 0x11 ; 17
102: 0e 94 63 00 call 0xc6 <Usart_Tx>
Usart_Tx(0x22);
106: 82 e2 ldi r24, 0x22 ; 34
108: 0e 94 63 00 call 0xc6 <Usart_Tx>
Usart_Tx(0x33);
10c: 83 e3 ldi r24, 0x33 ; 51
10e: 0e 94 63 00 call 0xc6 <Usart_Tx>
Usart_Tx(0x44);
112: 84 e4 ldi r24, 0x44 ; 68
114: 0e 94 63 00 call 0xc6 <Usart_Tx>
Usart_Tx(0x55);
118: 85 e5 ldi r24, 0x55 ; 85
11a: 0e 94 63 00 call 0xc6 <Usart_Tx>
Usart_Tx(0x66);
11e: 86 e6 ldi r24, 0x66 ; 102
120: 0e 94 63 00 call 0xc6 <Usart_Tx>
Usart_Tx(0x77);
124: 87 e7 ldi r24, 0x77 ; 119
126: 0e 94 63 00 call 0xc6 <Usart_Tx>
Usart_Tx(0x88);
12a: 88 e8 ldi r24, 0x88 ; 136
12c: 0e 94 63 00 call 0xc6 <Usart_Tx>
Usart_Tx(0x11);//4濃度
130: 81 e1 ldi r24, 0x11 ; 17
132: 0e 94 63 00 call 0xc6 <Usart_Tx>
Usart_Tx(0x22);
136: 82 e2 ldi r24, 0x22 ; 34
138: 0e 94 63 00 call 0xc6 <Usart_Tx>
Usart_Tx(0x33);
13c: 83 e3 ldi r24, 0x33 ; 51
13e: 0e 94 63 00 call 0xc6 <Usart_Tx>
Usart_Tx(0x44);
142: 84 e4 ldi r24, 0x44 ; 68
144: 0e 94 63 00 call 0xc6 <Usart_Tx>
Usart_Tx(0x01);//單位
148: 81 e0 ldi r24, 0x01 ; 1
14a: 0e 94 63 00 call 0xc6 <Usart_Tx>
14e: 1f 91 pop r17
150: 08 95 ret
00000152 <init_devices>:
}
///////////////////////////////////////////
void init_devices(void)
{
//CLI(); //禁止所有中斷
MCUCR = 0x00;
152: 15 be out 0x35, r1 ; 53
port_Init();
154: 0e 94 4f 00 call 0x9e <port_Init>
Usart_Init();
158: 0e 94 59 00 call 0xb2 <Usart_Init>
15c: 08 95 ret
0000015e <main>:
//SEI();//開全局中斷
}
//主函數
int main(void)
{
15e: cf e5 ldi r28, 0x5F ; 95
160: d4 e0 ldi r29, 0x04 ; 4
162: de bf out 0x3e, r29 ; 62
164: cd bf out 0x3d, r28 ; 61
OSCCAL=0xB8;
166: 88 eb ldi r24, 0xB8 ; 184
168: 81 bf out 0x31, r24 ; 49
init_devices();
16a: 0e 94 a9 00 call 0x152 <init_devices>
//data_class(ill_num);
data_class(ill_num);
16e: 80 91 60 00 lds r24, 0x0060
172: 0e 94 6c 00 call 0xd8 <data_class>
while(1)
{
/*
do
{
NOP();
}
while(temp==1);
NOP();*/
temp=Usart_Rx();
176: 0e 94 67 00 call 0xce <Usart_Rx>
17a: 80 93 62 00 sts 0x0062, r24
if(temp!=0)
17e: 88 23 and r24, r24
180: d1 f3 breq .-12 ; 0x176 <main+0x18>
if(temp==0xFF)
182: 8f 3f cpi r24, 0xFF ; 255
184: a1 f3 breq .-24 ; 0x16e <main+0x10>
{
data_class(ill_num);
}
else if(temp==0x55)
186: 85 35 cpi r24, 0x55 ; 85
188: b1 f7 brne .-20 ; 0x176 <main+0x18>
{
ill_num++;
18a: 80 91 60 00 lds r24, 0x0060
18e: 8f 5f subi r24, 0xFF ; 255
190: 80 93 60 00 sts 0x0060, r24
194: ee cf rjmp .-36 ; 0x172 <main+0x14>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -