访问电脑版页面

导航:老古开发网手机版51单片机51单片机中断系统

51单片机NVIC中断控制设计

导读:
关键字:
中断向量,NVIC,51单片机,

对于NVIC的任务,可以概括为三个:

1.配置中断向量表--如果不配置,则不能进入中断 SCB-》VTOR

2.配置系统中断分组--决定了第一和第二优先级各占用的位数 SCB-》AIRCR

3.配置对应中断优先级和使能中断--中断使能 ISER[0/1] 中断优先级IPR[0:15]

只要按照这样配置,就可以使用中断了

1 /******************************************************

2 *函数: NVIC_Group(u8 group)

3 *功能: 设置中断分组

4 *参数: group-对应分组号 0~4 共5组

5 *返回: 无

6 ******************************************************/

7 void NVIC_Group(u8 group)//设置中断优先级分组寄存器

8 {

9

10 u32 temp,temp1;

11 //设置中断向量表,这里不配置会导致不能进入中断

12 SCB-》VTOR = NVIC_VectTab_FLASH;

13 temp1=(~group)&0x07;//取后三位

14 temp1《《=8;

15 temp=SCB-》AIRCR; //读取先前的设置

16 temp&=0X0000F8FF; //清空先前分组

17 temp|=0X05FA0000; //写入钥匙

18 temp|=temp1;

19 SCB-》AIRCR=temp; //设置分组 寄存器地址0xe000ed00c 可以看cortex m3权威指南

20 }

21

22

23 /******************************************************

24 *函数: NVIC_Irq_Config(u8 irq,u8 priority)

25 *功能: 设置中断irq中断优先级

26 *参数: irq--中断号

27 priority--中断优先级,4位有效

28 0组0:4 1组1:3 2组2:2 3组3:1 4组4:0

29 有规律的,不难设置,例如组2,想用第一优先级1,第二优先级2,则priority=0110B=0x6

30 *返回: 无

31 ******************************************************/

32 void NVIC_Irq_Config(u8 irq,u8 priority)

33 {

34 u8 addr_en,offset_en;

35 u8 addr,offset;

36

37 addr=irq/4;

38 offset=irq%4;

39

40 addr_en=irq/32; //中断使能控制寄存器

41 offset_en=irq%32;//中断使能控制位

42

43 NVIC-》ISER[addr_en]|=1《

44 NVIC-》IPR[addr]=priority《《(offset*8+4);// (优先级设置)《《(offset*8+4);

45 }

来源:工程师周亮   作者:lhl545545  2018/12/12 15:09:00
栏目: [ 51单片机中断系统]

相关阅读

8051单片机是几位机_8051单片机共有几个中断源

51单片机中断优先级的设置方法解析

51单片机的中断方法以及对LED显示器的控制设计

AT89S51单片机扩充外部中断源系统的设计

51单片机中断服务子程序的设计

8051单片机定时器溢出中断与CPU响应中断的时间误差分析

80C51单片机中断的编程使用方法介绍

51单片机中断系统的重要性

C51单片机中断函数的修饰方法

MCS-51单片机定时中断的编程方法解析

MCS-51单片机定时中断不同应用情况

8051单片机中断系统结构及中断控制原理

MCS-51单片机中断响应的三种方法解析

51单片机外部中断请求源与内部中断请求源的用法解析

C51单片机中断函数的定义及应用

8051单片机定时器溢出中断误差补偿示例

C51单片机的中断号以及中断向量

如何设置51单片机的中断优先级

8051单片机的中断响应过程解析

51单片机中断用法实例解析