预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共54页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

项目4单片机的中断系统4.1任务说明4.2中断系统的结构51单片机中断系统的结构如图4-1所示,5个中断分别有5个中断源,并提供两个中断优先级控制,能够实现两级中断服务程序的嵌套。单片机的中断系统是通过4个相关的特殊功能寄存器TCON、SCON、IE和IP来进行管理的。因此用户可以用软件对每个中断的开和关以及优先级的控制。定时器控制寄存器TCON用于设定外部中断的中断。串口控制寄存器SCON用于保存串行口(SIO)的发送中断标志和接收中断标志。中断控制寄存器IE用于设定各个中断源的开放或关闭。各个中断源的优先级可以由中断优先级寄存器IP中的相应位来确定,同一优先级中的各中断源同时请求中断时,由中断系统的内部查询逻辑来确定响应的顺序。图4-18051单片机中断系统的结构一、中断源单片机5个中断源都有自己的标志位,包括外部中断(P3.1)引脚接受的外部中断请求;外部中断(P3.2)引脚接受的外部中断请求;定时器/计数器0(T0)溢出中断请求;定时器/计数器1(T0)溢出中断请求;串行口完成一帧数据发送或接收中断请求源TI或RI。其中INT0和INT1一般称为外部中断,T0、T1和串行口(SIO的TI和RI)则称为内部中断。在有中断请求时,由相应的中断标志位。保存其中断请求信号,分别存放在特殊功能寄存器TCON和SCON中增强型的51单片机,则比51单片机多一个中断源T2。二、中断优先级51单片机的中断系统具有两级优先级控制,系统在处理时遵循下列基本原则:1)低优先级的中断源可被高优先级的中断源中断,号的有效形式及保存定时/计数器T0和T1的中断请求标志位。而高优先级中断源不能被低级的中断源所中断;2)一种中断源(无论是高优先级或低优先级)一旦得到响应,就不会被同级的中断源所中断;3)低优先级的中断源和高优先级的中断源同时产生中断请求时,系统先响应高优先级的中断请求,后响应低优先级的中断请求;表4-1中断入口地址及优先级排列表三、中断系统使用的多功能寄存器要使用8051单片机的中断功能,必须掌握4个相关的特殊功能寄存器中特定位的意义及其使用方法。下面分别介绍4个特殊功能寄存器对中断的具体管理方法。(1)TCON定时器控制寄存器TCON是定时器/计数器T0和T1的控制寄存器,也用来锁存T0和T1的溢出中断请求TCONIT0,外部中断0(INT0)触发方式控制位,用于设定INT0中断请求信号的有效方式。如果将IT0设定为1,则外部中断0为边沿(脉冲)触发方式,CPU在每个机器周期的S5P2采样INT0的输入信号(即单片机的P3.2脚)。如果在一个机器周期中采样到高电平,在下一个机器周期中采样到低电平,则硬件自动将IE0置为“1”,向CPU请求中断;如果IT0为0,则外部中断0为电平触发方式。此时系统如果检测到INT0直至该中断信号被检测到。同时在中断返回前必须变为电平,否则会再次产生中断。概括地说,IT0=1时INT0的中断请求信号是脉冲后沿(负脉冲)有效,P3.2从1变为0时系统认为INT0有中断请求;IT0=0时,INT0的中断请求信号是低电平有效,即P3.2保持为0时系统认为INT0有中断请求。IE0,外部中断0的中断请求标志位。如果IT0置1,则当P3.2上的电平由1变为0时,由硬件置位IE0,向CPU申请中断。如果CPU响应该中断,在转向中断服务时,由硬件将IE0复位。可见,IT0用于设定INT0中断请求的信号形式。设定了IT0后,如果INT0产生了有效的中断请求信号(P3.2出现脉冲后沿或低电平),则由中断系统的硬件电路自动将IE0置位。单片机系统在工作过程的每一个机器周期的特定时刻(即S5P2),通过检测INT0的中断请求标志位IE0是1还是0来确定INT0是否有中断请求,而不是通过检测P3.2上的中断请求信号来确定INT0的中断请求。端输入低电平,则置位IE0。采用电平触发时,输入到INT0端的外部中断信号必须保持低电平,IT0=1时表示有中断请求,IT0=0时则没有中断请求。下面INT1的情况类似,不再重复说明。IT1,外部中断1(INT1)的触发方式控制位。其意义和IT0相同。IE1,外部中断1的中断请求标志位。其意义和IE0相同。TF0,定时器/计数器T0的溢出中断请求标志位。当T0开始计数后,从初值开始加1计数,在计满产生溢出时,由硬件使置位TF0,向CPU请求中断,CPU响应中断时,硬件自动将TF0清零。如果采用软件查询方式,则需要由软件将TF0清零。因此,系统是通过检查TF0的状态来确定T0是否有中断请求。TF0=1表示T0有中断请求,TF0=0时则没有。TF1,定时器/计数器T1的溢出中断请求标志位,其作用同TF0。TR0和TR1分别是T0和T1的控制位,与中断无关。将在定时器/计数器应用内容中介绍。(2)