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

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

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

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

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

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

单片机的定时与中断系统中断系统:包含中断源、中断方式、中断控制寄存器、中断响应和中断请求的撤除。单片机在某一时刻只能处理一个任务,当多个任务同时要求单片机处理时,这一要求应该怎么实现呢?通过中断可以实现多个任务的资源共享。 所谓的中断就是,当CPU正在处理某项事务的时候,如果外界或者内部发生了紧急事件,要求CPU暂停正在处理工作而去处理这个紧急事件,待处理完后,再回到原来中断的地方,继续执行原来被中断的程序,这个过程称作中断。实现这种功能的部件称为中断系统(中断机构)。 产生中断的请求源称为中断源。 中断过程中又有中断发生称为中断嵌套。 中断执行的程序称为中断服务子程序。中断功能强弱是计算机性能优劣的重要标志 提高CPU效率解决速度矛盾实现并行工作实时处理 应付突发事件……中断源是指在计算机系统中向CPU发出中断请求的来源。8051单片机有5个中断源:MCS-51的中断系统——中断标志MCS-51的中断系统——中断允许MCS-51的中断系统——中断优先级表5.18051中断源定时器控制寄存器(TCON) 串行口控制寄存器(SCON) 中断允许控制寄存器(IE) 中断优先级控制寄存器(IP) TF1计数溢出标志位的使用有两种情况: 采用中断方式时,作中断请求标志位来使用; 采用查询方式时,作查询状态位来使用。TF1IE0和IE1——外中断请求标志位返回TI——串行口发送中断请求标志位 当发送完一帧串行数据后,由硬件置“1”;在转向中断服务程序后,用软件清“0”。IE A8H(4)中断优先级控制寄存器(IP)51单片机有两个中断优先级——高级和低级 专用寄存器IP为中断优先级寄存器,用户可用软件设定 相应位为1,对应的中断源被设置为高优先级,相应位为0,对应的中断源被设置为低优先级 系统复位时,均为低优先级 对同时发生多个中断申请时: ☞不同优先级的中断同时申请(很难遇到) ——先高后低 ☞相同优先级的中断同时申请(很难遇到) ——按序执行 ☞正处理低优先级中断又接到高级别中断 ——高打断低 ☞正处理高优先级中断又接到低级别中断 ——高不理低自然优先级:中断控制寄存器汇总例如,某软件中对寄存器IE、IP设置如下:MOVIE,#00H MOVIE,#8FH(10001111B) MOVIP,#06H(00000110B) SETBEA;SETBEX0;SETBET0;SETBEX1;SETBET1;CLRES则此时该系统中: CPU中断允许; 允许外部中断0、外部中断1、定时器/计数器0、定时器/计数器1提出的中断申请; 允许中断源的中断优先次序为:定时器/计数器0>外部中断1>外部中断0>定时器/计数器1。在中断服务程序编程时,首先要对中断系统进行初始化,也就是对几个特殊功能寄存器的有关控制位进行赋值。 初始化的内容包括: (1)开总中断和相应中断源的中断 (2)设置所用中断源的优先级; (3)若是外部中断,则应规定是低电平触发还是下降沿触发。 例1:若规定外部中断1为电平触发方式,高优先级,试写出有关的初始化程序。 SETBEA;开中断 SETBEX1;允许外中断1中断 SETBPX1;外中断1定为高优先级 CLRIT1;电平触发 例2:使用外部中断0(INT0)和外部中断1(INT1),INT1为高优先级,电平触发方式,INT0为低优先级,下降沿触发方式。MOVIP,#04H MOVTCON,#01H SETBEA SETBEX0 SETBEX1中断处理过程中断响应条件:a.CPU正在响应同级或高优先级的中断。 b.当前指令未执行完。 c.正在执行RETI中断返回指令或访问专用寄存器IE和IP的指令。一、中断响应过程在S6P2状态按一定的顺序(INT0、T0、INT1、T1、RI/TI)查询请求标志,并将有效的中断请求按优先级次序排好。中断源入口地址如:ORG 0003H LJMP INTT0 INTT0: 中断服务子程序 RETI二、中断处理中断处理三、中断返回RETI指令功能:把断点地址取出,送回到程序计数器PC中去。另外,它还通知中断系统已完成中断处理,将清除优先级状态触发器。 特别注意:不能用RET指令代替RETI指令!中断请求的撤销电平触发外部中断撤除方法较复杂。 因为在电平触发方式中,CPU响应中断时不会自动清除IE1或IE0标志,所以在响应中断后应立即撤除INT0或INT1引脚上的低电平。 在硬件上,CPU对INT0和INT1引脚的信号不能控制,所以这个问题要通过硬件,再配合软件来解决。图撤除外部中断请求的电路当CPU响应中断后,可在中断服务程序中采用两条指令: CLRP1.0 SETBP1.0 (或ANLP1,#0FEH ORL P1,#01H) 来撤除外部中断请求。即