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

📄 main.s

📁 meg16 的所有功能实例
💻 S
字号:
	.module main.c
	.area data(ram, con, rel)
_GET_TxBUF1::
	.blkb 18
	.area idata
	.byte 'w,'w,'w,46,'a,'d,'e,'m,'b,'e,'d,46,'c,'o,'m,32
	.byte 32,32
	.area data(ram, con, rel)
	.dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\UARTTX~1\main.c
	.dbsym e GET_TxBUF1 _GET_TxBUF1 A[18:18]c
_GET_TxBUF2::
	.blkb 18
	.area idata
	.byte 'U,'A,'R,'T,32,'T,'x,32,'T,'e,'s,'t,46,46,46,46
	.byte 46,46
	.area data(ram, con, rel)
	.dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\UARTTX~1\main.c
	.dbsym e GET_TxBUF2 _GET_TxBUF2 A[18:18]c
	.area text(rom, con, rel)
	.dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\UARTTX~1\main.c
	.dbfunc e Delay_us _Delay_us fV
;           time -> R16,R17
	.even
_Delay_us::
	.dbline -1
	.dbline 42
; /****************************************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 Tx 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_TxNum;
; unsigned char GET_TxBUF1[18]="www.adembed.com   ";
; unsigned char GET_TxBUF2[18]="UART Tx Test......";
; 
; 
; void Uart_Init(void); 
; void USART_TXD(uint8 data);
; 
; void Delay_us(unsigned int time)
; {
L2:
	.dbline 43
L3:
	.dbline 43
; while(time--);
	movw R2,R16
	subi R16,1
	sbci R17,0
	tst R2
	brne L2
	tst R3
	brne L2
X0:
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbsym r time 16 i
	.dbend
	.dbfunc e Delay_ms _Delay_ms fV
;           time -> R20,R21
	.even
_Delay_ms::
	xcall push_gset1
	movw R20,R16
	.dbline -1
	.dbline 47
; }
; 
; void Delay_ms(unsigned int time)
; {
	xjmp L7
L6:
	.dbline 49
	.dbline 50
	ldi R16,1000
	ldi R17,3
	xcall _Delay_us
	.dbline 51
L7:
	.dbline 48
; while(time--)
	movw R2,R20
	subi R20,1
	sbci R21,0
	tst R2
	brne L6
	tst R3
	brne L6
X1:
	.dbline -2
L5:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r time 20 i
	.dbend
	.dbfunc e main _main fV
	.even
_main::
	.dbline -1
	.dbline 55
; 	{
; 	Delay_us(1000);
; 	}
; }
; 
; void main(void)
; {
	.dbline 56
;  Uart_Init();                 //TART初始化
	xcall _Uart_Init
	.dbline 57
;  SEI();                       //全局中断使能
	sei
	xjmp L11
L10:
	.dbline 59
;  while(1)
;      {
	.dbline 60
;      for(GET_TxNum=0;GET_TxNum<18;GET_TxNum++)
	clr R2
	sts _GET_TxNum,R2
	xjmp L16
L13:
	.dbline 61
	.dbline 62
	ldi R24,<_GET_TxBUF1
	ldi R25,>_GET_TxBUF1
	lds R30,_GET_TxNum
	clr R31
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	xcall _USART_TXD
	.dbline 63
L14:
	.dbline 60
	lds R24,_GET_TxNum
	subi R24,255    ; addi 1
	sts _GET_TxNum,R24
L16:
	.dbline 60
	lds R24,_GET_TxNum
	cpi R24,18
	brlo L13
	.dbline 64
;      	 {
; 	 	 USART_TXD(GET_TxBUF1[GET_TxNum]); 
;      	 }
; 	 for(GET_TxNum=0;GET_TxNum<18;GET_TxNum++)
	clr R2
	sts _GET_TxNum,R2
	xjmp L20
L17:
	.dbline 65
	.dbline 66
	ldi R24,<_GET_TxBUF2
	ldi R25,>_GET_TxBUF2
	lds R30,_GET_TxNum
	clr R31
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	xcall _USART_TXD
	.dbline 67
L18:
	.dbline 64
	lds R24,_GET_TxNum
	subi R24,255    ; addi 1
	sts _GET_TxNum,R24
L20:
	.dbline 64
	lds R24,_GET_TxNum
	cpi R24,18
	brlo L17
	.dbline 68
	ldi R16,10
	xcall _USART_TXD
	.dbline 69
	ldi R16,2000
	ldi R17,7
	xcall _Delay_ms
	.dbline 70
L11:
	.dbline 58
	xjmp L10
X2:
	.dbline -2
L9:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Uart_Init _Uart_Init fV
	.even
_Uart_Init::
	.dbline -1
	.dbline 75
;          {
; 	 	 USART_TXD(GET_TxBUF2[GET_TxNum]); 
;      	 }
; 	 USART_TXD(0x0A);
; 	 Delay_ms(2000);
;      }
; }
; 
; //===============================================================
; void Uart_Init(void)          //UART初始化
;   { 
	.dbline 79
;      
;     //设置侦格式
; 	//异步,8位数据,无奇偶校验,一个停止位,无倍速
; 	UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
	ldi R24,134
	out 0x20,R24
	.dbline 82
; 	
;     //设置波特率
;     UBRRL= (F_osc/Baud_rate/16-1)%256;
	ldi R24,47
	out 0x9,R24
	.dbline 83
;     UBRRH= (F_osc/Baud_rate/16-1)/256;
	clr R2
	out 0x20,R2
	.dbline 86
; 
; 	//使能接收中断,使能接收,使能发送
;     UCSRB = (1<<RXCIE)|(1<<RXEN)|(1<<TXEN);
	ldi R24,152
	out 0xa,R24
	.dbline -2
L21:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e USART_TXD _USART_TXD fV
;           data -> R16
	.even
_USART_TXD::
	.dbline -1
	.dbline 92
;   }
;   
; 
; //===============================================================
; void USART_TXD(uint8 data) //发送采用查询方式
; {
L23:
	.dbline 93
L24:
	.dbline 93
; 	while( !(UCSRA & BIT(UDRE)) );
	sbis 0xb,5
	rjmp L23
	.dbline 94
; 	UDR=data;
	out 0xc,R16
L26:
	.dbline 95
L27:
	.dbline 95
; 	while( !(UCSRA & BIT(TXC )) );
	sbis 0xb,6
	rjmp L26
	.dbline 96
; 	UCSRA|=BIT(TXC);
	sbi 0xb,6
	.dbline -2
L22:
	.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程序包\完成整理\UARTTX~1\main.c
	.dbfunc e USART_RXC _USART_RXC fV
	.even
_USART_RXC::
	.dbline -1
	.dbline 103
; }
; 
; //=======================================================================
; 
; #pragma interrupt_handler USART_RXC:12
; void USART_RXC(void)
; {
	.dbline -2
L29:
	.dbline 0 ; func end
	reti
	.dbend
	.area bss(ram, con, rel)
	.dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\UARTTX~1\main.c
_GET_TxNum::
	.blkb 1
	.dbsym e GET_TxNum _GET_TxNum c

⌨️ 快捷键说明

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