📄 msp430x11x1_165.s43
字号:
;*****************************************************************************
; MSP430x11x1 Demo - Software Interface to HC165 Shift Register
;
; Description: Read an 'HC165 shift register. /LD is pulsed low to latch
; in parallel data, then 8-bits are shifted out of the HC165 into the MSP430
; stored in register Data (R4).
; ACLK = n/a, MCLK = SMCLK = default DCO ~800k
;
; MSP430F1121
; -----------------
; /|\| XIN|-
; | | |
; HC165 --|RST XOUT|-
; ---------- | |
; | /LD|<---|P2.0 |
; ->|A-H CLK|<---|P2.1 |
; |-|INH QH|--->|P2.2 |
; |-|SER | | |
; v
;
#define Data R4
LD EQU 001h ; P2.0 LD
CLK EQU 002h ; P2.1 Serial clock
QH EQU 004h ; P2.2 Data out
;
; M. Buccini
; Texas Instruments Inc.
; Feb 2005
; Built with IAR Embedded Workbench Version: 3.21A
;*****************************************************************************
#include <msp430x11x1.h>
;-----------------------------------------------------------------------------
ORG 0F000h ; Program Start
;-----------------------------------------------------------------------------
RESET mov.w #0300h,SP ; Initialize stackpointer
StopWDT mov.w #WDTPW+WDTHOLD,&WDTCTL ; Stop Watchdog Timer
SetupP2 mov.b #LD,&P2OUT ; /LD set, - P2.x reset
bis.b #LD+CLK,&P2DIR ; /LD and CLK outputs
;
Mainloop call #Read_HC165 ; Data <-- HC165
jmp Mainloop ; Repeat
;
;-----------------------------------------------------------------------------
Read_HC165; Shift data from HC165 --> Data (R4)
;-----------------------------------------------------------------------------
bic.b #LD,&P2OUT ; /LD reset
bis.b #LD,&P2OUT ; /LD set
clr.w Data ;
push.b #08 ; 8 bits to Read - TOS
RX_loop bit.b #QH,&P2IN ; QH --> Carry
rlc.b Data ; Carry --> Data
bis.b #CLK,&P2OUT ; CLK set
bic.b #CLK,&P2OUT ; CLK reset
dec.b 0(SP) ; All 8 bits sent?
jnz RX_loop ;
incd.w SP ; bit counter off stack
ret ; Return from subroutine
;
;-----------------------------------------------------------------------------
; Interrupt Vectors
;-----------------------------------------------------------------------------
ORG 0FFFEh ; MSP430 RESET Vector
DW RESET ;
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -