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

📄 lab-08-4619.s43

📁 MSP430F2013是TI的U盘开发工具对I2c进行读写的完整工程源程序包
💻 S43
字号:
;*******************************************************************************
;   MSP430xG461x Demo - USCI_B0 I2C Master TX multiple bytes to MSP430 Slave
;
;   Description: This demo connects two MSP430's via the I2C bus. The master
;   transmits to the slave. This is the master code. It continuously
;   transmits an array of data and demonstrates how to implement an I2C
;   master transmitter sending multiple bytes using the USCI_B0 TX interrupt.
;   ACLK = 32kHz, MCLK = SMCLK = TACLK = BRCLK = 1MHz
;  ***THIS IS THE MASTER CODE***
;
;                MSP430F2013                 MSP430xG461x
;                    slave                       master
;              -----------------           -----------------
;            -|XIN      SDA/P1.7|<------->|P3.1/UCB0SDA  XIN|-
;       32kHz |                 |         |                 | 32kHz
;            -|XOUT             |         |             XOUT|-
;             |         SCL/P1.6|<------->|P3.2/UCB0SCL     |
;             |                 |         |                 |
;
;  Note: internal pull-ups are used in this example for SDA & SCL
;          
;   A. Dannenberg/ K. Venkat
;   Texas Instruments Inc.
;   Dec 2006
;   Built with IAR Embedded Workbench Version: 3.41A
;*******************************************************************************
#include "msp430xG46x.h"

ORG        250
RxBuffer   DW         1
          
;-------------------------------------------------------------------------------
            RSEG    CSTACK                  ; 定义堆栈
;-------------------------------------------------------------------------------
            RSEG    CODE                    ;  
;-------------------------------------------------------------------------------
RESET       mov.w   #SFE(CSTACK),SP         ; 堆栈起始地址
StopWDT     mov.w   #WDTPW+WDTHOLD,&WDTCTL  ; 关看门狗
            bis.b   #0x1,&IE1 

SetupP1     bis.b   #0x1,&P1IES
            bis.b   #0x1,&P1IE

SetupP3     bis.b   #06h,&P3SEL             ; 选择 I2C 功能

SetupUCB0   bis.b   #UCSWRST,&UCB0CTL1      ; 使能 SW  
            mov.b   #UCMST+UCMODE_3+UCSYNC,&UCB0CTL0
                                            ; I2C 主机,同步模式
            mov.b   #UCSSEL_2+UCSWRST,&UCB0CTL1
            mov.b   #11,&UCB0BR0            ; fSCL = SMCLK/11 = 95.3kHz
            mov.b   #00,&UCB0BR1
            mov.w   #048h,&UCB0I2CSA        ; 从机地址 048h
            bic.b   #UCSWRST,&UCB0CTL1      ; 清 SW 
            bis.b   #UCB0TXIE,&IE2          ; 使能接收中断
            EINT
Main        BIS.W   #0X18,SR                ; 进入低功耗 LPM0,中断使能       
Main_1      nop
            nop
            jmp     Main                    ; 循环

;-------------------------------------------------------------------------------
PORT1_ISR;    
;-------------------------------------------------------------------------------
            bic.b  #0x1,&P1IE
            mov.w  #0x5a1d,&WDTCTL
            clr.b  &P1IFG
            bis.b  #0X2,&UCB0CTL1
test        bit.b  #0x2,&UCB0CTL1
            jc     test
            bis.b  #0x4,&UCB0CTL1
            reti

;-------------------------------------------------------------------------------
USCIAB0TX_ISR;    
;-------------------------------------------------------------------------------
            mov.b   &UCB0RXBUF,& RxBuffer   ; 发送缓存
            bic.w   #0x10,0x0(sp)           ; 下一个数据
            reti


;-------------------------------------------------------------------------------
WDT_ISR;    
;-------------------------------------------------------------------------------
            clr.b   &P1IFG   
            bis.b   #0X1,&IE1           
            mov.w   #0X5A80,&WDTCTL
            reti    


;-------------------------------------------------------------------------------
            COMMON  INTVEC                  ; 中断向量
;-------------------------------------------------------------------------------
            ORG     USCIAB0TX_VECTOR        ; USCI_B0 中断向量
            DW      USCIAB0TX_ISR
            ORG     PORT1_VECTOR            ; P1口中断向量
            DW      PORT1_ISR 
            ORG     WDT_VECTOR              ; 看门狗中断向量 
            DW      WDT_ISR   
            ORG     RESET_VECTOR            ; 复位向量
            DW      RESET
            END

⌨️ 快捷键说明

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