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

📄 uart_back.lis

📁 ATmega128串口通信,在ICC AVR下编译成功
💻 LIS
字号:
                        .module UART_Back.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\AVR单~1\NewProject\串口通信\ATmega128\数据回发\UART_Back.c
 0000                   .dbfunc e UART_init _UART_init fV
                        .even
 0000           _UART_init::
 0000                   .dbline -1
 0000                   .dbline 13
 0000           ; /****************************************************
 0000           ; **晶振:内部7.3728MHz
 0000           ; **实现功能:将从PC机接受的字符返回PC机
 0000           ; **设置:波特率9600, 8 bit, 1 stop bit, 无校验
 0000           ; ****************************************************/
 0000           ; #include <iom128.h>
 0000           ; #include <macros.h>
 0000           ; 
 0000           ; #define uchar unsigned char 
 0000           ; #define uint  unsigned int
 0000           ; 
 0000           ; void UART_init(void)
 0000           ; {
 0000                   .dbline 14
 0000           ;       UCSR0A = 0x00;          /*倍速                                  */
 0000 2224              clr R2
 0002 2BB8              out 0xb,R2
 0004                   .dbline 15
 0004           ;       UCSR0B = 0x18;          /*允许接收和发送*/
 0004 88E1              ldi R24,24
 0006 8AB9              out 0xa,R24
 0008                   .dbline 16
 0008           ;       UCSR0C = 0x0E;          /*8位数据,1位停止位,无校验位                          */
 0008 8EE0              ldi R24,14
 000A 80939500          sts 149,R24
 000E                   .dbline 17
 000E           ;       UBRR0H = 0x00;
 000E 20929000          sts 144,R2
 0012                   .dbline 18
 0012           ;       UBRR0L = 0x47;          /*9600                                  */
 0012 87E4              ldi R24,71
 0014 89B9              out 0x9,R24
 0016                   .dbline -2
 0016           L1:
 0016                   .dbline 0 ; func end
 0016 0895              ret
 0018                   .dbend
 0018                   .dbfunc e UART_recive _UART_recive fc
                        .even
 0018           _UART_recive::
 0018                   .dbline -1
 0018                   .dbline 22
 0018           ; }
 0018           ; 
 0018           ; uchar UART_recive(void)
 0018           ; {
 0018           L3:
 0018                   .dbline 23
 0018           L4:
 0018                   .dbline 23
 0018           ;     while (!(UCSR0A&(1<<RXC0))); /* 等待接收数据*/
 0018 5F9B              sbis 0xb,7
 001A FECF              rjmp L3
 001C                   .dbline 24
 001C           ;     return UDR0;                 /* 获取并返回数据*/
 001C 0CB1              in R16,0xc
 001E                   .dbline -2
 001E           L2:
 001E                   .dbline 0 ; func end
 001E 0895              ret
 0020                   .dbend
 0020                   .dbfunc e UART_transmit _UART_transmit fV
 0020           ;           data -> R16
                        .even
 0020           _UART_transmit::
 0020                   .dbline -1
 0020                   .dbline 28
 0020           ; }
 0020           ; 
 0020           ; void UART_transmit(uchar data)
 0020           ; {
 0020           L7:
 0020                   .dbline 29
 0020           L8:
 0020                   .dbline 29
 0020           ;     while(!(UCSR0A&(1<<UDRE0)));
 0020 5D9B              sbis 0xb,5
 0022 FECF              rjmp L7
 0024                   .dbline 30
 0024           ;     UDR0=data;
 0024 0CB9              out 0xc,R16
 0026                   .dbline -2
 0026           L6:
 0026                   .dbline 0 ; func end
 0026 0895              ret
 0028                   .dbsym r data 16 c
 0028                   .dbend
 0028                   .dbfunc e main _main fV
 0028           ;              j -> R20
                        .even
 0028           _main::
 0028                   .dbline -1
 0028                   .dbline 34
 0028           ; }
 0028           ; 
 0028           ; void main(void)
 0028           ; {
 0028                   .dbline 36
 0028           ;     uchar j;
 0028           ;     CLI();
 0028 F894              cli
 002A                   .dbline 37
 002A           ;     WDR();
 002A A895              wdr
 002C                   .dbline 38
 002C           ;     UART_init();
 002C E9DF              xcall _UART_init
 002E                   .dbline 39
 002E           ;     SEI();
 002E 7894              sei
 0030 03C0              xjmp L12
 0032           L11:
 0032                   .dbline 41
 0032                   .dbline 42
 0032 F2DF              xcall _UART_recive
 0034 402F              mov R20,R16
 0036                   .dbline 43
 0036 F4DF              xcall _UART_transmit
 0038                   .dbline 44
 0038           L12:
 0038                   .dbline 40
 0038 FCCF              xjmp L11
 003A           X0:
 003A                   .dbline -2
 003A           L10:
 003A                   .dbline 0 ; func end
 003A 0895              ret
 003C                   .dbsym r j 20 c
 003C                   .dbend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -