?? uart_test.lis
字號:
.module uart_test.c
.area text(rom, con, rel)
0000 .dbfile F:\avrprojs\uart_test\uart_test.c
0000 .dbfunc e delay _delay fV
0000 ; i -> y+0
.even
0000 _delay::
0000 00D0 rcall push_gset2
0002 2497 sbiw R28,4
0004 .dbline -1
0004 .dbline 4
0004 ; #include <iom48v.h>
0004 ;
0004 ; void delay(void)
0004 ; {
0004 .dbline 6
0004 40E0 ldi R20,0
0006 50E0 ldi R21,0
0008 60E0 ldi R22,0
000A 70E0 ldi R23,0
000C FE01 movw R30,R28
000E 4083 std z+0,R20
0010 5183 std z+1,R21
0012 6283 std z+2,R22
0014 7383 std z+3,R23
0016 12C0 rjmp L5
0018 L2:
0018 .dbline 6
0018 L3:
0018 .dbline 6
0018 41E0 ldi R20,1
001A 50E0 ldi R21,0
001C 60E0 ldi R22,0
001E 70E0 ldi R23,0
0020 FE01 movw R30,R28
0022 2080 ldd R2,z+0
0024 3180 ldd R3,z+1
0026 4280 ldd R4,z+2
0028 5380 ldd R5,z+3
002A 240E add R2,R20
002C 351E adc R3,R21
002E 461E adc R4,R22
0030 571E adc R5,R23
0032 FE01 movw R30,R28
0034 2082 std z+0,R2
0036 3182 std z+1,R3
0038 4282 std z+2,R4
003A 5382 std z+3,R5
003C L5:
003C .dbline 6
003C ; unsigned long i;
003C ; for(i=0;i<11142;i++);
003C 46E8 ldi R20,134
003E 5BE2 ldi R21,43
0040 60E0 ldi R22,0
0042 70E0 ldi R23,0
0044 FE01 movw R30,R28
0046 2080 ldd R2,z+0
0048 3180 ldd R3,z+1
004A 4280 ldd R4,z+2
004C 5380 ldd R5,z+3
004E 2416 cp R2,R20
0050 3506 cpc R3,R21
0052 4606 cpc R4,R22
0054 5706 cpc R5,R23
0056 00F3 brlo L2
0058 .dbline -2
0058 L1:
0058 2496 adiw R28,4
005A 00D0 rcall pop_gset2
005C .dbline 0 ; func end
005C 0895 ret
005E .dbsym l i 0 l
005E .dbend
005E .dbfunc e uart0_init _uart0_init fV
.even
005E _uart0_init::
005E .dbline -1
005E .dbline 10
005E ; }
005E ;
005E ; void uart0_init(void)
005E ; {
005E .dbline 12
005E ;
005E ; UCSR0B = 0x00; //disable while setting baud rate
005E 2224 clr R2
0060 2092C100 sts 193,R2
0064 .dbline 13
0064 ; UCSR0A = 0x00;
0064 2092C000 sts 192,R2
0068 .dbline 14
0068 ; UCSR0C = 0x0E;
0068 8EE0 ldi R24,14
006A 8093C200 sts 194,R24
006E .dbline 15
006E ; UBRR0L = 0x6; //set baud rate lo
006E 86E0 ldi R24,6
0070 8093C400 sts 196,R24
0074 .dbline 16
0074 ; UBRR0H = 0x00; //set baud rate hi
0074 2092C500 sts 197,R2
0078 .dbline 17
0078 ; UCSR0B = 0x08;
0078 88E0 ldi R24,8
007A 8093C100 sts 193,R24
007E .dbline -2
007E L6:
007E .dbline 0 ; func end
007E 0895 ret
0080 .dbend
0080 .dbfunc e sendchar _sendchar fV
0080 ; c -> R16
.even
0080 _sendchar::
0080 .dbline -1
0080 .dbline 25
0080 ; // UBRR0 =0x33;
0080 ; // UCSR0B=0x08;
0080 ; // UCSR0C=0x0e;
0080 ; // UBRR0L=0x6;
0080 ; }
0080 ;
0080 ; void sendchar(unsigned char c)
0080 ; {
0080 .dbline 27
0080 ; // while(!(UCSR0A&0x40));
0080 ; UDR0=c;
0080 0093C600 sts 198,R16
0084 L8:
0084 .dbline 28
0084 L9:
0084 .dbline 28
0084 ; while(!(UCSR0A&0x40));
0084 2090C000 lds R2,192
0088 26FE sbrs R2,6
008A FCCF rjmp L8
008C .dbline -2
008C L7:
008C .dbline 0 ; func end
008C 0895 ret
008E .dbsym r c 16 c
008E .dbend
008E .dbfunc e main _main fI
008E ; i -> R20,R21
.even
008E _main::
008E .dbline -1
008E .dbline 32
008E ; }
008E ;
008E ; main()
008E ; {
008E .dbline 34
008E ; int i;
008E ; uart0_init();
008E E7DF rcall _uart0_init
0090 0DC0 rjmp L13
0092 L12:
0092 .dbline 36
0092 ; while(1)
0092 ; {
0092 .dbline 37
0092 ; delay();
0092 B6DF rcall _delay
0094 .dbline 39
0094 ;
0094 ; sendchar('0'+i);
0094 042F mov R16,R20
0096 005D subi R16,208 ; offset = 48
0098 1F4F sbci R17,255
009A F2DF rcall _sendchar
009C .dbline 40
009C ; i=i+1;
009C 4F5F subi R20,255 ; offset = 1
009E 5F4F sbci R21,255
00A0 .dbline 41
00A0 ; if(i>=10)
00A0 4A30 cpi R20,10
00A2 E0E0 ldi R30,0
00A4 5E07 cpc R21,R30
00A6 14F0 brlt L15
00A8 .dbline 42
00A8 ; i=0;
00A8 4427 clr R20
00AA 5527 clr R21
00AC L15:
00AC .dbline 43
00AC L13:
00AC .dbline 35
00AC F2CF rjmp L12
00AE X0:
00AE .dbline -2
00AE L11:
00AE .dbline 0 ; func end
00AE 0895 ret
00B0 .dbsym r i 20 I
00B0 .dbend
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -