?? uart_back.lis
字號:
.module UART_Back.c
.area text(rom, con, rel)
0000 .dbfile E:\AVR單~1\NewProject\串口通信\ATmega128\數(shù)據(jù)回發(fā)\UART_Back.c
0000 .dbfunc e UART_init _UART_init fV
.even
0000 _UART_init::
0000 .dbline -1
0000 .dbline 13
0000 ; /****************************************************
0000 ; **晶振:內(nèi)部7.3728MHz
0000 ; **實現(xiàn)功能:將從PC機接受的字符返回PC機
0000 ; **設(shè)置:波特率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; /*允許接收和發(fā)送*/
0004 88E1 ldi R24,24
0006 8AB9 out 0xa,R24
0008 .dbline 16
0008 ; UCSR0C = 0x0E; /*8位數(shù)據(jù),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))); /* 等待接收數(shù)據(jù)*/
0018 5F9B sbis 0xb,7
001A FECF rjmp L3
001C .dbline 24
001C ; return UDR0; /* 獲取并返回數(shù)據(jù)*/
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
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -