msp430x21x1_pull-up.asm

来自「MSP430X11x1 Assembler Examples Code,Comp」· 汇编 代码 · 共 58 行

ASM
58
字号
;*****************************************************************************
;   MSP430x21x1 Demo - 21x1 Pull-up resistors demo
;
;   Description: This program demonstrates how to use the internal pull-ups
;   on the 21x1 device. P1.2 is configured for using the pull-up. P1.0
;   is configured as output to use the LED as an indicator. The P1.2 interrupt
;   is enabled and the device is put into LPM4. When P1.2 goes low, and
;   interrupt is generated and the P1_ISR executes. The ISR implements a
;   software debounce delay, toggles P1.0 and returns.
;   ACLK = n/a, MCLK = SMCLK = default DCO ~1.16MHz
;
;
;               MSP430F21x1
;            -----------------
;       /|\ |              XIN|-
;        |  |                 |
;        ---|RST          XOUT|-
;           |                 |
;           |             P1.2|---- \----
;           |                 |         |
;           |                 |        GND
;
;   H. Grewal / A. Dannenberg
;   Texas Instruments, Inc
;   July 2005
;   Built with Code Composer Essentials Version: 1.0
;******************************************************************************
 .cdecls C,LIST,  "msp430x21x1.h"
;------------------------------------------------------------------------------
            .text                           ;
;------------------------------------------------------------------------------
RESET       mov.w   #300h,SP                ; Initialize 'x1121 stackpointer
StopWDT     mov.w   #WDTPW+WDTHOLD,&WDTCTL  ; Stop WDT
SetupP1     bis.b   #001h,&P1DIR            ; P1.0 output
            mov.b   #04h,&P1REN             ; Enable resistor on P1.2
            mov.b   #04h,&P1OUT             ; Select pull-up
            mov.b   #04h,&P1IE              ; Enable interrupt
            clr.b   &P1IFG                  ; Clear IFG
            mov.w   #LPM4+GIE,SR            ; Enable interrupts, LPM4
;-----------------------------------------------------------------------------
P1_ISR;     Toggle P1.0 Output
;-----------------------------------------------------------------------------
Wait        mov.w   #01FFFh,R15             ; Delay to R15
L1          dec.w   R15                     ; Decrement R15
            jnz     L1                      ; Delay over?
            xor.b   #001h,&P1OUT            ; P1.0 = toggle
            clr.b   &P1IFG                  ; IFG Cleared
            reti                            ; Return from ISR

;-----------------------------------------------------------------------------
;           Interrupt Vectors Used MSP430
;-----------------------------------------------------------------------------
            .sect ".reset"                  ; MSP430 RESET Vector
            .short  RESET                   ;
            .sect ".int02"                  ; P1.x Vector
            .short  P1_ISR                  ;
            .end

⌨️ 快捷键说明

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