⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usart.lis

📁 AVR单片机系统开发经典实例部分源程序
💻 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 + -