📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile E:\新建文件夹\usart_icc\cfile\main.c
.area data(ram, con, rel)
0000 .dbfile E:\新建文件夹\usart_icc\cfile\main.c
0000 _data::
0000 .blkb 2
.area idata
0000 0000 .byte 0,0
.area data(ram, con, rel)
0002 .dbfile E:\新建文件夹\usart_icc\cfile\main.c
0002 .blkb 2
.area idata
0002 0000 .byte 0,0
.area data(ram, con, rel)
0004 .dbfile E:\新建文件夹\usart_icc\cfile\main.c
0004 .dbfile E:\新建文件夹\usart_icc\includes\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 E:\新建文件夹\usart_icc\includes\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 E:\新建文件夹\usart_icc\includes\main.h
0007 .dbfile E:\新建文件夹\usart_icc\cfile\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 E:\新建文件夹\usart_icc\cfile\main.c
0008 .dbsym e flag _flag c
.area text(rom, con, rel)
0000 .dbfile E:\新建文件夹\usart_icc\cfile\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 1
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 16C0 xjmp L7
004E L6:
004E .dbline 27
004E ; while(1)
004E ; {
004E .dbline 28
004E ; if(flag)
004E 20900700 lds R2,_flag
0052 2220 tst R2
0054 91F0 breq L9
0056 X0:
0056 .dbline 29
0056 ; {
0056 .dbline 30
0056 ; PutStr(RsBuf);
0056 00E0 ldi R16,<_RsBuf
0058 10E0 ldi R17,>_RsBuf
005A 0E940000 xcall _PutStr
005E .dbline 31
005E ; LCD_DisplayString(2,1,RsBuf);
005E 80E0 ldi R24,<_RsBuf
0060 90E0 ldi R25,>_RsBuf
0062 9983 std y+1,R25
0064 8883 std y+0,R24
0066 21E0 ldi R18,1
0068 02E0 ldi R16,2
006A 0E940000 xcall _LCD_DisplayString
006E .dbline 32
006E ; PutChar('\n');
006E 0AE0 ldi R16,10
0070 0E940000 xcall _PutChar
0074 .dbline 33
0074 ; flag = 0;
0074 2224 clr R2
0076 20920700 sts _flag,R2
007A .dbline 34
007A ; }
007A L9:
007A .dbline 35
007A ; }
007A L7:
007A .dbline 26
007A E9CF xjmp L6
007C X1:
007C .dbline -2
007C L1:
007C .dbline 0 ; func end
007C 2296 adiw R28,2
007E 0895 ret
0080 .dbsym r msg 20 pc
0080 .dbend
.area vector(rom, abs)
.org 44
002C 0C944000 jmp _uart0_rx_isr
.area text(rom, con, rel)
0080 .dbfile E:\新建文件夹\usart_icc\cfile\main.c
0080 .dbfunc e uart0_rx_isr _uart0_rx_isr fV
.even
0080 _uart0_rx_isr::
0080 2A92 st -y,R2
0082 3A92 st -y,R3
0084 8A93 st -y,R24
0086 9A93 st -y,R25
0088 EA93 st -y,R30
008A FA93 st -y,R31
008C 2FB6 in R2,0x3f
008E 2A92 st -y,R2
0090 .dbline -1
0090 .dbline 43
0090 ; }
0090 ;
0090 ; //接收中断子程序
0090 ; #pragma interrupt_handler uart0_rx_isr:iv_USART0_RXC
0090 ; void uart0_rx_isr(void)
0090 ; //#pragma vector = USART_RXC_vect
0090 ; //__interrupt void RXC_isr( void )
0090 ; {
0090 .dbline 44
0090 ; RsBuf[RsBytes] = UDR;
0090 80E0 ldi R24,<_RsBuf
0092 90E0 ldi R25,>_RsBuf
0094 E0910500 lds R30,_RsBytes
0098 F0910600 lds R31,_RsBytes+1
009C E80F add R30,R24
009E F91F adc R31,R25
00A0 2CB0 in R2,0xc
00A2 2082 std z+0,R2
00A4 .dbline 45
00A4 ; RsBytes ++;
00A4 80910500 lds R24,_RsBytes
00A8 90910600 lds R25,_RsBytes+1
00AC 0196 adiw R24,1
00AE 90930600 sts _RsBytes+1,R25
00B2 80930500 sts _RsBytes,R24
00B6 .dbline 47
00B6 ; //PutChar(RsBuf[RsBytes]); //回显
00B6 ; if(RsBytes > BufSize)
00B6 81E0 ldi R24,1
00B8 90E0 ldi R25,0
00BA 20900500 lds R2,_RsBytes
00BE 30900600 lds R3,_RsBytes+1
00C2 8215 cp R24,R2
00C4 9305 cpc R25,R3
00C6 44F4 brge L12
00C8 X2:
00C8 .dbline 48
00C8 ; {
00C8 .dbline 49
00C8 ; flag = 1;
00C8 80930700 sts _flag,R24
00CC .dbline 50
00CC ; RsBytes = 0;
00CC 2224 clr R2
00CE 3324 clr R3
00D0 30920600 sts _RsBytes+1,R3
00D4 20920500 sts _RsBytes,R2
00D8 .dbline 51
00D8 ; }
00D8 L12:
00D8 .dbline -2
00D8 L11:
00D8 .dbline 0 ; func end
00D8 2990 ld R2,y+
00DA 2FBE out 0x3f,R2
00DC F991 ld R31,y+
00DE E991 ld R30,y+
00E0 9991 ld R25,y+
00E2 8991 ld R24,y+
00E4 3990 ld R3,y+
00E6 2990 ld R2,y+
00E8 1895 reti
00EA .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\新建文件夹\usart_icc\cfile\main.c
0000 _RsBuf::
0000 .blkb 1
0001 .dbsym e RsBuf _RsBuf A[1:1]c
0001 _KeyDown::
0001 .blkb 1
0002 .dbfile E:\新建文件夹\usart_icc\includes\main.h
0002 .dbsym e KeyDown _KeyDown c
0002 _KeyUp::
0002 .blkb 1
0003 .dbsym e KeyUp _KeyUp c
.area data(ram, con, rel)
0008 .dbfile E:\新建文件夹\usart_icc\includes\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 E:\新建文件夹\usart_icc\includes\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 E:\新建文件夹\usart_icc\includes\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 E:\新建文件夹\usart_icc\includes\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 E:\新建文件夹\usart_icc\includes\main.h
0036 ; }
0036 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -