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

📄 main.s43

📁 MSP430 I2C sample code application
💻 S43
字号:
;*****************************************************************************/
;*  Example main program showing how to use the file "I2Croutines.s43"       */
;*                                                                           */
;*  developed with IAR Embedded Workbench V2.20                              */
;*                                                                           */
;*  Texas Instruments Deutschland GmbH                                       */
;*  Christian Hernitscheck                                                   */
;*  August 2004                                                              */
;*****************************************************************************/
;
; THIS PROGRAM IS PROVIDED "AS IS". TI MAKES NO WARRANTIES OR
; REPRESENTATIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
; INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
; FOR A PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR
; COMPLETENESS OF RESPONSES, RESULTS AND LACK OF NEGLIGENCE.
; TI DISCLAIMS ANY WARRANTY OF TITLE, QUIET ENJOYMENT, QUIET
; POSSESSION, AND NON-INFRINGEMENT OF ANY THIRD PARTY
; INTELLECTUAL PROPERTY RIGHTS WITH REGARD TO THE PROGRAM OR
; YOUR USE OF THE PROGRAM.
;
; IN NO EVENT SHALL TI BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
; CONSEQUENTIAL OR INDIRECT DAMAGES, HOWEVER CAUSED, ON ANY
; THEORY OF LIABILITY AND WHETHER OR NOT TI HAS BEEN ADVISED
; OF THE POSSIBILITY OF SUCH DAMAGES, ARISING IN ANY WAY OUT
; OF THIS AGREEMENT, THE PROGRAM, OR YOUR USE OF THE PROGRAM.
; EXCLUDED DAMAGES INCLUDE, BUT ARE NOT LIMITED TO, COST OF
; REMOVAL OR REINSTALLATION, COMPUTER TIME, LABOR COSTS, LOSS
; OF GOODWILL, LOSS OF PROFITS, LOSS OF SAVINGS, OR LOSS OF
; USE OR INTERRUPTION OF BUSINESS. IN NO EVENT WILL TI'S
; AGGREGATE LIABILITY UNDER THIS AGREEMENT OR ARISING OUT OF
; YOUR USE OF THE PROGRAM EXCEED FIVE HUNDRED DOLLARS
; (U.S.$500).
;
; Unless otherwise stated, the Program written and copyrighted
; by Texas Instruments is distributed as "freeware".  You may,
; only under TI's copyright in the Program, use and modify the
; Program without any charge or restriction.  You may
; distribute to third parties, provided that you transfer a
; copy of this license to the third party and the third party
; agrees to these terms by its first use of the Program. You
; must reproduce the copyright notice and any other legend of
; ownership on each copy or partial copy, of the Program.
;
; You acknowledge and agree that the Program contains
; copyrighted material, trade secrets and other TI proprietary
; information and is protected by copyright laws,
; international copyright treaties, and trade secret laws, as
; well as other intellectual property laws.  To protect TI's
; rights in the Program, you agree not to decompile, reverse
; engineer, disassemble or otherwise translate any object code
; versions of the Program to a human-readable form.  You agree
; that in no event will you alter, remove or destroy any
; copyright notice included in the Program.  TI reserves all
; rights not specifically granted under this license. Except
; as specifically provided herein, nothing in this agreement
; shall be construed as conferring by implication, estoppel,
; or otherwise, upon you, any license or other right under any
; TI patents, copyrights or trade secrets.
;
; You may not use the Program in non-TI devices.
;
;******************************************************************************
#include "msp430x16x.h"

/*--- external functions of file "I2Croutines.s43" --------------------------*/
            extern InitI2C
            extern EEPROM_ByteWrite
            extern EEPROM_RandomRead
            extern EEPROM_CurrentAddressRead
            extern EEPROM_AckPolling

            RSEG    DATA16_Z
Data        DS    6

            RSEG    CODE
/*---------------------------------------------------------------------------*/
main
            MOV    #0300h,SP          ; initialization of Stack pointer
            MOV    #WDTPW+WDTHOLD,&WDTCTL    ; disable Watchdog
            MOV.b  #0FFh,&P1DIR       ; termination of unused pins
            MOV.b  #0FFh,&P2DIR
            MOV.b  #0F5h,&P3DIR
            MOV.b  #0FFh,&P4DIR
            MOV.b  #0FFh,&P5DIR
            MOV.b  #0FFh,&P6DIR

            CALL   #InitI2C           ; Initialize I2C module
            EINT

            MOV    #0000h,R12         ; EEPROM Address
            MOV.b  #012h,R14          ; Data that should be written into EEPROM Address
            CALL   #EEPROM_ByteWrite
            CALL   #EEPROM_AckPolling ; Wait for EEPROM write cycle completion

            MOV    #0001h,R12         ; EEPROM Address
            MOV.b  #034h,R14          ; Data that should be written into EEPROM Address
            CALL   #EEPROM_ByteWrite
            CALL   #EEPROM_AckPolling ; Wait for EEPROM write cycle completion

            MOV    #0002h,R12         ; EEPROM Address
            MOV.b  #056h,R14          ; Data that should be written into EEPROM Address
            CALL   #EEPROM_ByteWrite
            CALL   #EEPROM_AckPolling ; Wait for EEPROM write cycle completion

            MOV    #0003h,R12         ; EEPROM Address
            MOV.b  #078h,R14          ; Data that should be written into EEPROM Address
            CALL   #EEPROM_ByteWrite
            CALL   #EEPROM_AckPolling ; Wait for EEPROM write cycle completion

            MOV    #0004h,R12         ; EEPROM Address
            MOV.b  #09Ah,R14          ; Data that should be written into EEPROM Address
            CALL   #EEPROM_ByteWrite
            CALL   #EEPROM_AckPolling ; Wait for EEPROM write cycle completion

            MOV    #0005h,R12         ; EEPROM Address
            MOV.b  #0BCh,R14          ; Data that should be written into EEPROM Address
            CALL   #EEPROM_ByteWrite
            CALL   #EEPROM_AckPolling ; Wait for EEPROM write cycle completion

            NOP

            MOV    #0000h,R12                  ; define EEPROM Address
            CALL   #EEPROM_RandomRead          ; Read from address 0x0000
            MOV.b  R12,Data+0

            CALL   #EEPROM_CurrentAddressRead  ; Read from address 0x0001
            MOV.b  R12,Data+1

            CALL   #EEPROM_CurrentAddressRead  ; Read from address 0x0002
            MOV.b  R12,Data+2

            CALL   #EEPROM_CurrentAddressRead  ; Read from address 0x0003
            MOV.b  R12,Data+3

            CALL   #EEPROM_CurrentAddressRead  ; Read from address 0x0004
            MOV.b  R12,Data+4

            CALL   #EEPROM_CurrentAddressRead  ; Read from address 0x0005
            MOV.b  R12,Data+5

MainLoop
            JMP    MainLoop

            COMMON  INTVEC
            ORG     RESET_VECTOR
            DW      main

            end

⌨️ 快捷键说明

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