📄 usart.lis
字号:
.module Usart.c
.area text(rom, con, rel)
0000 .dbfile C:\AVR\M\1\Usart.c
0000 .dbfunc e Usart_Init _Usart_Init fV
0000 ; baud -> R16,R17
.even
0000 _Usart_Init::
0000 .dbline -1
0000 .dbline 14
0000 ; #include "Usart.h"
0000 ;
0000 ; //定义fosc频率
0000 ; #define fosc 16000000
0000 ;
0000 ;
0000 ; //---------------------------------
0000 ; //
0000 ; // USART初始化函数
0000 ; // baud:波特率
0000 ; //
0000 ; //---------------------------------
0000 ; void Usart_Init(unsigned int baud)
0000 ; {
0000 .dbline 15
0000 ; UCSR1B = 0x00; //disable while setting baud rate
0000 2224 clr R2
0002 20929A00 sts 154,R2
0006 .dbline 16
0006 ; UCSR1A = 0x00;
0006 20929B00 sts 155,R2
000A .dbline 17
000A ; UCSR1C = BIT(UCSZ11) | 0x06;
000A 86E0 ldi R24,6
000C 80939D00 sts 157,R24
0010 .dbline 18
0010 ; UBRR1L = 0x2F; //set baud rate lo
0010 8FE2 ldi R24,47
0012 80939900 sts 153,R24
0016 .dbline 19
0016 ; UBRR1H = 0x00; //set baud rate hi
0016 20929800 sts 152,R2
001A .dbline 20
001A ; UCSR1B = 0x18;
001A 88E1 ldi R24,24
001C 80939A00 sts 154,R24
0020 .dbline -2
0020 L1:
0020 .dbline 0 ; func end
0020 0895 ret
0022 .dbsym r baud 16 i
0022 .dbend
0022 .dbfunc e Usart_Transmit _Usart_Transmit fV
0022 ; data -> R16
.even
0022 _Usart_Transmit::
0022 .dbline -1
0022 .dbline 31
0022 ; }
0022 ;
0022 ;
0022 ; //-----------------------------------
0022 ; //
0022 ; // USART发送函数
0022 ; // data:要发送的数据
0022 ; //
0022 ; //-----------------------------------
0022 ; void Usart_Transmit(unsigned char data)
0022 ; {
0022 L3:
0022 .dbline 32
0022 L4:
0022 .dbline 32
0022 ; while(!(UCSR1A&(1<<UDRE1)));
0022 20909B00 lds R2,155
0026 25FE sbrs R2,5
0028 FCCF rjmp L3
002A .dbline 33
002A ; UDR1=data;
002A 00939C00 sts 156,R16
002E .dbline -2
002E L2:
002E .dbline 0 ; func end
002E 0895 ret
0030 .dbsym r data 16 c
0030 .dbend
0030 .dbfunc e Usart_Receive _Usart_Receive fc
.even
0030 _Usart_Receive::
0030 .dbline -1
0030 .dbline 44
0030 ; }
0030 ;
0030 ;
0030 ; //-----------------------------------
0030 ; //
0030 ; // USART接收函数
0030 ; // UDR:返回的数据
0030 ; //
0030 ; //-----------------------------------
0030 ; unsigned char Usart_Receive(void)
0030 ; {
0030 L7:
0030 .dbline 45
0030 L8:
0030 .dbline 45
0030 ; while(!(UCSR1A&(1<<RXC1)));
0030 20909B00 lds R2,155
0034 27FE sbrs R2,7
0036 FCCF rjmp L7
0038 .dbline 46
0038 ; return UDR1;
0038 00919C00 lds R16,156
003C .dbline -2
003C L6:
003C .dbline 0 ; func end
003C 0895 ret
003E .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -