MSP430单片机中断的定义及原理

MSP430单片机中断的定义及原理
430的中断是按照下图1的优先级顺序定义的,有三种中断:1.系统重置、2.不可屏蔽中断(NMI)、3.可屏蔽中断。

图1.中断优先级
部分具体的中断优先级由高到低为:
PORT2_VECTOR (1 * 2u)/* 0xFFE2 Port 2 */
PORT1_VECTOR (4 * 2u)/* 0xFFE8 Port 1 */
TIMERA1_VECTOR (5 * 2u)/* 0xFFEA TImer A CC1-2,TA */
TIMERA0_VECTOR (6 * 2u)/* 0xFFEC TImer A CC0 */
ADC_VECTOR (7 * 2u)/* 0xFFEE ADC */
USART0TX_VECTOR (8 * 2u)/* 0xFFF0 USART 0 Transmit */
USART0RX_VECTOR (9 * 2u)/* 0xFFF2 USART 0 Receive */
WDT_VECTOR (10 * 2u)/* 0xFFF4 Watchdog TImer */
COMPARATORA_VECTOR (11 * 2u)/* 0xFFF6 Comparator A */
TIMERB1_VECTOR (12 * 2u)/* 0xFFF8 Timer B CC1-2,TB */
TIMERB0_VECTOR (13 * 2u)/* 0xFFFA Timer B CC0 */
NMI_VECTOR (14 * 2u)/* 0xFFFC Non-maska××e */
RESET_VECTOR (15 * 2u)/* 0xFFFE Reset [Highest Priority]*/
其中可屏蔽中断分为系统NMI(SNMI)和用户NMI(UNMI),一般来说,不可屏蔽中断不受GIE标志位的影响。

用户不可屏蔽中断的中断源为NMIIE、ACCIE和OFIE,当响应用户不可屏蔽中断后,其他不可屏蔽中断就自动被禁止,以防止同级别的中断发生产生中断嵌套。

当同时有多个中断来的时候才有优先级的考虑(优先级顺序可查看向量表)。

有中断响应以后自动关闭总中断,这个时候即使来更高优先级的中断都不会响应。

要中断嵌套的话,就必须在中断中打开总中断。

合集下载

430中断总结

430中断总结

MSP430的中断分为3种:1.系统复位、2.非屏蔽中断、3.可屏蔽中断。

系统复位指向中断向量表(表3-11)的最高地址0xFFFE。

非屏蔽中断和可屏蔽中断根据能否被SR寄存器中的全局中断使能位GIE禁用来区分,非屏蔽中断不受GIE的控制,具备独立的中断使能;可屏蔽中断除了受本身的中断使能控制,还接受GIE控制。

1. 在MSP430中@非屏蔽中断主要有3个,分别是来自MSP430外部管脚NMI的触发FLASH非法访问振荡器错误非屏蔽中断都指向中断向量表中的0xFFFC地址。

2. MSP430具备大量的@可屏蔽中断,定时器、ADC、DMA、UART、WDT、I/O、比较器等都具备中断功能。

不同的可屏蔽中断优先级可根据中断向量表决定。

可屏蔽中断的中断向量表从0xFFFA地址开始向低地址扩展,地址越高的中断向量表所对应的中断优先级越高。

3. 每个中断向量在中断向量表里面占据一个2Byte空间的表项,这个2Byte的空间用来存储对应中断服务函数的首地址,CPU根据中断向量表里的地址跳转到中断服务函数。

仔细观察中断向量表可以看到,一些中断向量对应于多个中断源。

例如,地址为0xFFF8的Timer1_A3中断,当TA1CCR1中断标志位CCIFG置位或者TAIFG置位都会跳转到该向量。

又如具备中断功能的P1和P2端口,端口中的任意一个管脚发生中断都会跳转到对应的中断向量。

这种中断就叫做多源中断。

对于多源中断,中断源中任意一个中断发生都会跳转到公用的中断向量表项,这个时候需要通过中断标志位区别具体的中断源。

有了这些中断向量表的基础知识,下面介绍中断的处理过程,包括中断的接收和退出过程。

4. 微控制器使用过程中一些突发的程序跑飞问题,很多时候都是由于没有正确地处理中断造成的。

5. 中断发生的先决条件是对应中断使能位使能,@非屏蔽中断要求其独立的中断使能开启;@可屏蔽中断要求全局中断使能和自身中断使能同时开启。

6. 当中断请求到达,CPU从接受中断请求到开始执行中断服务函数的第一条指令需要5~6个CPU周期。

msp430按键中断_V1.01

msp430按键中断_V1.01
中断分类
• 软件中断(内中断) • 硬件中断(外中断)
• 非屏蔽中断 • 可屏蔽中断
4
开启总中断
5
中断响应和中断处理流程
当CPU收到中断或者异常的 信号时,它会暂停执行当前的程 序或任务,通过一定的机制跳转 到负责处理这个信号的相关处理 程序中,在完成对这个信号的处 理后再跳回到刚才被打断的程序 或任务中。
14
I/O中断实列
这是一个利用中断控制LED的亮灭实验,初始时LED常亮,按下按键,LED亮灭切换
15
IO 外部中断使用方法
高级单片机的全部 IO 口都带外部中断功能,MSP430 单片机要使用外部中断,遵 循以下步骤:
1) 通过 PxDIR 将 IO 方向设为输入。 2) 通过写 PxIES,决定中断的边沿是上升沿、下降沿或两种情况均中断。 3) 如果是机械按键输入,可以通过 PxREN 启用内部上下拉电阻,根据按键 的接法,设
7
MSP430中的中断系统
这是一个用户手册
8
MSP430F6638的P1到 P4都具有中断的功能
翻到msp430f6 638_Datasheet 第6章表6.3
9
中断嵌套
如果在中断服务子程中置位GIE(开全局中断),则允许 中断嵌套。 在允许中断嵌套的情况下,任何中断请求均将中断正在 执行的中断服务子程序,而不管中断的优先级如何。 (中断优先级仅用于裁决同时产生的中断请求)
CPU执行流程 中断申请
set GIE
中断子程序1
中断子程序2
10
I/O寄存器
使用实列:
P2DIR |= BIT7; //设P2.7为输出 P2DIR为方向寄存器,输出为1,输入为0. P2OUT |= BIT7; //初始化P2.7为高电平 P2OUT是输出数据寄存器,可控制管脚输出电平的高低,输出为

第2讲MSP430单片机的GPIO与中断系统

第2讲MSP430单片机的GPIO与中断系统

4.2 MSP430单片机中断源
MSP430单片机的中断向量表被安排在0FFFFH~0FF80H空间,具有最大64个中断源。表4.2.1为MSP430单
片机的中断向量表。
中断源 系统复位 系统不可屏蔽中断 用户不可屏蔽中断 比较器B TB0 TB0 看门狗定时器 USCI A0 接收/发送 USCI B0 接收/发送 ADC12_A TA0 TA0 USB_UBM DMA TA1 TA1 P1端口 USCI_A1 接收/发送 USCI_B1 接收/发送 TA2 TA2 P2端口 RTC_A 保留
I/O端口还具有其他片内外设功能,为减少引脚,将这 些外设功能与I/O端口引脚复用来实现。 PxSEL来选择引脚的I/O端口功能与外围模块功能。 PxSEL的配置: Bit = 0: 选择引脚为I/O端口; Bit = 1: 选择引脚为外设功能。
2015/8/7
12
GPIO 寄存器(6/9)
1
3.1 通用IO端口
3.1.1 MSP430端口概述 GPIO (General Purpose I/O),通用输入输出端口。 GPIO基本都是用于芯片与片外器件或设备的交互。 检测数字输入,如键盘或开关信号; 驱动LED,蜂鸣器或LCD等其他指示器; 控制片外器件,较高级的使用可以用它们(通过 程序)模拟很多器件的时序达到控制相应器件的 目的,比如模拟SPI和模拟总线等。
2015/8/7
16
4.1 中断的基本概念
1.中断定义 中断是暂停CPU正在运行的程序,转去执行相应的中断服务程序,完毕后返回被中断 的程序继续运行的现象和技术。 2.中断源 把引起中断的原因或者能够发出中断请求的信号源统称为中断源。中断首先需要由中 断源发出中断请求,并征得系统允许后才会发生。在转去执行中断服务程序前,程序需 保护中断现场;在执行完中断服务程序后,应恢复中断现场。 中断源一般分成两类:外部硬件中断源和内部软件中断源。外部硬件中断源包括可屏蔽 中断和不可屏蔽中断。内部软件中断源产生于单片机内部,主要有以下3种:①由CPU运 行结果产生;②执行中断指令INT3;③使用DEBUG中单步或断点设置引起。

msp430中断定时器.概要

msp430中断定时器.概要

}
P1口的中断向量 #pragma vector = PORT1_VECTOR//定时器TA中 断服务函数 __interrupt void PORT1_ISR(void) { …… }
#define COMPARATORA_VECTOR #define TIMER1_A1_VECTOR #define TIMER1_A0_VECTOR #define NMI_VECTOR
(12 * 1u) (13 * 1u)
(14 * 1u)
#define RESET_VECTOR
(15 * 1u)
2019/1/21
中断优先级是固定的并且由图 2-3中显示的连接链中的 模块安排来定义。 距离 CPU/NMIRS 越近的模块, 其 优先级越高。中断优先级确定当多于一个中断在同时等 待时,采用哪一个中断。
中断有三个类型: • 系统复位 • 不可屏蔽 NMI
• 可屏蔽(我们重点学习)
2019/1/21
中断矢量和加电起动地址位于地址范围 0FFFFh 至 0FFC0h 内,与表 2-1中描述的相同。 一个矢量由用 户使用相应中断处理例程的 16 位地址进行编辑。 完 整中断矢量列表请参与器件专用数据表。
建议为每个分配给一个模块的中断矢量提供一个中断处 理例程。 包含 RETI指
令,并且几个中断矢量可指向它。
2019/1/21
中断
1、中断定义 CPU在执行一个程序时,对系统发生的某个事件(程序自身或外 界的原因)作出的一种反应:CPU暂停正在执行的程序,保留现 场后自动转去处理相应的事件,处理完该事件后,到适当的时候 返回断点,继续完成被打断的程序。(如有必要,被中断的程序 可以在后来某时间恢复,继续执行。) 事件:如读盘,盘有问题,无法读,产生中断,解决后,程序恢 复,软件错误也会中断。 特点: 1) 中断随机的 2) 中断是可恢复的 3) 中断是自动进行处理的 单片机中断的简单应用:按键中断控制小灯亮灭

430单片机之中断

430单片机之中断

MSP430单片机之中断服务430的中断是按照下图1的优先级顺序定义的,有三种中断:1.系统重置、2.不可屏蔽中断(NMI)、3.可屏蔽中断。

图1.中断优先级部分具体的中断优先级由高到低为:PORT2_VECTOR (1 * 2u) /* 0xFFE2 Port 2 */PORT1_VECTOR (4 * 2u) /* 0xFFE8 Port 1 */TIMERA1_VECTOR (5 * 2u) /* 0xFFEA Timer A CC1-2, TA */TIMERA0_VECTOR (6 * 2u) /* 0xFFEC Timer A CC0 */ADC_VECTOR (7 * 2u) /* 0xFFEE ADC */USART0TX_VECTOR (8 * 2u) /* 0xFFF0 USART 0 Transmit */USART0RX_VECTOR (9 * 2u) /* 0xFFF2 USART 0 Receive */WDT_VECTOR (10 * 2u) /* 0xFFF4 Watchdog Timer */COMPARATORA_VECTOR (11 * 2u) /* 0xFFF6 Comparator A */TIMERB1_VECTOR (12 * 2u) /* 0xFFF8 Timer B CC1-2, TB */TIMERB0_VECTOR (13 * 2u) /* 0xFFFA Timer B CC0 */NMI_VECTOR (14 * 2u) /* 0xFFFC Non-maska××e */RESET_VECTOR (15 * 2u) /* 0xFFFE Reset [Highest Priority] */其中可屏蔽中断分为系统NMI(SNMI)和用户NMI(UNMI),一般来说,不可屏蔽中断不受GIE标志位的影响。

用户不可屏蔽中断的中断源为NMIIE、ACCIE和OFIE,当响应用户不可屏蔽中断后,其他不可屏蔽中断就自动被禁止,以防止同级别的中断发生产生中断嵌套。

单片机MSP430 - Timer_A 定时器中断程序

单片机MSP430 - Timer_A 定时器中断程序

