📄 main.lis
字号:
.module main.c
.area data(ram, con, rel)
0000 _data::
0000 .blkb 2
.area idata
0000 0000 .byte 0,0
.area data(ram, con, rel)
0002 .blkb 2
.area idata
0002 0000 .byte 0,0
.area data(ram, con, rel)
0004 .dbfile D:\dai\AVR_USART/main.h
0004 .dbsym e data _data A[4:4]c
0004 _CNT::
0004 .blkb 1
.area idata
0004 00 .byte 0
.area data(ram, con, rel)
0005 .dbfile D:\dai\AVR_USART/main.h
0005 .dbsym e CNT _CNT c
0005 _RsBytes::
0005 .blkb 2
.area idata
0005 0000 .word 0
.area data(ram, con, rel)
0007 .dbfile D:\dai\AVR_USART/main.h
0007 .dbfile D:\dai\AVR_USART\main.c
0007 .dbsym e RsBytes _RsBytes I
0007 _flag::
0007 .blkb 1
.area idata
0007 00 .byte 0
.area data(ram, con, rel)
0008 .dbfile D:\dai\AVR_USART\main.c
0008 .dbsym e flag _flag c
.area text(rom, con, rel)
0000 .dbfile D:\dai\AVR_USART\main.c
0000 .dbfunc e main _main fV
0000 ; msg -> R20,R21
.even
0000 _main::
0000 2297 sbiw R28,2
0002 .dbline -1
0002 .dbline 15
0002 ; #define MAIN_C
0002 ; #include "includes.h"
0002 ; /***************************/
0002 ; /*串口通信*/
0002 ; /*晶振为4MHz*/
0002 ; /*波特率为9600bps*/
0002 ; /*发送采用查询方式,接收采用中断方式*/
0002 ; /*当收到的字符达到所定义的长度时,则在LCD上显示收到的字符*/
0002 ; /***************************/
0002 ; #define BufSize 10
0002 ; unsigned char RsBuf[BufSize]; //定义接收缓冲器
0002 ; int RsBytes = 0;
0002 ; unsigned char flag = 0;
0002 ; void main(void)
0002 ; {
0002 .dbline 16
0002 ; unsigned char *msg = "Usart Test!\n";
0002 40E0 ldi R20,<L2
0004 50E0 ldi R21,>L2
0006 .dbline 17
0006 ; SREG |= (1<<7); //使能全局中断
0006 7894 bset 7
0008 .dbline 18
0008 ; UsartInit();
0008 0E940000 xcall _UsartInit
000C .dbline 19
000C ; Init_LCD();
000C 0E940000 xcall _Init_LCD
0010 .dbline 20
0010 ; SendNbyte(msg,12);
0010 2CE0 ldi R18,12
0012 8A01 movw R16,R20
0014 0E940000 xcall _SendNbyte
0018 .dbline 21
0018 ; PutStr("Test Ok\n");
0018 00E0 ldi R16,<L3
001A 10E0 ldi R17,>L3
001C 0E940000 xcall _PutStr
0020 .dbline 22
0020 ; LCD_DisplayString(1,1,"Usart Test!");
0020 80E0 ldi R24,<L4
0022 90E0 ldi R25,>L4
0024 9983 std y+1,R25
0026 8883 std y+0,R24
0028 21E0 ldi R18,1
002A 01E0 ldi R16,1
002C 0E940000 xcall _LCD_DisplayString
0030 .dbline 23
0030 ; delay_nms(2000);
0030 00ED ldi R16,2000
0032 17E0 ldi R17,7
0034 0E940000 xcall _delay_nms
0038 .dbline 24
0038 ; LCD_Clear();
0038 0E940000 xcall _LCD_Clear
003C .dbline 25
003C ; LCD_DisplayString(1,1,"Recive is :");
003C 80E0 ldi R24,<L5
003E 90E0 ldi R25,>L5
0040 9983 std y+1,R25
0042 8883 std y+0,R24
0044 21E0 ldi R18,1
0046 01E0 ldi R16,1
0048 0E940000 xcall _LCD_DisplayString
004C 1BC0 xjmp L7
004E L6:
004E .dbline 27
004E ; while(1)
004E ; {PORTA =UDR-0x30 ;
004E .dbline 27
004E 8CB1 in R24,0xc
0050 8053 subi R24,48
0052 8BBB out 0x1b,R24
0054 .dbline 28
0054 ; DDRA = 0xff;
0054 8FEF ldi R24,255
0056 8ABB out 0x1a,R24
0058 .dbline 29
0058 ; if(flag)
0058 20900700 lds R2,_flag
005C 2220 tst R2
005E 91F0 breq L9
0060 .dbline 30
0060 ; {
0060 .dbline 31
0060 ; PutStr(RsBuf);
0060 00E0 ldi R16,<_RsBuf
0062 10E0 ldi R17,>_RsBuf
0064 0E940000 xcall _PutStr
0068 .dbline 33
0068 ;
0068 ; LCD_DisplayString(2,1,RsBuf);
0068 80E0 ldi R24,<_RsBuf
006A 90E0 ldi R25,>_RsBuf
006C 9983 std y+1,R25
006E 8883 std y+0,R24
0070 21E0 ldi R18,1
0072 02E0 ldi R16,2
0074 0E940000 xcall _LCD_DisplayString
0078 .dbline 34
0078 ; PutChar('\n');
0078 0AE0 ldi R16,10
007A 0E940000 xcall _PutChar
007E .dbline 35
007E ; flag = 0;
007E 2224 clr R2
0080 20920700 sts _flag,R2
0084 .dbline 36
0084 ; }
0084 L9:
0084 .dbline 37
0084 L7:
0084 .dbline 26
0084 E4CF xjmp L6
0086 X0:
0086 .dbline -2
0086 L1:
0086 2296 adiw R28,2
0088 .dbline 0 ; func end
0088 0895 ret
008A .dbsym r msg 20 pc
008A .dbend
.area vector(rom, abs)
.org 44
002C 0C944500 jmp _uart0_rx_isr
.area text(rom, con, rel)
008A .dbfile D:\dai\AVR_USART\main.c
008A .dbfunc e uart0_rx_isr _uart0_rx_isr fV
.even
008A _uart0_rx_isr::
008A 2A92 st -y,R2
008C 3A92 st -y,R3
008E 8A93 st -y,R24
0090 9A93 st -y,R25
0092 EA93 st -y,R30
0094 FA93 st -y,R31
0096 2FB6 in R2,0x3f
0098 2A92 st -y,R2
009A .dbline -1
009A .dbline 46
009A .dbline 48
009A 80E0 ldi R24,<_RsBuf
009C 90E0 ldi R25,>_RsBuf
009E E0910500 lds R30,_RsBytes
00A2 F0910600 lds R31,_RsBytes+1
00A6 E80F add R30,R24
00A8 F91F adc R31,R25
00AA 2CB0 in R2,0xc
00AC 2082 std z+0,R2
00AE .dbline 49
00AE 80910500 lds R24,_RsBytes
00B2 90910600 lds R25,_RsBytes+1
00B6 0196 adiw R24,1
00B8 90930600 sts _RsBytes+1,R25
00BC 80930500 sts _RsBytes,R24
00C0 .dbline 51
00C0 8A30 cpi R24,10
00C2 E0E0 ldi R30,0
00C4 9E07 cpc R25,R30
00C6 4CF0 brlt L12
00C8 .dbline 52
00C8 .dbline 53
00C8 81E0 ldi R24,1
00CA 80930700 sts _flag,R24
00CE .dbline 54
00CE 2224 clr R2
00D0 3324 clr R3
00D2 30920600 sts _RsBytes+1,R3
00D6 20920500 sts _RsBytes,R2
00DA .dbline 55
00DA L12:
00DA .dbline -2
00DA L11:
00DA 2990 ld R2,y+
00DC 2FBE out 0x3f,R2
00DE F991 ld R31,y+
00E0 E991 ld R30,y+
00E2 9991 ld R25,y+
00E4 8991 ld R24,y+
00E6 3990 ld R3,y+
00E8 2990 ld R2,y+
00EA .dbline 0 ; func end
00EA 1895 reti
00EC .dbend
.area bss(ram, con, rel)
0000 .dbfile D:\dai\AVR_USART\main.c
0000 _RsBuf::
0000 .blkb 10
000A .dbsym e RsBuf _RsBuf A[10:10]c
000A _KeyDown::
000A .blkb 1
000B .dbfile D:\dai\AVR_USART/main.h
000B .dbsym e KeyDown _KeyDown c
000B _KeyUp::
000B .blkb 1
000C .dbsym e KeyUp _KeyUp c
.area data(ram, con, rel)
0008 .dbfile D:\dai\AVR_USART/main.h
0008 L5:
0008 .blkb 12
.area idata
0008 526563697665206973203A00 .byte 'R,'e,'c,'i,'v,'e,32,'i,'s,32,58,0
.area data(ram, con, rel)
0014 .dbfile D:\dai\AVR_USART/main.h
0014 L4:
0014 .blkb 12
.area idata
0014 557361727420546573742100 .byte 'U,'s,'a,'r,'t,32,'T,'e,'s,'t,33,0
.area data(ram, con, rel)
0020 .dbfile D:\dai\AVR_USART/main.h
0020 L3:
0020 .blkb 9
.area idata
0020 54657374204F6B0A00 .byte 'T,'e,'s,'t,32,'O,'k,10,0
.area data(ram, con, rel)
0029 .dbfile D:\dai\AVR_USART/main.h
0029 L2:
0029 .blkb 13
.area idata
0029 55736172742054657374210A00 .byte 'U,'s,'a,'r,'t,32,'T,'e,'s,'t,33,10,0
.area data(ram, con, rel)
0036 .dbfile D:\dai\AVR_USART/main.h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -