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

📄 uart_back.s

📁 ATmega128串口通信,在ICC AVR下编译成功
💻 S
字号:
	.module UART_Back.c
	.area text(rom, con, rel)
	.dbfile E:\AVR单~1\NewProject\串口通信\ATmega128\数据回发\UART_Back.c
	.dbfunc e UART_init _UART_init fV
	.even
_UART_init::
	.dbline -1
	.dbline 13
; /****************************************************
; **晶振:内部7.3728MHz
; **实现功能:将从PC机接受的字符返回PC机
; **设置:波特率9600, 8 bit, 1 stop bit, 无校验
; ****************************************************/
; #include <iom128.h>
; #include <macros.h>
; 
; #define uchar unsigned char 
; #define uint  unsigned int
; 
; void UART_init(void)
; {
	.dbline 14
; 	UCSR0A = 0x00;		/*倍速					*/
	clr R2
	out 0xb,R2
	.dbline 15
; 	UCSR0B = 0x18;		/*允许接收和发送*/
	ldi R24,24
	out 0xa,R24
	.dbline 16
; 	UCSR0C = 0x0E;		/*8位数据,1位停止位,无校验位				*/
	ldi R24,14
	sts 149,R24
	.dbline 17
; 	UBRR0H = 0x00;
	sts 144,R2
	.dbline 18
; 	UBRR0L = 0x47;		/*9600					*/
	ldi R24,71
	out 0x9,R24
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e UART_recive _UART_recive fc
	.even
_UART_recive::
	.dbline -1
	.dbline 22
; }
; 
; uchar UART_recive(void)
; {
L3:
	.dbline 23
L4:
	.dbline 23
;     while (!(UCSR0A&(1<<RXC0))); /* 等待接收数据*/
	sbis 0xb,7
	rjmp L3
	.dbline 24
;     return UDR0;                 /* 获取并返回数据*/
	in R16,0xc
	.dbline -2
L2:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e UART_transmit _UART_transmit fV
;           data -> R16
	.even
_UART_transmit::
	.dbline -1
	.dbline 28
; }
; 
; void UART_transmit(uchar data)
; {
L7:
	.dbline 29
L8:
	.dbline 29
;     while(!(UCSR0A&(1<<UDRE0)));
	sbis 0xb,5
	rjmp L7
	.dbline 30
;     UDR0=data;
	out 0xc,R16
	.dbline -2
L6:
	.dbline 0 ; func end
	ret
	.dbsym r data 16 c
	.dbend
	.dbfunc e main _main fV
;              j -> R20
	.even
_main::
	.dbline -1
	.dbline 34
; }
; 
; void main(void)
; {
	.dbline 36
;     uchar j;
;     CLI();
	cli
	.dbline 37
;     WDR();
	wdr
	.dbline 38
;     UART_init();
	xcall _UART_init
	.dbline 39
;     SEI();
	sei
	xjmp L12
L11:
	.dbline 41
	.dbline 42
	xcall _UART_recive
	mov R20,R16
	.dbline 43
	xcall _UART_transmit
	.dbline 44
L12:
	.dbline 40
	xjmp L11
X0:
	.dbline -2
L10:
	.dbline 0 ; func end
	ret
	.dbsym r j 20 c
	.dbend

⌨️ 快捷键说明

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