单片机MSP430 - Timer_A 定时器中断程序一、利用定时器定时功能,实现定时器单个溢出中断,实现P3.0 方波输出#include “cc430x613x.h”void main(){WDTCTL = WDTPW + WDTHOLD; // 停止看门狗定时器P3DIR |= 0x04; // P3 口初始化,设置为输出模式TA0CCR0 = 32768; // 定义中断计数周期1s,时钟频率为32.768MHZ,32768 / 32768 = 1sTA0CCTL0 = CCIE; // TA0CCR0 捕获/比较中断寄存器中断使能TA0CTL = TASSEL_1 + MC_1 + TACLR; // TASSEL_1,ACLK 时钟源MC_1,增计数模式_BIS_SR(LPM3_bits + GIE); // 进入LPM3 低功耗模式,开启总中断}#pragma vector = TIMER0_A0_VECTOR__interrupt void Timer_A(void) // 定时器中断触发,P3 输出口异或,电平翻转{P3OUT – 0x04;二、利用定时器定时功能,实现定时器多个溢出,对应产生多个中断,实现P3.0 输出#include “cc430x613x.h”void main(){WDTCTL = WDTPW + WDTHOLD; // 停止看门狗定时器P3DIR |= 0x04; // P3 口初始化,设置为输出模式TA0CCR0 = 32768; // 定义中断计数周期1s,时钟频率为32.768MHZ,32768 / 32768 = 1sTA0CCTL0 = CCIE; // TA0CCR0 捕获/比较中断寄存器中断使能TA0CCR1 = 3276; // 定义中断溢出周期100msTA0CCTL1 = CCIE; // TA0CCR0 捕获/比较中断寄存器中断使能TA0CTL = TASSEL_1 + MC_1 + TACLR; // TASSEL_1,ACLK 时钟源MC_1,增计数模式_BIS_SR(LPM3_bits + GIE); // 进入LPM3 低功耗模式,开启总中断}#pragma vector = TIMER0_A0_VECTOR__interrupt void Timer_A(void) // 1s 溢出中断P3OUT = ~0x04;}#pragma vector = TIMER0_A1_VECTOR__interrupt void Timer_A1(void) // 100ms 溢出中断{switch(TA0IV){case 2:P3OUT = 0x04;break;case 4:break;case 10:break;}}tips:感谢大家的阅读,本文由我司收集整编。

MSP430单片机原理与应用


TI公司已拥有超过400种的MSP430单片机的芯片。这些芯片在很多领域取得了广泛的应用。
读者对MSP430单片机具有了初步的了解和认识,从而为以后章节的学习打下良好的基础。
MSP430单片机原理与应用
第2章 MSP430单片机软件工程开发基础
MSP430单片机的CPU属于RISC(精简指令集)处理器,RISC处理器基本上是为高级语 言所设计的,因为精简指令系统很大程度上降低了编译器的设计难度,有利于产生高效紧 凑的代码。初学者完全可以在不深入了解汇编指令系统的情况下,直接开始C语言的学习。 本章介绍MSP430单片机软件工程的开发基础,主要讲解MSP430单片机C语言编程基础、 MSP430单片机的软件编程方法及软件集成开发环境的基本操作。通过本章的讲解,旨在 使读者对MSP430单片机的编程思想有一定的了解。
2.1
2.2 2.3
MSP430单片机C语言基础
MSP430单片机软件工程基础
MSP430单片机软件开发集成环境CCSv5
2.1 MSP430单片机C语言基础
2.1.1 标识符和关键字
1.标识符 标识符用来标识程序中某个对象的名字,这些对象可以是语句、数据类型、函数、变 量、常量、数组等。标识符的第一个字符必须是字母或下划线,随后的字符必须是字母、 数字或下划线。例如,count_data、text2是正确形式,而2count是错误形式。 C语言对大小写字符敏感,所以在编写程序时要注意大小写字符的区别。例如,对于 sec和SEC这两个标识符来说,C语言会认为它们是两个完全不同的标识符。
要配置少量的外围器件,就可满足一般应用的要求。为了使读者对MSP430单片机有一个
初步的认识和了解,本章首先介绍MSP430单片机的发展历史及应用,然后叙述MSP430单 片机具有的特点及优势,最后简要介绍MSP430单片机的应用选型。

430入门之中断

很多人刚刚接触单片机的时候都对中断不是很理解,或者是说对单片机的运行机制不是很理解,比如说为什么要在main函数里面加一个while(1)?那样的话岂不是程序卡死了吗?那么中断函数又是什么时候执行呢?小编刚开始也是这样懵懵懂懂的过来,直到最近二刷单片机,才有了一个比较清晰地理解,此处就以MSP430F6638为例,讲解单片机基本的运行机制和本帅气的小编对中断一些浅显的理解(高手勿喷)首先是运行机制,啥话不说,先上代码Main函数一般来说,都是由这三部分组成。

1、关狗(如无意外,一般都关狗);2、初始化各种东西,配置各种管脚(不同程序不一样,具体问题具体分析);3、while(1)循环,有一定编程基础的人都知道,程序是从主函数处开始执行,执行完主函数也就退出程序了,但是我们玩单片机肯定不能让他就这样退出了啊,所以这里加一个死循环,乖乖的卡死在这里吧。

那么有人会问了,程序卡死在这里,我怎么做其他操作啊,这里就不得不提到一个十分好用的东西了——中断,只有了解了中断机制,才能66地玩单片机啊。

好了,基本的运行框架大概就是这么多,下面就稍微讲解一下中断机制。

首先就是中断的分类,根据引起中断的原因,中断一般可以分为按键中断,定时器中断,看门狗中断(其实也是一种定时器中断)。

