📄 msp430x24x_uscia0_spi_02.s43
字号:
;*******************************************************************************
; MSP430x24x Demo - USCI_A0, SPI Interface to HC165 Shift Register
;
; Description: This program demonstrate a USCI_A0 in SPI mode interface to a
; an 'HC165 shift register. Read 8-bit Data from H-A into Data.
; ACLK = n/a, MCLK = SMCLK = default DCO ~1.045MHz, BRCLK = SMCLK/2
;
; MSP430x24x
; -----------------
; /|\| XIN|-
; | | |
; HC165 --|RST XOUT|-
; ---------- | |
; 8 | /LD|<---|P3.6 |
; -\->|A-H CLK|<---|P3.0/UCA0CLK |
; |-|INH QH|--->|P3.5/UCA0SOMI |
; |-|SER | | |
; v
;
;
; B. Nisarga
; Texas Instruments Inc.
; September 2007
; Built with IAR Embedded Workbench Version: 3.42A
;*******************************************************************************
#include "msp430x24x.h"
Data EQU 0200h
;-------------------------------------------------------------------------------
RSEG CSTACK ; Define stack segment
;-------------------------------------------------------------------------------
RSEG CODE ; Assemble to Flash memory
;-------------------------------------------------------------------------------
RESET mov.w #SFE(CSTACK),SP ; Initialize stackpointer
StopWDT mov.w #WDTPW+WDTHOLD,&WDTCTL ; Stop watchdog timer
SetupP3 bis.b #021h,&P3SEL ; P3.0,5 USCI_A0 option select
bis.b #040h,&P3DIR ; P3.6 output direction
SetupSPI bis.b #UCCKPH+UCMSB+UCMST+UCSYNC,&UCA0CTL0 ; 3-pin, 8-bit SPI mast
bis.b #UCSSEL_2,&UCA0CTL1 ; SMCLK
bis.b #02h,&UCA0BR0
clr.b &UCA0BR1 ;
clr.b &UCA0MCTL
bic.b #UCSWRST,&UCA0CTL1 ; **Initialize USCI state machine**
;
Mainloop call #RX_HC165 ; Load HC165 value into Rx buffer
mov.b &UCA0RXBUF,&Data ; Move value into Data
jmp Mainloop ; Repeat
;
;-------------------------------------------------------------------------------
RX_HC165
;-------------------------------------------------------------------------------
bic.b #040h,&P3OUT ; Trigger low edge on HC165 /LD
bis.b #040h,&P3OUT ; Return /LD to high
bic.b #UCA0RXIFG,&IFG2 ; Clear U1RXBUF flag
mov.b #00h,&UCA0TXBUF ; Dummy write to start SPI
L1 bit.b #UCA0RXIFG,&IFG2 ; RXBUF ready?
jnc L1 ; 1 = ready
ret ;
;
;-------------------------------------------------------------------------------
COMMON INTVEC ; Interrupt Vectors
;-------------------------------------------------------------------------------
ORG RESET_VECTOR
DW RESET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -