您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 单片机原理与应用技术(第2版)电子课件第4章
河南科技大学——单片机原理与应用技术•4.1中断系统•4.2中断程序设计•4.3定时/计数器•4.4定时/计数器的编程举例•小结第4章中断系统、内部定时/计数器河南科技大学——单片机原理与应用技术4.1中断系统“中断”是指计算机在执行某段程序的过程中,由于计算机系统内、外的某种原因,当出现CPU以外的某种情况时,由服务对象向CPU发出中断请求信号,要求CPU暂时中断当前程序的执行而转去执行相应的处理程序,待处理程序执行完毕后,再返回继续执行原来被中断的程序。4.1.1中断系统概述1、中断的概念中断系统是计算机的重要组成部分。实时控制、故障自动处理、计算机与外围设备间的数据传送往往采用中断系统。河南科技大学——单片机原理与应用技术2、中断的特点◆分时操作◆实时处理◆故障处理3、中断系统的功能◆实现中断响应和中断返回◆实现优先权排队◆实现中断嵌套河南科技大学——单片机原理与应用技术4、中断系统的结构框图河南科技大学——单片机原理与应用技术4.1.2中断源1、外部中断源8051的两条外部中断请求信号输入线,有低电平或负跳变两种中断触发方式。中断触发方式由定时器控制寄存器TCON中IE0和IE1位的状态设定。河南科技大学——单片机原理与应用技术2、定时器溢出中断源3、串行口中断源8051内部定时/计数器溢出中断属于内部中断,通常用于进行定时/计数控制。在内部定时脉冲或T0/T1引脚上输入的外部计数脉冲作用下,加1计数的定时/计数器溢出时提出中断请求。8051内部串行口的发送和接收中断也是内部中断。在串行口进行发送/接收数据时,每发送完一组串行数据时,串行口控制寄存器SCON中的TI中断标志位置“1”,每接收完一组串行数据则使RI置“1”,并都自动向CPU发出串行口中断请求。河南科技大学——单片机原理与应用技术4.1.3中断系统的控制1、定时器控制寄存器TCON位D7D6D5D4D3D2D1D0字节地址TCONTF1TR1TF0TR0IE1IT1IE0IT088H位地址8FH8EH8DH8CH8BH8AH89H88H河南科技大学——单片机原理与应用技术2、串行口控制寄存器SCON位D7D6D5D4D3D2D1D0字节地址SCONTIRI98H位地址9FH9EH9DH9CH9BH9AH99H98H河南科技大学——单片机原理与应用技术3、中断控制寄存器(和中断有关的特殊功能寄存器)位D7D6D5D4D3D2D1D0字节地址IEEAESET1EX1ET0EX0A8H位地址AFHAEHADHACHABHAAHA9HA8H(1)EX0:外部中断(0)中断允许位;(2)ET0:定时/计数器T0中断允许位;(3)EX1:外部中断(1)中断允许位;(4)ET1:定时/计数器(T1)中断允许位;(5)ES:串行接口中断允许位;(6)EA:CPU中断总允许位。•思考?字节地址和位地址有何不同?IE各位的定义如下河南科技大学——单片机原理与应用技术中断优先级寄存器IP(B8H)位D7D6D5D4D3D2D1D0字节地址IPPSPT1PX1PT0PX0B8H位地址BFHBEHBDHBCHBBHBAHB9HB8H(1)PX0:外部中断(0)中断优先级设定位;(2)PT0:定时/计数器(T0)中断优先级设定位;(3)PX1:外部中断(1)中断优先级设定位;(4)PT1:定时/计数器(T1)中断优先级设定位;(5)PS:串行接口中断优先级设定位。河南科技大学——单片机原理与应用技术4.1.4中断响应1、中断处理的过程中断处理过程分为4个阶段,即中断请求、中断响应、中断服务和中断返回。MCS-51系列单片机的中断处理流程如图所示。河南科技大学——单片机原理与应用技术2、中断申请的撤除1)定时器中断请求的撤除对于定时器T0或T1溢出中断,CPU在响应中断后即由硬件自动清除其中断标志位TF0或TF1,无需采取其他措施。2)串行口中断请求的撤除对于串行口中断,CPU在响应中断后,硬件不能自动清除中断请求标志位TI、RI,必须在中断服务程序中用软件将其清除。河南科技大学——单片机原理与应用技术2、中断申请的撤除3)外部中断请求的撤除外部中断可分为边沿触发型和电平触发型。对于边沿触发的外部中断或,CPU在响应中断后,由硬件自动清除其中断标志位IE0或IE1,无需采取其他措施。对于电平触发的外部中断,其中断请求撤除的方法较为复杂,只有通过硬件配合相应软件的方式。河南科技大学——单片机原理与应用技术用户对中断的控制和管理,实际是对4个与中断有关的寄存器IE、TCON、IP、SCON进行控制或管理。4.2中断程序设计4.2.1汇编语言中断程序设计汇编语言的中断服务程序按规定的中断矢量地址存入,由于5个中断矢量地址0003H、000BH、0013H、001BH、0023H之间相距很近,往往装不下一个中断服务程序,所以通常将中断服务程序安排在程序存储器的其他地址空间,而在矢量地址单元中安排一条转移指令。河南科技大学——单片机原理与应用技术例4.1在图4.3中,P1.4~P1.7接有4个发光二极管,P1.0~P1.3接有4个开关,消抖电路用于产生中断请求信号,消抖电路的开关来回拨动一次将产生一个下降沿信号,通过向CPU申请中断,要求:初始发光二极管全黑,每中断一次,P1.0~P1.3所接的开关状态反映到发光二极管上,且要求开关合上时对应发光二极管亮。河南科技大学——单片机原理与应用技术河南科技大学——单片机原理与应用技术4.2.2C语言中断程序设计1、中断服务函数的定义中断服务程序定义为函数,函数的完整定义如下:返回值函数名([参数])[模式][再入]Interruptn[Usingm](1)Interruptn:表示将函数声明为中断服务函数,n为中断源编号。(2)Usingm:定义函数使用的工作寄存器组。函数入口处将当前寄存器保存,使用m指定的寄存器组,函数退出时原寄存器组恢复。选择不同的工作寄存器组,可方便地实现寄存器组的现场保护。(3)再入:属性关键字reentrant将函数定义为再入函数,在C51中,普通函数(非再入函数)不能递归调用,只有再入函数才可被递归调用。河南科技大学——单片机原理与应用技术2、编程举例例4.2用C语言对例4.1重新编程。解:编程如下:河南科技大学——单片机原理与应用技术4.3定时/计数器4.3.1定时/计数器的结构8051单片机内部有两个16位的可编程定时/计数器,称为定时器0(T0)和定时器1(T1),可编程选择其用作定时器或计数器,其逻辑结构如图。河南科技大学——单片机原理与应用技术4.3.2定时/计数器的工作原理当设置为定时工作方式时,计数器对内部机器周期计数,每过一个机器周期,计数器增1,直至计数器满溢出。定时器的定时时间与系统的振荡频率紧密相关,MCS-51单片机的一个机器周期由12个振荡脉冲组成,所以计数频率fc=(1/12)fosc。当设置为计数工作方式时,计数器对来自输入引脚T0(P3.4)和T1(P3.5)的外部信号计数,外部脉冲的下降沿将触发计数。在每个机器周期的S5P2期间采样引脚输入电平,若前一个机器周期采样值为1,后一个机器周期采样值为0,则计数器加1。河南科技大学——单片机原理与应用技术4.3.3定时/计数器的工作方式1、定时器工作方式寄存器TMOD河南科技大学——单片机原理与应用技术2、定时/计数器的工作方式◆方式0方式0为13位定时/计数方式,由THx提供高8位、TLx提供低5位的计数初值,最大计数值为M=213=8192,每次启动计数前均需预置计数初值。设定时器初值为C,时钟频率为fosc,则其定时时间T为:T=(M-C)×12/fosc=(8192-C)×12/fosc河南科技大学——单片机原理与应用技术◆方式1◆方式2◆方式3方式1与方式0基本相同,唯一区别在于:方式1计数寄存器的位数为16位,由THx和TLx寄存器各提供8位计数初值,最大计数值为216=65536。定时时间:T=(65536-M0)×12/fosc方式2是8位的可自动重装载计数初值的定时/计数方式,最大计数值为28=256。定时时间:T=(256-M0)×12/fosc方式3只适合于定时/计数器0(T0)。当T0工作在方式3时,TH0和TL0成为两个独立的计数器。这时TL0可作定时/计数器,占用T0在TCON和TMOD寄存器中的控制位和标志位;而TH0只能用作定时器,占用T1的资源TR1和TF1。在这种情况下,T1仍可用于方式0、1、2,但不能使用中断方式。河南科技大学——单片机原理与应用技术例4.3用定时器1、方式0实现1s的延时。河南科技大学——单片机原理与应用技术例4.4用定时器0、方式3实现1s的延时。河南科技大学——单片机原理与应用技术(1)根据定时时间要求或计数要求计算计数器初值。(2)填写工作方式控制字送TMOD寄存器。(3)送计数初值的高8位和低8位到THx和TLx寄存器中。(4)启动定时(或计数)器,即将TRx置位。如果工作于中断方式,需置位EA(中断总开关)及ETx(允许定时/计数器中断),并编写中断服务程序。4.4定时/计数器的编程举例1、定时/计数器的初始化编程步骤河南科技大学——单片机原理与应用技术2、应用编程举例例4.6用单片机定时/计数器设计一个秒表,由P1口连接的LED采用BCD码显示,发光二极管亮表示0,暗表示1。计满60s后从头开始,依次循环。解:定时器0工作于定时方式1,产生1s的定时,程序类似于例4.4。定时器1工作在方式2,当1s时间到时,由软件复位T1(P3.5)引脚产生负跳变,再由定时器1进行计数,计满60次(1分钟)溢出,再重新开始计数。按上述设计思路可知,方式寄存器TMOD的控制字应为61H,定时器1的初值应为:256-60=196=C4H河南科技大学——单片机原理与应用技术河南科技大学——单片机原理与应用技术小结•中断是指当机器正在执行程序的过程中,一旦遇到某些异常情况或特殊请求时,暂停正在执行的程序,转入必要的处理(中断服务子程序),处理完毕后,再返回到原来被停止程序的间断处(断点)继续执行。引起中断的事情称为中断源。中断请求的优先级由用户编程和内部优先级共同确定。•中断编程包括中断入口地址设置、中断源优先级设置、中断开放或关闭、中断服务子程序等。本章通过实例分别介绍了采用汇编语言程序和C语言程序编写中断程序。河南科技大学——单片机原理与应用技术小结•MCS-51单片机内部有两个可编程定时/计数器0和1,每个定时/计数器均有4种工作方式:方式0~方式3。方式0是13位的定时/计数器;方式1是16位的定时/计数器;方式2是初值重载的8位定时/计数器;方式3只适用于定时器0,将定时器0分为两个独立的8位定时/计数器,同时定时器1可以作为串行接口的波特率发生器。•定时/计数器的编程包括设置方式寄存器、初值及控制寄存器。初值由定时时间及定时/计数器的位数决定。
本文标题:单片机原理与应用技术(第2版)电子课件第4章
链接地址:https://www.777doc.com/doc-68277 .html