第5章AT89S51的中断系统5.1AT89S51中断技术概述5.2AT89S51中断系统结构5.3中断允许与中断优先级的控制5.4响应中断请求的条件5.5外部中断的响应时间5.6外部中断的触发方式选择5.7中断请求的撤销5.8中断服务子程序的设计5.9多外部中断源系统设计5.1AT89S51中断技术概述•什么是中断?•在日常生活中:中断即中途打断某一正在进行的工作,而去处理另外的紧急事件,待处理完后,再继续原来的工作。•在计算机中:计算机在运行某个进程的过程中,由于其他原因,有必要中止正在执行的进程,而去执行引起中断的事件进程,待处理完毕后,再回到被中止进程的被打断的地方继续执行,这种情况称为“中断”。中断的定义简单说:中断是指计算机暂时停止原程序的执行转而执行中断服务程序,并在服务完成后自动返回原程序的过程。执行主程序主程序继续执行主程序断点中断请求中断响应执行中断处理程序中断返回•什么是中断?•中断是指计算机在执行主程序时,由于计算机系统以外的原因,暂停主程序而转去执行中断源中断源要求服务程序,处理完毕后又返回主程序返回主程序的这样一个过程。•中断技术主要用于实时监测与控制,要求单片机能及时地响应中断请求源提出的服务请求,并作出快速响应、及时处理。这是由片内的中断系统来实现的。利用中断技术可以使计算机具有更多的功能功能:①可实现高速CPU与慢速外围设备之间的配合,提高CPU的效率。②可实现实时处理,各控制参数可随时向CPU发出中断申请,CPU可作出快速响应、及时处理。③可实现故障的紧急处理。④便于人机联系,操作人员可用键盘、开关等实现人机联系,完成人的干预控制。5.2AT89S51中断系统结构•中断系统有5个中断请求源(简称中断源),两个中断优先级,可实现两级中断服务程序嵌套。•每一中断源可用软件独立控制为允许中断或关中断状态,中断优先级均可用软件来设置。•五个中断源:•外部中断:请求0(INT0由P3.2输入)•请求1(INT1由P3.3输入)•内部中断:片内定时/计数器T0•片内定时/计数器T1•片内串行口中断请求5.2.1中断请求源5.2.2中断请求标志寄存器•5个中断请求源的中断请求标志分别由TCON和SCON的相应位锁存。•1.TCON寄存器•为定时器/计数器的控制寄存器,字节地址为88H,可位寻址。特殊功能寄存器TCON的格式如图5-3所示。IT0:外部中断0触发类型控制位IT0=0时:INT0低电平触发IT0=1时:INT0负边沿触发IT1:外部中断1触发类型控制位用法同IT0注:IT0,IT1可由软件置“1”或清“0”。D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0TCONIE0:外部中断0请求标志.IE0=0外部中断0无中断请求;IE0=1外部中断0有中断请求;•当IT0=0即电平触发方式时,每个机器周期的S5P2采样INT0,若INT0为低电平,将直接触发外部中断;•当IT0=1即边沿触发方式时,当第一个机器周期采样到INT0为高电平,第二个机器周期采样到INT0为低电平时,由硬件置位IE0,并以此来向CPU请求中断,当CPU响应中断,转向中断服务程序时由硬件清“0”IE0。IE1:外部中断1请求标志,用法同IE0D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0TR0:定时器T0的启停控制位,由软件置位/清除来控制其开启/关闭。若使TR0=1,则定时器T0开始计数;若使TR0=0,则定时器T0停止计数。TR1:定时器T1的启停控制位,用法同TR0。D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0TCONTF0:定时/计数器0溢出中断请求标志位TF0=0定时/计数器0无溢出中断TF0=1定时/计数器0有溢出中断在启动T0计数后,定时/计数器0从初值开始加1计数,当最高位产生溢出时,由硬件置位TF0,向CPU申请中断,CPU响应TF0中断后清零该标志位,TF0也可用软件清零(查询方式)。TF1:定时/计数器1溢出中断请求标志位D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0TCON2.SCON寄存器•串行口控制寄存器,字节地址为98H,可位寻址。•低二位锁存串行口的发送中断和接收中断的中断请求标志TI和RI,格式如图5-4所示。串行口中断分为两种:串行口发送中断串行口接收中断D7D6D5D4D3D2D1D0TIRI串行中断请求标志SCONTI=1:有发送中断RI=1:有接收中断5.3中断允许与中断优先级的控制中断允许控制由中断允许寄存器IE...