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

📄 lsd-test430f5438-01-port1.s43

📁 MSP430单片机的简单I/O口控制,按P2.6红灯亮,按.7绿灯亮
💻 S43
字号:
/*************************************************
** 版权:   杭州利尔达科技有限公司
** 文件名: LSD-TEST430F5438-01-PORT1.S43
** 版本:  IAR 4。11
** 工作环境: 
** 作者:   杨超超
** 生成日期:2008年9月27
** 功能:     利用P2.6 P2.7 控制 LED1 LED2 亮灭  
** 相关文件: LSD-TEST430F5438-01  V1.0
** 修改日志    MSP430F5438
//             -----------------
//         /|\|              XIN|-
//          | |                 | 32kHz
//          --|RST          XOUT|-
//            |                 |
//     LED1  -|P1.0         P2.7|-->
//     LED2- -|P1.1         P2.6|--> port2-vector

**相关说明:   1.P3-P11 PJ 有6个寄存器配置 PXIN PXOUT PXDIR PXREN PXDS PXSEL
                P1-P2  有10个寄存器配置  PXIN PXOUT PXDIR PXREN PXDS PXSEL PXIE PXIFG PXIES PXIV 
             2.其中只有P1,P2 具有端口中断能力。P1 P2均是多元中断,因此引入P1IV P2IV ,各引脚中断只有访问对应PXIV后才可以进行
             自动清除中断标志位。否则就不能清除中断标志,就会反复进入中断程序。当然可以软件清除在不访问PXIV
             3,P2IV值给R15 单部执行不能看出,需要全速执行
*************************************************************/
#include  "msp430x54x.h"

                 
                 ORG  5C00H 
                 
RESET       MOV     #5C00H,SP                         ; 初始化堆栈
            MOV     #WDTPW + WDTHOLD,&WDTCTL          ; 停止看们狗    
            BIC.B   #BIT6 + BIT7,&P2DIR               ;P2.7 P2.6 输入
            BIS.B   #BIT0 + BIT1,&P1DIR               ; P1.1 P1.0输输出
            BIS.B   #BIT6 + BIT7,&P2REN               ;上拉下拉电阻使能
            BIS.B   #BIT6 + BIT7,&P2OUT               ;P2.6 P2.7 为上拉
            BIS.B   #BIT6 + BIT7,&P2IES               ;P2.6 P2.7下降触发
            BIS.B   #BIT6 + BIT7,&P2IE                ;P2.6 P2.7下中断使能
            MOV.B   #00H,&P2IFG                       ;中断标志清除,防止配置过程中出现中断标志为1
            EINT                                      ;开总中断
            BIS     #LPM4,SR                          ;进低功耗4


;----------------------------------------------------------------------------
PORT2                     ;  断口中断
;----------------------------------------------------------------------------
           PUSH.W   R15 
           MOV.W    &P2IV,R15                         ;将中断向量字保存到R15中
           SUB.W    #0EH,R15                          ;比较是否为p2.6中断
           JEQ      P26_ISR                           ;是就执行P2。6程序  
           DECD     R15                               ; 不是就减2
           JEQ      P27_ISR                           ;是P2。7 中断就执行对应程序
           JMP      EXIT_POP                          ;否则退出
P26_ISR    XOR.B    #BIT0,&P1OUT                      ;LED2 闪烁
           JMP      EXIT_POP                          ;执行退出流程  
P27_ISR    XOR.B    #BIT1,&P1OUT                      ;LED2 闪烁
EXIT_POP   POP      R15                               ;出栈R15
           RETI                                       ;退出中断程序
;-------------------------------------------------------------------------------
                       COMMON  INTVEC ; 中断向量                
;-------------------------------------------------------------------------------
          
          ORG     PORT2_VECTOR
          DW      PORT2
          ORG     RESET_VECTOR                        
          DW      RESET
          END 

⌨️ 快捷键说明

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