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

📄 spi_a.s43

📁 MSP340例程 适合入门 欢迎大家下载共享
💻 S43
字号:
;****************************************************************************
;  文件名称:
;           SPI_A.s43
;  文件说明:
;           模块操作MSP430的USART的SPI通讯模块,
;       本实验需要使用外围芯片HC164、HC165
;       实验从HC165读取数据,向HC164写数据
;       HC164、HC165的有关知识请参考Datasheet

#include  "msp430x44x.h"

;******************************************************************************
;   
;
;                          MSP430F449             
;                       -----------------
;                   /|\|              XIN|-  
;                    | |                 |     ^      HC164
;          HC165     --|RST          XOUT|-    |  -------------
;        ----------    |                 |     |-|/CLR,B       |  8
;    8  |      /LD|<---|P3.0   SIMO0/P3.1|------>|A          Qx|--\->
;   -\->|A-H   CLK|<---|P3.3/UCLK0 - P3.3|------>|CLK          |
;     |-|INH    QH|--->|P3.2/SOMI0       |       |             |    
;     |-|SER      |    |                 |       |             | 
;     - |         |    |                 |       |             |
;

;****************************************************************************** 
            ORG     08000h                  ; 程序开始
;****************************************************************************** 
RESET       mov.w   #0600h,SP               ; 初始化堆栈
            call    #Init_Sys               ; 调用Init_Sys,初始化系统环境
                                            ;
Mainloop    call    #RXTX_HC16x             ; 数据交换
                                            ; 延时
Delay       push.w  #0                      ;
D1          dec.w   0(SP)                   ;
            jnz     D1                      ;
            incd.w  SP                      ;          
            jmp     Mainloop                ; 回到主循环
                                            ; 
;****************************************************************************** 
Init_Sys 
;****************************************************************************** 
StopWDT     mov.w   #WDTPW+WDTHOLD,&WDTCTL  ; 关看门狗
SetupP3     bis.b   #0Eh,&P3SEL             ; P3.1-3 SPI 外围设备
            bis.b   #01h,&P3DIR             ; P3.0 输出模式
SetupSPI    bis.b   #USPIE0,&ME1            ; SPI模式设置
            mov.b   #CKPH+SSEL1+SSEL0+STC,&UTCTL0 ; SMCLK, 3-pin 
            mov.b   #CHAR+SYNC+MM,&UCTL0    ; 8-bit char模式
            mov.b   #02h,&UBR00             ; 波特率
            clr.b   &UBR10                  ; 
            clr.b   &UMCTL0                 ; 清零UMCTL0
            ret                             ; 返回
                                            ;
;****************************************************************************** 
RXTX_HC16x 
;****************************************************************************** 
TX0         bit.b   #UTXIFG0,&IFG1          ; USART0 TX 是否就绪?
            jz      TX0                     ; 跳转
            bic.b   #01h,&P3OUT             ; 发数据到 'HC165
            bis.b   #01h,&P3OUT             ; 
            mov.b   &RXBUF0,&TXBUF0         ; 把Rx的数据发到TXBuf
            ret                             ; 返回
                                            ;
;******************************************************************************
;           中断向量         
;******************************************************************************
            ORG     0FFFEh                  ; MSP430 RESET 向量
            DW      RESET                   ; 
            END

⌨️ 快捷键说明

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