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

📄 main.s

📁 meg16 的所有功能实例
💻 S
字号:
	.module main.c
	.area text(rom, con, rel)
	.dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\UARTEC~1\main.c
	.dbfunc e main _main fV
	.even
_main::
	.dbline -1
	.dbline 41
; /****************************************Copyright (c)**************************************************
; **                               ADEmbed Development Co.,LTD.                                    
; **                                 http://www.adembed.com
; **--------------File Info-------------------------------------------------------------------------------
; ** File name:			main.c
; ** Last modified Date:  2008-12-13
; ** Last Version:		1.0
; ** Descriptions:		UART Echo Test.
; ** 
; **------------------------------------------------------------------------------------------------------
; ** Created by:			junbolu
; ** Created date:		2008-12-13
; ** Version:				1.0
; ** Descriptions:		
; **
; **------------------------------------------------------------------------------------------------------
; ** Modified by:
; ** Modified date:
; ** Version:
; ** Descriptions:
; **
; **------------------------------------------------------------------------------------------------------
; **ICC-AVR application builder : 2008-12-13
; **Target : M16
; **Crystal: 7.3728Mhz
; *******************************************************************************************************/
; 
; #include <iom16v.h>
; #include <macros.h>
; #include "main.h"
; #include "Define.h"
; 
; unsigned char GET_Rx;
; unsigned char GET_RxNum;
; unsigned char GET_RxBUF[10];
; 
; void Uart_Init(void); 
; void USART_TXD(uint8 data);
;  
; void main(void)
; {
	.dbline 42
;  Uart_Init();                 //TART初始化
	xcall _Uart_Init
	.dbline 43
;  SEI();                       //全局中断使能
	sei
	.dbline 45
;  
;  GET_Rx=False;
	clr R2
	sts _GET_Rx,R2
	.dbline 46
;  for(;;)
L2:
	.dbline 47
	.dbline 48
	lds R24,_GET_Rx
	cpi R24,1
	brne L2
	.dbline 49
	.dbline 50
	lds R16,_GET_RxBUF
	xcall _USART_TXD
	.dbline 51
	clr R2
	sts _GET_Rx,R2
	.dbline 52
	.dbline 53
	.dbline 46
	.dbline 46
	xjmp L2
X0:
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Uart_Init _Uart_Init fV
	.even
_Uart_Init::
	.dbline -1
	.dbline 58
;      {
;      if(GET_Rx==True)
;  	     {
; 		 USART_TXD(GET_RxBUF[0]);
; 		 GET_Rx=False;
;    		 } 
;      }
; }
; 
; //===============================================================
; void Uart_Init(void)          //UART初始化
;   { 
	.dbline 62
;      
;     //设置侦格式
; 	//异步,8位数据,无奇偶校验,一个停止位,无倍速
; 	UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
	ldi R24,134
	out 0x20,R24
	.dbline 65
; 	
;     //设置波特率
;     UBRRL= (F_osc/Baud_rate/16-1)%256;
	ldi R24,47
	out 0x9,R24
	.dbline 66
;     UBRRH= (F_osc/Baud_rate/16-1)/256;
	clr R2
	out 0x20,R2
	.dbline 69
; 
; 	//使能接收中断,使能接收,使能发送
;     UCSRB = (1<<RXCIE)|(1<<RXEN)|(1<<TXEN);
	ldi R24,152
	out 0xa,R24
	.dbline -2
L8:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e USART_TXD _USART_TXD fV
;           data -> R16
	.even
_USART_TXD::
	.dbline -1
	.dbline 75
;   }
;   
; 
; //===============================================================
; void USART_TXD(uint8 data) //发送采用查询方式
; {
L10:
	.dbline 76
L11:
	.dbline 76
; 	while( !(UCSRA & BIT(UDRE)) );
	sbis 0xb,5
	rjmp L10
	.dbline 77
; 	UDR=data;
	out 0xc,R16
L13:
	.dbline 78
L14:
	.dbline 78
; 	while( !(UCSRA & BIT(TXC )) );
	sbis 0xb,6
	rjmp L13
	.dbline 79
; 	UCSRA|=BIT(TXC);
	sbi 0xb,6
	.dbline -2
L9:
	.dbline 0 ; func end
	ret
	.dbsym r data 16 c
	.dbend
	.area vector(rom, abs)
	.org 44
	jmp _USART_RXC
	.area text(rom, con, rel)
	.dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\UARTEC~1\main.c
	.dbfunc e USART_RXC _USART_RXC fV
	.even
_USART_RXC::
	st -y,R2
	st -y,R24
	in R2,0x3f
	st -y,R2
	.dbline -1
	.dbline 86
; }
; 
; //=======================================================================
; 
; #pragma interrupt_handler USART_RXC:12
; void USART_RXC(void)
; {
	.dbline 87
;  GET_RxBUF[0]=UDR;
	in R2,0xc
	sts _GET_RxBUF,R2
	.dbline 88
;  GET_Rx=True;
	ldi R24,1
	sts _GET_Rx,R24
	.dbline -2
L16:
	ld R2,y+
	out 0x3f,R2
	ld R24,y+
	ld R2,y+
	.dbline 0 ; func end
	reti
	.dbend
	.area bss(ram, con, rel)
	.dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\UARTEC~1\main.c
_GET_RxBUF::
	.blkb 10
	.dbsym e GET_RxBUF _GET_RxBUF A[10:10]c
_GET_RxNum::
	.blkb 1
	.dbsym e GET_RxNum _GET_RxNum c
_GET_Rx::
	.blkb 1
	.dbsym e GET_Rx _GET_Rx c

⌨️ 快捷键说明

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