📄 lsd-test430f5438-01-port1.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 + -