📄 usart.lis
字号:
.module usart.c
.area text(rom, con, rel)
0000 .dbfile E:\新建文件夹\ADDA_ICC\cfile\usart.c
0000 .dbfunc e put_char _put_char fV
0000 ; ch -> R16
.even
0000 _put_char::
0000 .dbline -1
0000 .dbline 4
0000 ; #define USART_C
0000 ; #include "includes.h"
0000 ; void put_char(unsigned char ch)
0000 ; {
0000 L2:
0000 .dbline 9
0000 ; /* if(ch == '\n')
0000 ; {
0000 ; usart_putchar('\r');
0000 ; } */
0000 ; while(!(UCSRA&(1<<UDRE)));
0000 L3:
0000 .dbline 9
0000 5D9B sbis 0xb,5
0002 FECF rjmp L2
0004 X0:
0004 .dbline 10
0004 ; UDR = ch;
0004 0CB9 out 0xc,R16
0006 .dbline -2
0006 L1:
0006 .dbline 0 ; func end
0006 0895 ret
0008 .dbsym r ch 16 c
0008 .dbend
0008 .dbfunc e put_string _put_string fV
0008 ; string -> R10,R11
.even
0008 _put_string::
0008 AA92 st -y,R10
000A BA92 st -y,R11
000C 5801 movw R10,R16
000E .dbline -1
000E .dbline 13
000E ; }
000E ; void put_string(unsigned char *string)
000E ; {
000E 04C0 xjmp L7
0010 L6:
0010 .dbline 15
0010 ; while(*string)
0010 ; {
0010 .dbline 16
0010 ; put_char(*string++);
0010 F501 movw R30,R10
0012 0191 ld R16,Z+
0014 5F01 movw R10,R30
0016 F4DF xcall _put_char
0018 .dbline 17
0018 ; }
0018 L7:
0018 .dbline 14
0018 F501 movw R30,R10
001A 2080 ldd R2,z+0
001C 2220 tst R2
001E C1F7 brne L6
0020 X1:
0020 .dbline -2
0020 L5:
0020 .dbline 0 ; func end
0020 B990 ld R11,y+
0022 A990 ld R10,y+
0024 0895 ret
0026 .dbsym r string 10 pc
0026 .dbend
0026 .dbfunc e InitSerial _InitSerial fV
.even
0026 _InitSerial::
0026 .dbline -1
0026 .dbline 20
0026 ; }
0026 ; void InitSerial(void) //串口初始化
0026 ; {
0026 .dbline 28
0026 ; // 晶振频率 : 4.0MHz
0026 ; // 通信参数: 8 Data, 1 Stop, No Parity
0026 ; // 波特率:
0026 ; // UBRRL= 0x0C 19200;
0026 ; // UBRRL= 0x19 9600;
0026 ; // UBRRL= 0x33 4800;
0026 ; // UBRRL= 0x67 2400
0026 ; UCSRB = (1<<RXEN)|(1<<TXEN)|(1<<RXCIE); //允许发送和接收
0026 88E9 ldi R24,152
0028 8AB9 out 0xa,R24
002A .dbline 29
002A ; UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); //8位数据位+1位停止位
002A 86E8 ldi R24,134
002C 80BD out 0x20,R24
002E .dbline 30
002E ; UBRRH=0x00;
002E 2224 clr R2
0030 20BC out 0x20,R2
0032 .dbline 31
0032 ; UBRRL=0x19;
0032 89E1 ldi R24,25
0034 89B9 out 0x9,R24
0036 .dbline -2
0036 L9:
0036 .dbline 0 ; func end
0036 0895 ret
0038 .dbend
0038 ; //sei();
0038 ;
0038 ; }
0038 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -