5.5 外部中断扩展方法
- 格式:ppt
- 大小:201.50 KB
- 文档页数:5
实验5 外部IO中断和外扩RAM使用1.实验目的收悉GPIO的各个存器,学会如何通过程序语言配置GPIO的输入输出属性和中断的各种属性,以及通过程序语言将变量及程序放入外扩的RAM中。
2.实验主要内容(1)在CCS软件中,用C语言编写程序进行GPIO的输入输出控制,以及中断的配置,达到通过外部IO中断开启定时器中断的效果。
(2)在CCS软件中,用C语言编写程序进行外扩RAM的控制,后通过cmd文件的修改使得程序和变量放入外扩RAM的地址内。
3.实验基本原理(1)GPIO操作实验GPIO的主要寄存器包括GPIO复用寄存器(GPxMUXn)、GPIO限制控制寄存器(GPACTRL、GPBCTRL)、GPIO限制选择寄存器(GPxQSELn)、GPIO方向寄存器(GPxDIR)、GPIO上拉禁用寄存器(GPxPUD)、GPIO数据寄存器(GPxDAT)、GPIO 置位、清零、翻转寄存器(GPxSET、GPxCLEAR、GPxTOGGLE)、GPIO外部中断源选择寄存器(GPIOXINTnSEL和GPIOXNMISEL)、GPIO低功耗唤醒源选择寄存器(GPIOLPMSEL)。
对上述寄存器中特定寄存器的特定位进行赋值后,可以做到GPIO输入输出属性的配置及中断引脚、中断条件的配置等。
若需用I/O口作为外部中断源的输入引脚,则需配置GPIOINTxSEL和GPIOXNMISEL寄存器来指定I/O口。
(2)外扩RAM使用实验XINTF模块用到了两个时钟:XTIMCLK和XCLKOUT,图给出了这两个时钟和CPU时钟SYSCLKOUT的关系。
对XINTF区域的访问都是基于内部XINTF时钟(XTIMCLK)。
配置XINTF时,用户必须配置内部时钟XTIMCLK与SYSCLKOUT的比率关系。
通过配置XINTCNF2寄存器,可以将XTIMCLK频率设置成等于SYSCLKOUT或SYSCLKOUT的1/2。
XINTF寄存器包括XINTF时序寄存器(XTIMING0/6/7)、XINTF配置寄存器(XINTCNF2)、XBANK寄存器(XBANK)、XRESET寄存器(XRESET)等,对外部RAM的配置基于以上对寄存器的操作来进行。
单片机外中断的扩展及其多优先级软件实现方法李家宝;郑晓红;王团部【摘要】针对MCS-51系列单片机只有2个外中断和2个中断优先级的问题,介绍了外中断的3种扩展方法,同时给出了每种扩展下利用软件对中断优先级进行扩展的程序,该方法可用于需要多个外中断、多级中断嵌套的应用系统.【期刊名称】《现代电子技术》【年(卷),期】2006(029)017【总页数】4页(P140-143)【关键词】单片机;中断;优先级;扩展【作者】李家宝;郑晓红;王团部【作者单位】西安通信学院,陕西,西安,710106;西安通信学院,陕西,西安,710106;西安通信学院,陕西,西安,710106【正文语种】中文【中图分类】TP3111 引言在一些实时、并发系统中,中断是有效的实现手段。
而MCS-51系列单片机(以8051为例)的中断系统有5个中断源,其中只有2个外部中断,2个中断优先级,可实现2级中断嵌套。
但在实际的应用系统中,外部中断事件往往有多个,需要多个中断优先级来实现多级中断嵌套,8051单片机自身的中断系统不能满足要求,需要对外部中断源和中断优先级进行扩展。
本文提出了3种简单的外中断扩展方法,同时给出了中断优先级的扩展程序。
2 内部中断源变换法2.1 内部中断源变换为外部中断源我们知道,8051单片机除了个外中断源外,还有2个定时/计数器T0,T1和串行口中断。
在一些系统中,如果内部定时/计数器T0,T1和串行口中断不用或有富余,可利用他们来实现外中断扩展。
(1) 定时/计数器扩展为外中断源当8051的定时/计数器选择为计数器工作方式时,T0(P3.4)或T1(P3.5)引脚上发生的负跳变将使T0,T1的计数值加1。
利用这个特性,可以把T0(P3.4),T1(P3.5)作为外部中断输入线,将计数器的初值置为#0FFH。
这样只要在计数端接收一个外部中断请求信号的输入脉冲就可以产生计数溢出中断,而原定时器的溢出中断处理程序改为外部中断处理程序,就实现了外中断。
外部中断扩展课程设计一、教学目标本课程的学习目标包括以下三个方面:1.知识目标:学生需要掌握外部中断的基本概念、原因、类型和处理方法,以及外部中断对计算机系统的影响。
2.技能目标:学生能够运用外部中断的相关知识,分析和解决实际问题,如编写程序处理外部中断,优化系统性能等。
3.情感态度价值观目标:培养学生对计算机系统的兴趣和好奇心,提高学生对外部中断问题的敏感度和责任感,培养学生的创新精神和团队合作意识。
二、教学内容本课程的教学内容主要包括以下几个部分:1.外部中断的基本概念和原因:介绍外部中断的定义、产生原因和作用机制。
2.外部中断的类型和处理方法:介绍不同类型的外部中断及其处理方法,如硬件中断、软件中断等。
3.外部中断对计算机系统的影响:分析外部中断对计算机系统性能、稳定性的影响,以及如何优化系统性能。
4.外部中断的实际应用案例:分析实际应用场景中的外部中断问题,如网络中断、硬件故障等,并给出解决方案。
三、教学方法为了提高教学效果,本课程将采用以下几种教学方法:1.讲授法:教师讲解外部中断的基本概念、原因、类型和处理方法。
2.讨论法:学生分组讨论外部中断的实际应用案例,分享解决方案和心得体会。
3.案例分析法:分析具体的外部中断案例,让学生深入了解外部中断的产生原因和处理方法。
4.实验法:学生动手进行实验,编写程序处理外部中断,提高实际操作能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用权威、实用的教材,详细介绍外部中断的相关知识。
2.参考书:提供相关的参考书籍,丰富学生的知识体系。
3.多媒体资料:制作精美的PPT、教学视频等,提高学生的学习兴趣。
4.实验设备:准备计算机、网络设备等实验器材,让学生进行实际操作。
五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:评估学生的课堂参与度、提问回答、小组讨论等,占总分的30%。
2.作业:布置适量的作业,评估学生的理解和应用能力,占总分的20%。
作业解答:5.3定时器:外部中断源的扩展当CPU检测到INTO的中断请求信号时,由P1口查询判断中断源,点亮相应发光二极管。
#include<reg52.h>sbit P1_0=P1^0;sbit P1_1=P1^1;sbit P1_2=P1^2;sbit P1_3=P1^3;sbit P1_4=P1^4;sbit P1_5=P1^5;sbit P1_6=P1^6;sbit P1_7=P1^7;unsigned interrupt_flag[4]={0};//由于51单片机只支持外部低电平捕获货下降沿捕获,进入中断时有一个反向,所以只需要判断输入信号是否为高电平//若为高电平则电量对应灯(低电平点亮)void main(){P1_4=1;P1_5=1;P1_6=1;P1_7=1;while(1){//判断引脚是否有过低电平if(P1_0==0){interrupt_flag[0]=1;}if(P1_1==0){interrupt_flag[1]=1;}if(P1_2==0){interrupt_flag[2]=1;}if(P1_3==0){interrupt_flag[3]=1;}//如果前面出现低电平现在是高电平则为发生中断if(P1_0==1&&interrupt_flag[0]=1){P1_4=~P1_4;//发生一次中断翻转interrupt_flag[0]=0;}if(P1_1==1&&interrupt_flag[1]=1){P1_5=~P1_5;interrupt_flag[1]=0;}if(P1_2==1&&interrupt_flag[2]=1){P1_6=~P1_6;interrupt_flag[2]=0;}if(P1_3==1&&interrupt_flag[3]=1){P1_7=~P1_7;interrupt_flag[3]=0;}}}IT文艺男成长就是从上大学前“自由自在,随心所欲”的心理状态逐渐转变为即将毕业的“我还是那个我,一切照旧”的意识形态,这绝对不是一句简单的话,没有这段经历,我未曾体会这话的份量。
51单片机扩展中断的四种方法
MCS—51 系列单片机内部只有两个外部中断源输入端,当外部中断源多于两个时
,就必须进行扩展,下面介绍两种简单的扩展方法:
一、采用硬件请求和软件查询的方法:
这种方法是:把各个中断源通过硬件“或非(高有效,如CD4002)”(与,低有效)门引入到单片机外部中断源输入
端(INT0 或INT1),同时再把外部中断源送到单片机的某个输入输出端口,这
样当外部中断时,通过“或非”(与)门引起单片机中断,在中断服务程序中再
通
过软件查询,进而转相应的中断服务程序。
显然,这种方法的中断优先级取决于
软件查询的次序。
其硬件连接和软件编程如下:
Void zhongduan (void) interrupt 0 using 3 //中断函数
{
EX0=0;//关中断
If(P0_0=1) { *****}//中断查询
If(P0_1=1) { *****}//中断查询
If(P0_2=1) { *****}//中断查询
EX0=1;开中断
}
二、用普通二极管构成中断选择。
外部中断编程方法总结(必备3篇)
外部中断编程方法总结第1篇
引脚配置浮空输入GPIO_Mode_IN_FLOATING(即端口什么都不接)
c文件:
h文件:
看框图和代码:(相关函数和结构体在文件里面)
1:打开输入线时钟,选择输入线,函数:GPIO_EXTILineConfig(去到函数原型查看参数选择对应参数)
2:配置EXIT_InitStruct结构体,具体配置看代码注解
具体函数和结构体在里面
1、配置分组
2、配置结构体NVIC_InitTypeDef
3、结构体的在里面找
1、在配置好GPIO、EXIT和NVIC之后需要整合在一起,如下代码
3、中断函数写在里面,其命名规则在启动文件里面
外部中断编程方法总结第2篇
- 编写中断处理函数,即中断服务例程(ISR),用于响应中断事件。
- 中断服务例程中需要执行的操作应尽量简洁,以减少对主程序的干扰,并及时清除中断标志。
示例代码:
上述代码中,通过`EXTI_Config()`函数配置了PA0引脚为上升沿触发的外部中断。
中断服务例程`EXTI0_IRQHandler()`中,当外部触发信号的上升沿到来时,LED灯状态会反转,然后清除中断标志。
外部中断编程方法总结第3篇
好了,至此就已经大致捋清楚了外部中断的配置流程,注意,不要忘记了,使用到了中断,所以必须要有昨天的NVIC控制器相关的配置,这里再来总结一个具体的伪代码:
按下对应按键,右下角的WATCH得数值会对应自增。