📄 fet120_uart04_19200.s43
字号:
;******************************************************************************
; MSP-FET430P120 Demo - USART0, UART 19200 Echo ISR, No XTAL, Rosc DCO Only
;
; Description: Echo a received character, USART0 RX ISR at high-speed using
; no XTAL and an external resistor for DCO ROSC. DCO used for UART baud
; generation. On valid RX character, character echoed back. Using a 100k
; resistor on ROSC, with default DCO setting, set DCOCLK ~ 2MHz.
; Baud rate divider with 2Mhz = 2MHz/19200 ~104 (0068h)
; ACLK = n/a MCLK = SMCLK = UCLK0 = DCOCLK ~2MHz
; //* Use of external resistor reduces temperature sensitivity of DCOCLK *//
;
; MSP430F123(2)
; -----------------
; /|\ /|\| XIN|-
; | | | |
; 100k --|RST XOUT|-
; | | |
; +-------|P2.5/ROSC P3.4|------------>
; | | 19200 - 8N1
; | P3.5|<------------
;
; M. Buccini
; Texas Instruments Inc.
; Feb 2005
; Built with IAR Embedded Workbench Version: 3.21A
;******************************************************************************
#include <msp430x12x2.h>
;------------------------------------------------------------------------------
ORG 0E000h ; Program Start
;------------------------------------------------------------------------------
RESET mov.w #300h,SP ; Initialize stackpointer
StopWDT mov.w #WDTPW+WDTHOLD,&WDTCTL ; Stop WDT
SetupP3 bis.b #030h,&P3SEL ; P3.4,5 = USART0 TXD/RXD
SetupBC bis.b #DCOR,&BCSCTL2 ; Rosc
bis.w #OSCOFF,SR ; XTAL not used
SetupUART0 bis.b #UTXE0+URXE0,&ME2 ; Enable USART0 TXD/RXD
bis.b #CHAR,&UCTL0 ; 8-bit char
bis.b #SSEL1,&UTCTL0 ; UCLK = SMCLK
mov.b #068h,&UBR00 ; 2MHz 19200
mov.b #000h,&UBR10 ;
mov.b #000h,&UMCTL0 ; no modulation
bic.b #SWRST,&UCTL0 ; **Initialize USART state machine**
bis.b #URXIE0,&IE2 ; Enable USART0 RX interrupt
;
Mainloop bis.b #CPUOFF+GIE,SR ; Enter LPM0, interrupts enabled
nop ; Needed only for debugger
;
;------------------------------------------------------------------------------
USART0RX_ISR; Echo back RXed character, confirm TX buffer is ready first
;------------------------------------------------------------------------------
TX1 bit.b #UTXIFG0,&IFG2 ; USART0 TX buffer ready?
jz TX1 ; Jump is TX buffer not ready
mov.b &RXBUF0,&TXBUF0 ; TX -> RXed character
reti ;
;
;------------------------------------------------------------------------------
; Interrupt Vectors
;------------------------------------------------------------------------------
ORG 0FFFEh ;
DW RESET ; POR, ext. Reset, Watchdog
ORG 0FFEEh ;
DW USART0RX_ISR ; USART0 receive
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -