📄 asm.s43
字号:
#include "msp430x22x4.h"
;此程序是USCIA0的SPI模式中断方式的从机程序
;首先按下图连接好导线,在启动主机程序前先启动从机程序,调试主机程
;然后再启动主机程序,从机程序将每次收到的数据回发给主机
; MSP430F2274 MSP430F2274
; master slavor
; ----------------- -----------------
; /|\| XIN|- -|XIN |/|\
; | | | | | |
; --|RST XOUT|- -|XOUT RST|--
; | | | |
; | P1.0|-->LED LED<--| |
; | p3.0UCA0CLK |------------------->|P3.0 |
; | p3.4UCA0SIMO|------------------->|p3.4UCA0SIMO |
; | P3.5UCA0SOMI|<-------------------|P3.5UCA0SOMI |
; | DVSS|--------------------|DVSS |
NAME main
PUBLIC main
;-----------------------------------------------------------------------------
; MSP430F22x中断向量表
;-----------------------------------------------------------------------------
ORG 0FFFEh
DC16 main
ORG 0FFEEh
DC16 rx_isr
;------------------------------------------------------------------------------
RSEG CODE ;程序开始
;------------------------------------------------------------------------------
main MOV.W #0600H,SP ;设置堆栈指针
stopWDT MOV.W #WDTPW+WDTHOLD,&WDTCTL ;关看门狗
MOV.B &CALBC1_1MHZ,&BCSCTL1 ;设定DCO为1MHZ
MOV.B &CALDCO_1MHZ,&DCOCTL
BIS.B #BIT0,&P1DIR ;使能LED
BIS.B #BIT4+BIT5+BIT0,&P3SEL ;p3.4为SIMO,P3.5为SOMI,P3.0为UCA0CLK
BIS.B #BIT5,&P3DIR ;P3.5为输出方向
BIS.B #UCSYNC+UCCKPL+UCMSB,&UCA0CTL0
BIC.B #UCSWRST,&UCA0CTL1 ;进入spi工作模式
BIS.B #UCA0RXIE,&IE2 ;使能接收中断
EINT ;使能总中断
mainloop
BIS.B #LPM3,SR ;进入低功耗3
NOP
;------------------------------------------------------------------------------
rx_isr;
;------------------------------------------------------------------------------
wait_txifg
BIT.B #UCA0TXIFG,&IFG2 ;查询发送标志位
JZ wait_txifg
MOV.B &UCA0RXBUF,&UCA0TXBUF ;将接收缓存器的数据放入发送缓存里
XOR.B #BIT0,&P1OUT ;led翻转
RETI
END main
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -