版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
主编:李文华“十四五”职业教育国家规划教材经全国职业教育教材审定委员会审定显示按键按下的次数任务要求
用外部中断0对接入P3.2/引脚上的按键按下的次数进行计数,P2口作输出口使用,用来控制8只发光二极管以二进制数的形式显示脉冲计数值。其中,某位发光二极管点亮,表示该数位为1;发光二极管熄灭,表示该数位为0。相关知识1、中断的基础知识
(1)中断
中断即打断,是指CPU在执行当前程序时,由于程序以外的原因,出现了某种更急需要处理的情况,CPU暂停现行程序,转而处理更紧急的事务,处理结束后CPU自动返回到原来的程序中继续执行。(2)中断源
中断源即请求中断的来源,是指能引起中断、发出中断请求的设备或事件。(3)中断服务CPU响应中断请求后,为中断源所做的事务就叫做中断服务。相关知识1、中断的基础知识
(4)中断的优先级当多个中断源同时向CPU申请中断时,单片机所规定的对中断源响应的先后次序就叫做中断的优先级。在单片机中,优先级高的中断请求先响应,优先级低的中断请求后响应。相关知识1、中断的基础知识
(5)中断嵌套CPU进行中断服务处理时,若有优先级更高的中断源发出中断申请,则CPU暂停当前的中断服务,转而响应高优先级中断源的中断请求,高优先级中断服务结束后,再继续进行低优先级中断服务处理。如图所示。在单片机中,只有高优先级中断源才能打断低优先级中断源的中断服务,而形成中断嵌套。低级中断源对高级中断服务、同级中断源的中断服务是不能形成中断嵌套的。相关知识1、中断的基础知识
(6)中断的分类按中断源是否位于单片机的内部,中断可分为外部中断与内部中断。例如,单片机内部的定时/计数器是一个中断源,它位于单片机的内部,因此,定时/计数中断就属于内部中断。再如,单片机的P3.2/引脚上的电平变化可以引起中断,该中断源位于单片机的外部,因此,中断就属于外部中断。按照中断源的中断请求是否可被程序屏蔽来分,中断可分为可屏蔽中断与不可屏蔽中断2类。其中,可屏蔽中断的中断请求可以被程序屏蔽掉。相关知识2、单片机的中断系统结构相关知识2、单片机的中断系统结构MCS-51单片机的中断源中断源符号类型产生中断的条件中断请求标志外部中断0外部由P3.2/引脚输入,低电平或下降沿引起IE0定时/计数器0T0内部T0的计数器计满模值引起TF0外部中断1外部由P3.3/引脚输入,低电平或下降沿引起IE1定时/计数器1T1内部T1的计数器计满模值引起TF1串行I/O中断TI/RI内部串口发送完一帧数据后串口接收完一帧数据后TIRI相关知识2、单片机的中断系统结构MCS-51单片机的中断源【说明】中断请求标志的作用是记录中断事件是否发生过,并向CPU提出中断请求。当中断产生条件满足时,硬件电路会自动地将对应的中断请求标志位置1。例如,当定时/计数器0的计数值计满模值时,硬件电路就会自动地将TF0位置1。相关知识3、中断系统中的特殊功能寄存器⑴中断允许控制寄存器IE功能:控制各中断源的打开与关闭。字节地址为0xa8,各位都分配有位地址,可以进行位访问。IE的位:D7D6D5D4D3D2D1D0复位值EA××ESET1EX1ET0EX00x00位地址:0xaf0xae0xad0xac0xab0xaa0xa90xa8相关知识3、中断系统中的特殊功能寄存器EA:全局中断允许位。EA=0:关闭全部中断。EA=1:打开全局中断,此时各中断是否打开取决于对应的中断控制位的值。ES:串行I/O中断允许位。ES=0:关闭串行I/O中断;ES=1:打开串行I/O中断。ET1:定时/计数器1中断允许位。ET1=0:关闭T1中断;ET1=1:打开T1中断。EX1:外部中断1允许位。EX1=0:关闭中断;EX1=1:打开中断。ET0:定时/计数器0中断允许位。ET0=0:关闭T0中断;ET0=1:打开T0中断。EX0:外部中断0允许位。EX0=0:关闭中断;EX0=1:打开中断。相关知识3、中断系统中的特殊功能寄存器例如,单片机使用了外部中断0、定时中断T0,则应将EX0位、ET0位、EA位置1,其他位清0。IE的值应设置成10000011B,即设置成0x83。其设置程序段如下:
IE=0x83; //开全局中断、T0中断、外部中断0相关知识3、中断系统中的特殊功能寄存器【说明】IE寄存器的各位都分配有位地址,单片机复位时IE的各位值为0,开放中断时,一般采用位操作。开放中断的方法:把需要开放中断的控制位置1,然后将EA位置1。例如,单片机中使用了外部中断0、外部中断1和串行中断,开放中断的设置程序如下:EX0=1; //开外部中断0EX1=1; //开外部中断1ES=1; //开串行中断1EA=1; //开全局中断相关知识3、中断系统中的特殊功能寄存器⑵定时器控制寄存器TCON字节地址为0x88,各位都分配有位地址,可以进行位访问。TCON的位:D7D6D5D4D3D2D1D0复位值TF1TR1TF0TR0IE1IT1IE0IT00x00位地址:0x8f0x8e0x8d0x8c0x8b0x8a0x890x88ITi:选择外部中断的触发方式ITi=0:外部中断采用低电平触发。即当i引脚上出现低电平时,硬件电路就会将IEi位置1。ITi=1:外部中断采用下降沿触发。即当i引脚上出现由1变0的下降沿时,硬件电路就会将IEi位置1。相关知识3、中断系统中的特殊功能寄存器【说明】选用低电平触发方式时,会出现同一个低电平引起IEi位多次置1的现象,从而导致单片机多次执行中断服务。因此,通常情况下外部中断的触发方式选用下降沿触发。相关知识3、中断系统中的特殊功能寄存器IEi:外部中断的中断请求标志位,标识引脚是否出现了外部输入事情(低电平或下降沿)。置1条件:①i引脚出现低电平(ITi=0时)或出现下降沿(ITi=1时)。②用软件将IEi位置1。清0条件:①CPU响应了INTi中断,并进入对应外部中断服务程序中后,硬件电路自动将IEi位清0。②用软件将IEi位清0。相关知识3、中断系统中的特殊功能寄存器置1后的结果:若开放了外部中断(EXi=1且EA=1),CPU会自动进入对应的外部中断服务函数中去执行中断服务程序,进入中断服务函数中后,硬件电路会自动地将IEi位清0,以阻止同一次IEi为1时被多次服务。若没有开放外部中断(EXi=0或者EA=0),CPU不会自动执行对应的中断服务程序。在这种情况下,IEi位供CPU查询外部输入事件是否发生过之用。相关知识3、中断系统中的特殊功能寄存器置1后的结果:若开放了外部中断(EXi=1且EA=1),CPU会自动进入对应的外部中断服务函数中去执行中断服务程序,进入中断服务函数中后,硬件电路会自动地将IEi位清0,以阻止同一次IEi为1时被多次服务。若没有开放外部中断(EXi=0或者EA=0),CPU不会自动执行对应的中断服务程序。在这种情况下,IEi位供CPU查询外部输入事件是否发生过之用。相关知识3、中断系统中的特殊功能寄存器⑶中断的优先级寄存器IP功能:管理单片机的中断优先级字节地址为0xb8,各位分配有位地址,可以进行位访问。IP的位:D7D6D5D4D3D2D1D0复位值×××PSPT1PX1PT0PX00x00位地址:0xbf0xbe0xbd0xbc0xbb0xba0xb90xb8相关知识⑶中断的优先级寄存器IPD4(PS)位:串行中断的优先级控制位。PS=1:串行中断为高优先级中断,PS=0:串行中断为低优先级中断。D3(PT1)位:定时/计数器1的中断优先级控制位。PT1=1:定时/计数器1为高优先级中断,PT1=0:定时/计数器1为低优先级中断。D2(PX1)位:外部中断1的中断优先级控制位。PX1=1:外部中断1为高优先级中断,PX1=0:外部中断1为低优先级中断。相关知识⑶中断的优先级寄存器IPD1(PT0)位:定时/计数器0的中断优先级控制位。PT0=1:定时/计数器0为高优先级中断,PT0=0:定时/计数器0为低优先级中断。D0(PX0)位:外部中断0的中断优先级控制位。PX0=1:外部中断0为高优先级中断,PX0=0:外部中断0为低优先级中断。相关知识⑶中断的优先级寄存器IPDi=1时,对应的中断源为高优先级中断,Di=0时,对应的中断源为低优先级中断。复位后,IP=0x00。也就是说各中断的优先级处于同一级别,并且同为低优先级。如果几个同级中断同时向CPU提出中断请求,则CPU按下图的顺序响应中断请求。相关知识⑶中断的优先级寄存器IPPT1=1;//T1为高优先级中断,其他均为低优先级中断系统中只开放了一个中断时,不必设置IP。如果系统中开放的中断数不止一个,就需要设定中断优先级。中断优先级设定一般是对IP的位采用位操作。例如,系统中开放了T0、T1、三个中断,如果要求这三个中断同时向CPU提出中断请求时,CPU要按T1、INT0、T0顺序响应中断请求,则应将PT1设为1,PT0、PX0设为0,实现的程序段如下:相关知识4、C51中的中断编程方法⑴中断初始化中断初始化放在main函数中,主要完成以下工作:①选择中断的触发方式:设置IT0位的值,值为IT0=1(下降沿触发)或IT0=0(低电平触发)。②设置中断的优先级:设置PX0位的值,值为PX0=1(高优先级)或PX0=0(低优先级)。③开外部中断0:EX0=1④开全局中断:EA=1相关知识4、C51中的中断编程方法⑴中断初始化main函数的结构:void main(void){ //变量定义 IT0=1; //设置外部中断0的触发方式:下降沿触发 PX0=1; //外部中断0采用高优先级。 EX0=1; //开外部中断0 EA=1; //开全局中断 //其他初始化,这一部分也可以放在变量定义之后 while(1) { /*非中断事务处理语句*/ }}相关知识4、C51中的中断编程方法⑵中断服务函数中断服务函数的定义:void 函数名(void) interrupt n [using m]{ //变量定义 //中断处理模块}“函数名”是中断服务函数的名字,其命名规则与变量一样。“interruptn”用来说明所定义的函数是哪一种中断源的中断服务函数。interrupt是关键字,n为中断号,n的取值为0~31。相关知识4、C51中的中断编程方法⑵中断服务函数中断源的中断类型号:中断源中断请求标志中断号中断源中断请求标志中断号外部中断0IE00定时/计数器1TF13定时/计数器0TF01串行发送TI4外部中断1IE12串行接收RI4相关知识4、C51中的中断编程方法“usingm”是可选项,用来说明在中断服务函数中CPU所使用的工作寄存器组,using为关键字,m为寄存器组的编号,其值为0~3。m与CPU所使用的工作寄存器组的关系如下:mCPU使用的工作寄存器组R0~R7的地址0第0组工作寄存器组0x00~0x071第1组工作寄存器组0x08~0x0f2第2组工作寄存器组0x10~0x173第3组工作寄存器组0x18~0x1f相关知识4、C51中的中断编程方法工作寄存器组主要用来临时存放数据和作函数调用时传递数据。单片机复位后,CPU使第0组工作寄存器,即运行main函数时CPU使用的是第0组工作寄存器组。为了保证中断服务函数执行后不修改被打断程序中的数据,中断服务函数一般是选用第1~3组工作寄存器组,并且优先级不同的程序选择不同的工作寄存器组。相关知识4、C51中的中断编程方法例如,外部中断0的中断服务函数定下如下:void int0(void) interrupt 0 using 1{ /*函数体*/ }定时/计数器1的中断服务函数定义如下:void timer1(void) interrupt 3 using 1{ /*函数体*/ }相关知识4、C51中的中断编程方法⑶相关说明①中断服务函数不是通过函数调用来执行的,在main函数中无中断服务函数调用语句。②在main函数中设置好中断的触发方式,并且打开了外部中断0、打开了全局中断后,当P3.2/引脚出现下降沿(IT0=1时)或者出现低电平(IT0=0时)时,硬件电路会自动将中断请求标志IE0位置1,并自动地转至中断类型号为0的中断服务函数(带有interrupt0的函数)中去执行该函数。中断服务函数执行完毕后又自动地返回到被打断的程序中从打断处接着执行原来的程序。相关知识4、C51中的中断编程方法⑶相关说明③进入中断服务函数后,硬件电路会自动地将中断请求标志位IE0清0。因此,中断服务函数中可以省去清除中断请求标志语句“IE0=0;”。④进入中断服务函数时,CPU会根据“usingm”参数选择工作寄存器组,执行完中断服务函数后,CPU恢复选用进入中断服务函数之前的工作寄存器组。任务实施1、搭建电路电路图如下:任务实施2、编写软件程序(1)流程图查询方式:任务实施2、编写软件程序(2)程序代码#include <reg51.h> //#include <intrins.h> #define uchar unsigned char #define ledport P2 uchar idata keycnt; void main(void) { keycnt=0; IT0=1;
while(1)
{ if(IE0)
{ IE0=0;
keycnt++; }
ledport=~keycnt;
} } 任务实施中断方式:任务实施(2)程序代码#include <reg51.h> #define ledport P2 #define uchar unsigned char uchar idata keycnt; void int0() interrupt0 using1{ keycnt++; ledport=~keycnt; } void main(void) { keycnt=0; IT0=1;
EX0=1; EA=1;
while(1); }
应用总结与拓展中断在单片机中应用非常广泛。标准的MCS-51单片机具有5个中断源,分外部中断源和内部中断源两种。单片机中对中断的操纵和管理是通过读写对应的特殊功能寄存器来实现的。
中断的处理有查询方式和中断方式两种方式。在应用程序中,如果不开放中断,则采取查询方式进行处理。查询方式是通过查询
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年环境工程管理真题
- 2026年南京交通职业技术学院单招职业倾向性考试题库及答案详解(夺冠系列)
- 2026年兰州现代职业学院单招职业适应性测试题库及答案详解(新)
- 2026年兰州资源环境职业技术大学单招职业技能考试题库附答案详解(a卷)
- 2026年内蒙古交通职业技术学院单招职业倾向性考试题库附参考答案详解(典型题)
- 2026年兰州科技职业学院单招职业技能考试题库附答案详解(轻巧夺冠)
- 2026年六盘水幼儿师范高等专科学校单招职业倾向性测试题库附答案详解(研优卷)
- 2026年内蒙古能源职业学院单招综合素质考试题库带答案详解(轻巧夺冠)
- 2026年南昌影视传播职业学院单招职业技能测试题库带答案详解(基础题)
- 2026年信阳涉外职业技术学院单招职业适应性考试题库带答案详解(基础题)
- 食品安全追溯体系培训课程
- 中医妇科学:第十节 痛经
- 认知行为疗法(CBT)实操讲座
- GB/T 3683-2023橡胶软管及软管组合件油基或水基流体适用的钢丝编织增强液压型规范
- 测绘仪器检测与维修
- GB/T 16866-2006铜及铜合金无缝管材外形尺寸及允许偏差
- GB/T 16855.2-2015机械安全控制系统安全相关部件第2部分:确认
- 计算机二级java考试课件(1-9章)
- 年产55万吨环氧乙烷乙二醇车间环氧乙烷合成工段工艺设计
- 准噶尔含油气盆地
- “双减”背景下提高初中体育课堂教学有效性的策略探究
评论
0/150
提交评论