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

📄 fet110_hc595.s43

📁 msp430p1110
💻 S43
字号:
#include  "msp430x11x1.h"
;*****************************************************************************
;   MSP-FET430x110 Demo  - Software SPI Interface with HC595 Shift Register
;
;   Description: Transfer byte data in Data (R4) serially to to HC595 and
;   latch data using RCLK. Data in incremented in the mainloop, effectively 
;   incrementing HC595 QA - QH outputs.
;   ACLK = n/a, MCLK = SMCLK = default DCO ~ 800k 
;
;                MSP430F1121     ^      HC595
;             -----------------  |  ----------
;            |                 | |-|/SRCLK    |  8
;            |             P2.2|-->|RCLK    Qx|--\->
;            |             P2.1|-->|SER       |
;            |             P2.0|-->|SRCLK  /OE|--|
;            |                 |   |          |  V
;
#define     Data     R4                  
RCLK        equ      004h                   ; P2.2 Data Out
SER         equ      002h                   ; P2.1 Data Out
SRCLK       equ      001h                   ; P2.0 Serial Clock
;
;   M.Buccini
;   Texas Instruments, Inc
;   January 2002
;*****************************************************************************
;----------------------------------------------------------------------------- 
            ORG     0F000h                  ; Program Start
;----------------------------------------------------------------------------- 
RESET       mov.w   #0300h,SP               ; Initialize 'x112x stackpointer
StopWDT     mov.w   #WDTPW+WDTHOLD,&WDTCTL  ; Stop Watchdog Timer
SetupP2     bic.b   #SRCLK+SER+RCLK,&P2OUT  ; Reset Clock, data and latch
            bis.b   #SRCLK+SER+RCLK,&P2DIR  ; Clock, data and latch as output
            mov.b   #0FFh,Data              ; 
                                            ;
Mainloop    inc.b   Data                    ; Increment data to be transfered    
            call    #TX_HC595               ; Data --> HC595
            call    #Delay                  ; Wait
            jmp     Mainloop                ; Repeat
                                            ; 
;----------------------------------------------------------------------------- 
TX_HC595;   Shift data from Data (R4) --> HC595.     
;----------------------------------------------------------------------------- 
            push.b  Data                    ; Save Data - TOS
            push.b  #08                     ; 8 bits to TX - TOS  
TX_loop     bic.b   #SER,&P2OUT             ; SER reset
            rla.b   Data                    ; Data MSB -> Carry
            jnc     Clk_1                   ;
Out_1       bis.b   #SER,&P2OUT             ; SER set
Clk_1       bis.b   #SRCLK,&P2OUT           ; SRCLK set 
Clk_0       bic.b   #SRCLK,&P2OUT           ; SRCLK reset
            dec.b   0(SP)                   ; All 8 bits sent?
            jnz     TX_loop                 ;
Latch_1     bis.b   #RCLK,&P2OUT            ; Latch data out
Latch_0     bic.b   #RCLK,&P2OUT            ; 
            incd.w  SP                      ; bit counter off stack
            pop.b   Data                    ; Original data
            ret                             ; Return from subroutine
                                            ;
;----------------------------------------------------------------------------- 
Delay;      Software delay
;----------------------------------------------------------------------------- 
            push.w  #0FFFFh                 ; Delay to TOS
L1          dec.w   0(SP)                   ; Decrement TOS
            jnz     L1                      ; Delay over?
            incd.w  SP                      ; Clean TOS
            ret                             ;
                                            ;
;----------------------------------------------------------------------------- 
;           Interrupt Vectors Used MSP430x11x1          
;----------------------------------------------------------------------------- 
            ORG     0FFFEh                  ; MSP430 RESET Vector
            DW      RESET                   ; 
            END

⌨️ 快捷键说明

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