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

📄 uart.s

📁 avr mega16 232串口调试程序
💻 S
字号:
	.module uart.c
	.area data(ram, con, rel)
_baud::
	.blkb 1
	.area idata
	.byte 45
	.area data(ram, con, rel)
	.dbfile C:\bak\YM200\uart\uart.c
	.dbsym e baud _baud c
	.area text(rom, con, rel)
	.dbfile C:\bak\YM200\uart\uart.c
	.dbfunc e USART_Init _USART_Init fV
	.even
_USART_Init::
	.dbline -1
	.dbline 11
; #include <iom16v.h>
; #include <macros.h>
; #include<stdio.h>
; unsigned char baud=45;               //baud=9600bps
; /*-----------------------------------------------------------
; USART_Init  :UART初始化函数
; 输入参数    :无
; 输出参数    :无
; ------------------------------------------------------------*/
; void USART_Init(void)
; {
	.dbline 13
;                                          /* 设置波特率*/
;   UBRRH = (unsigned char)(baud>>8);
	lds R2,_baud
	clr R3
	mov R2,R3
	clr R3
	sbrc R2,7
	com R3
	out 0x20,R2
	.dbline 14
;   UBRRL = (unsigned char)baud;
	lds R2,_baud
	out 0x9,R2
	.dbline 16
;                                          /* 设置帧格式: 8 个数据位, 2 个停止位*/
;   UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
	ldi R24,142
	out 0x20,R24
	.dbline 18
;                                          /* 接收器与发送器使能*/
;   UCSRB = (1<<RXEN)|(1<<TXEN);
	ldi R24,24
	out 0xa,R24
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e main _main fV
;           temp -> R20
	.even
_main::
	.dbline -1
	.dbline 22
;  }
; 
; void main(void)
;   {
	.dbline 24
;     unsigned char temp;
;     USART_Init();  
	xcall _USART_Init
	.dbline 25
;     puts("Hello World!\n");
	ldi R16,<L3
	ldi R17,>L3
	xcall _puts
	.dbline 26
;     putchar(0x0d);
	ldi R16,13
	xcall _putchar
	.dbline 27
;     putchar(0x0a);	 
	ldi R16,10
	xcall _putchar
	.dbline 28
;     printf("Please Input in Tx_windows");
	ldi R16,<L4
	ldi R17,>L4
	xcall _printf
	.dbline 29
;     putchar(0x0a);
	ldi R16,10
	xcall _putchar
	.dbline 30
;     putchar(0x0d);
	ldi R16,13
	xcall _putchar
	xjmp L6
L5:
	.dbline 32
;     while (1)
;       { 		   
	.dbline 33
;          temp=getchar();
	xcall _getchar
	mov R20,R16
	.dbline 34
; 	 if (temp!=0)
	tst R16
	breq L8
	.dbline 35
;            {
	.dbline 36
; 	     putchar(temp);
	xcall _putchar
	.dbline 37
; 	     if(temp==0x0d)
	cpi R20,13
	brne L10
	.dbline 38
; 	     putchar(0x0a);
	ldi R16,10
	xcall _putchar
L10:
	.dbline 39
; 	     temp=0;
	clr R20
	.dbline 40
; 	    }  	    			   		
L8:
	.dbline 41
L6:
	.dbline 31
	xjmp L5
X0:
	.dbline -2
L2:
	.dbline 0 ; func end
	ret
	.dbsym r temp 20 c
	.dbend
	.area data(ram, con, rel)
	.dbfile C:\bak\YM200\uart\uart.c
L4:
	.blkb 27
	.area idata
	.byte 'P,'l,'e,'a,'s,'e,32,'I,'n,'p,'u,'t,32,'i,'n,32
	.byte 'T,'x,95,'w,'i,'n,'d,'o,'w,'s,0
	.area data(ram, con, rel)
	.dbfile C:\bak\YM200\uart\uart.c
L3:
	.blkb 14
	.area idata
	.byte 'H,'e,'l,'l,'o,32,'W,'o,'r,'l,'d,33,10,0
	.area data(ram, con, rel)
	.dbfile C:\bak\YM200\uart\uart.c

⌨️ 快捷键说明

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