其次就是什么时候会进入中断函数,定时器中断会在计数溢出的时候进入中断函数,而按键中断则会在检测到下降沿或者是上升沿时候进入中断(看你怎么设置),以下以按键中断为例,讲解一下中断,啥也不说,上代码。

首先是按键的配置,先查阅原理图,弄清楚按键对应的是哪个管脚,然后根据下面代码和注释自行配置。

比如说6638,查阅原理图可知按键有这些管脚,随便选一个进行配置。

其次就是中断函数,每当程序检测到上升沿的时候(无论此时程序执行到哪里),都会进入到中断函数,而执行完中断函数之后程序又会回到刚刚执行到的地方(所以说中断里面千万不能放死循环啊,不然就真的卡死了……)来人,呈上代码。

Msp430f5529时钟系统与定时器以及中断

在MCU中,无论是定时功能还是计数功能,实 际上都是由n位(8位、16位、32位等)的加法/减 法计数器实现,区别仅在于计数输入信号的不同 。
一般地讲,计数器的计数输入信号是外部事 件(脉冲信号),而定时器的计数输入信号则是 MCU中的时钟信号或经过分频后的时钟信号。
MSP430F5529定时器分为看门狗定时器、定时 器A和定时器B。
00: stop mode 01: up mode 10: continuous mode 11: up/down mode
1: interrupt pending
1: TA interrupt enabled
1: reset TAR ,clock divider and count direction for up/down mode. The TACLR bit is automatically reset and is always read as zero.
定时器 A 的四种计数方式(Count Mode)
MCx count mode
0 0: stop mode 0 1: up mode 1 0: continuous mode 1 1: up/down mode
Mode Control
Stop mode : the timer is halted
中断响应过程
1. 当前指令执行完毕,且满足响应条件; 2. 入栈保护断点:相当于执行 PUSH PC; 3. 入栈保护SR:相当于执行 PUSH SR; 4. 优先级裁决:若有多个中断同时请求,则CPU选
择优先级最高的中断请求进行响应; 5. 中断请求标志的处理:对于单一中断标志的中断
源请求,则由CPU自动清零该中断标志;对于有 多个中断标志的中断源请求,则中断标志的清零 处理交由中断服务子程完成(以便于中断服务子 程区分本次中断到底是由哪一个/哪些中断标志 请求的); 6. 清零SR(关中断,结束低功耗方式); 7. 装载中断向量至PC,转去执行中断服务子程。

MSP430并行数字输入输出端口中断的使用_6

第6章并行数字输入输出端口中断的使用——按键电路的设计目标通过本章的学习,应掌握以下知识●中断的概念和工作过程●MSP430微控制器芯片支持的中断类型●Embedded Workbench for MSP430开发软件的中断服务程序结构●按键开关●独立式键盘的原理电路●MSP430微控制器芯片的并行输入/输出端口涉及中断的相关寄存器●字节操作运算符●条件语句●多个数据的输入方法引言信号处理是电子线路的一项主要的工作。

处理信号必须具有一个被处理的对象,也就是需要使用某种方式将被处理的信号引入电路。

在数字系统中,键盘是一种常见的信息输入工具。

组成键盘的按键开关具有两种工作状态,因此通过按键开关的断开,或者接通,就能够完成数字量0,或者1,两种取值的输入。

组成电路以后,按键开关的断开和接通可以用高电平和低电平这2种数字电路的工作状态反映出来。

这样将按键电路与MSP430微控制器芯片的输入/输出管脚连接起来,通过读取管脚的状态就能够判断按键开关是否动作,从而接收外部输入的信息。

按键开关组成键盘的电路形式常用的有独立式键盘电路和矩阵式键盘电路两种。

独立式键盘电路无论电路结构,还是它的识别程序结构,都比较简单。

矩阵式键盘电路的优点是对微控制器芯片的输入/输出管脚的占用数量较少。

作为一本入门书籍,本章只涉及独立式键盘电路。

键盘电路的处理时间只占用微控制器工作时间非常少的部分,同时键盘的使用还是随机的,这样让微控制器不断地读取按键的工作状态,显然降低了系统对信号的处理速度。

中断的概念非常适合按键工作状态的识别。

16.1按键开关当需要向微控制器传送命令,或者输入数据时,键盘通常被使用。

键盘是一组按键开关的集合。

像数码管一样,键盘也是应用系统的一个重要组成部分。

按键开关具有2个状态,闭合或者断开。

组成合适的电路,这2个状态反映在电压上就是按键开关分别呈现出高电平,或者低电平。

在数字电路中,这两个电平分别用来表示数据1,或者0。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档