当前位置:首页 > 51单片机学习总结 - 图文
1. CPU正处在为某一同级或高级的中断服务中。
2. 查询中断请求的机器周期不是当前指令的最后一个周期。
3. 按MCS-51中断系统的特定规定,在执行完返回指令(RET, RETI)后,还应再继续执行一
条指令,才能响应中断。
3) 中断响应时间
指从查询中断请求标志位到转向中断区入口地址所需的机器周期数。
MCS-51最短响应时间为三个机器周期(一个查询机器周期+两个LCALL指令执行机器周期);中断响应的最长时间为八个机器周期。当然,若出现有同级或高级中断正在响应或服务中需等待的时候,那么响应时间就无法计算了。
中断请求的撤出
中断响应后,TCON或SCON中的中断请求标志应及时清除。其撤出方法主要有: 1) 定时中断硬件自动撤出
定时中断响应后,硬件自动把标志位(TF0或TF1)清0
2) 外部中断自动与强制撤出 对于脉冲请求方式,在中断响应后同样通过硬件自动地把标志位清0;但对于电平请求方式,还需在中断响应后把中断请求输入端从低电平强制改为高电平。 可通过D触发器的直接置位端SD实现,当中断响应后P1.0输出低电平使Q为高电平输出。
3) 串行中断软件撤出
在中断响应后,还需判断串行中断标志位TI和RI的状态。
MCS-51定时器/计数器 定时方法概述
在单片机应用中,可供选择的定时方法有: 1) 软件定时
通过执行循环程序以进行时间延迟,软件定时时间精确,无需外加电路,但会增加CPU开销,因此不宜长时间定时使用,而且受条件影响。
2) 硬件定时
不占CPU,适宜长时间定时使用,但需改变硬件参数来调节定时时间,在使用上不灵活。
3) 可编程定时器定时
通过对系统时钟脉冲的计数来实现的。使用灵活、方便,并兼有计数功能。
定时器/计数器的定时和计数功能
MCS-51单片机共有两个可编程的定时/计数器,都是十六位加法计数结构,分别由TH0、TL0和TH1、TH1四个8位计数器组成。 计数功能
计数指对外部事件(输入脉冲)进行计数。MCS-51的两个计数器分别以T0(P3.4)和T1(P3.5)管脚作为计数器的输入端。外部输入脉冲在负跳变沿有效(计数器加1)。在下一个机器周期的S3P1进行计数,鉴于此,计数脉冲的频率不能高于振荡脉冲频率的1/24。
定时功能
此时的计数脉冲来自单片机内部。每个机器周期产生一个计数脉冲,即计数频率为振荡频率的1/12。
定时器/计数器的控制寄存器
1) 定时器控制寄存器(TCON) 2) 工作方式控制寄存器(TMOD) 3) 中断允许寄存器(IE)
定时器/计数器工作方式
MCS-51的定时器/计数器共有四种工作方式: 1) 定时工作方式0
此时,计数器由TH的8位和TL的低5位构成。当TL的低5位计数溢出时,向TH进位,而全部13位计数溢出时,则向计数溢出标志位TF0进位。
2) 定时工作方式1
逻辑结构与定时工作方式0完全相同,此时,计数器由TH和TL全部16位构成。
3) 定时工作方式2(自动重新加载工作方式)
工作方式0和1的最大特点是计数溢出后,计数器为全0(软件自动清0)。因此不便于循环定时或循环计数应用。方式2就是针对此问题而设置的。在这种工作方式下,TL作为计数器,TH作为预置寄存器。
初始化时把计数初值分别装入TL和TH中。当计数器溢出后(最大计数为255),由预置寄存器TH以硬件方法自动给计数器TL重新加载。
4) 定时工作方式3
定时工作方式0、1和2对两个定时器/计数器的设置和使用是完全相同的,但在工作方式3下,两个定时器/计数器的设置和使用是不同的。 1. 工作方式3下的定时器/计数器0
此时,定时器/计数器0被拆成两个独立的8位计数器TL0和TH0。其中,TL0独占定时器/计数器0的控制位和全部引脚信号,其功能和操作与方式0(或1)完全相同。而TH0只能作为简单的定时器使用(无计数器功能),并借用定时器/计数器1的控制位TR1(定时启动和停止)和TF1(计数溢出)。
2. 工作方式3下的定时器/计数器1
由于运行控制位TR1和计数溢出标志位TF1已被定时器/计数器0借用,故定时器/计数器1不能在方式3下使用,若硬把它设置为方式3,就会停止工作。此时,定时器/计数器1通常作为串行口的波特率发生器使用,以确定串口通信的速率。
用定时器/计数器进行外部中断扩展
定时器/计数器实现外部中断扩展的方法即是在技术工作方式下,把计数器值为全1,此时,只要在技术输入端加一个脉冲,就可以使计数器溢出,产生计数溢出中断。具体实现为: 1) 置定时器/计数器为工作方式2; 2) 高低8位计数器均予置为FFH;
3) 扩展的外部中断请求信号接计数器输入端;
4) 把扩展外中断服务程序按所用的定时器/计数器中断入口地址存放。 5)
共分享92篇相关文档