STC89C52的CPU在每一个机器周期顺序检查每一个中断源,在每一个机器周期的S6采样按优先顺序处理所有被激活的中断源,如果没有被下述条件所阻止,将在下一个机器周期的状态1(S1)响应激活了的最高中断请求。
CPU是在每个机器周期的S5P2状态期间对个中断源进行采样,并设置相应的中断标志位;在同一个机器周期的S6态期间按优先级顺序查询各中断标志,如有中断标志被激活(中断标志位=1),且无下列任何一种情况存在,将在下一个机器周期的S1态开始按优先级顺序进入中断响应阶段(注:不等于进入中断处理阶段)。但如果有下列任何一种情况存在,则中断响应会受到阻断(暂不响应):
a 中断请求时,CPU正在执行一个同级或更高级的中断服务程序;{遇到这种情况,须等到该服务程序结束后才会进入中断响应阶段;须等待的时间取决于该程序的长短。
b中断请求时,正在执行的指令不是处在最后一个机器周期;{必须当前指令执行完成后才有可能进入中断响应阶段;如果恰是最长指令(4个机器周期:乘或除)的第一个机器周期,则最长要再等3个机器周期}。
c 中断请求时,正在执行 RETI 或对特殊功能寄存器 IE、IP 的读/写访问;CPU规定:此时不会马上进入中断响应阶段,至少还要在执行一条其他的指令后才会进入中断响应阶段(由于RETI是2个周期,对IE、IP的访问最长的也是2个周期;如果中断请求时正处于这些指令的第一个周期,还须经过一个周期本指令才结束,而且下一条指令又可能是乘或除指令(最长),又得加4个周期,所以最长要再等5个周期)。
CPU响应中断时,先置响应的优先级状态触发器(该触发器指出CPU开始处理的中断优先级别),然后执行一个硬件程序调用,使控制转移到响应的入口,中断请求源申请标志清0(T1和RI除外),硬件把中断子程序的入口地址送程序计数器PC,各种中断程序的入口地址为表3-3所示。表3-3各种中断程序入口地址
中断源 入口地址
外部中断0
定时器/计数器T0
外部中断1
定时器/计数器T1
串行口中断 0003H
000BH0013H001BH0023H
处理程序从该地址开始一直到RETI指令为止,RETI指令是中断服务程序结构的标志,CPU执行完这条指令后,把响应中断时所置位的优先级状态触发器清0,然后从堆栈中单出顶上的两个字送程序计数器PC,CPU从原来中断处重新执行被中断的程序,由此可见,用户的中断服务程序末尾必须安排一条返回指令RETI,CPU现场保护和恢复必须由用户的中断服务程序实现。论文网
http://www.751com.cn/ (4) 外部中断源的响应时间
INT0和INT1电平在每一个机器周期的S5P2被采用且锁存到IE0、IE1中,这个新置入的IE0、IE1的状态等到下一个机器周期才被查询电路查询到,如果中断被激活,且满足响应条件,CPU接着执行一条硬件子程序调用指令以转到响应的中断服务入口,该硬件指令本身需两个机器周期,这样,从产生外部中断请求到执行中断服务程序的第一条指令之间至少需要三个完整的机器周期。原文请加辣.文^论,文'网QQ324'9114
如果中断请求被前面列出的三个条件之一所阻止,则需要更长的响应时间。如果已经再处理同级或更高级中断,额外的等到时间取决于正在执行的中断服务程序的处理时间。如果正在处理的指令没有执行到最后的机器周期,所需的额外等待时间不会多于3个机器周期,因为最长的指令(乘法指令MUL和除法指令DIV),也只有4个机器周期。如果正在处理的指令为ERTI或IE、IP的指令,额外的等到时间不会多于5个机器周期(执行这些指令更多需一个机器周期)。这样,再一个单一中断系统里,外部中断响应时间总是在3---8个机器周期。
外部中断的方式选择:
①电平触发方式
若外部中断定义为电平触发方式,外部中断申请触发器的状态随着CPU在每一个机器周期到的外部中断输入的电平变化而变化,这能提高CPU对外部中断请求的响应速度。当外部中断源被设定为电平触发方式时,再中断服务程序返回之前,外部中断请求输入无效(即变位高电平),否则CPU返回主程序后再次响应中断。所以电平触发方式适合于外部中断以抵电平输入而且中断服务程序能请除外部中断请求源的情况。
②边沿触发方式
外部中断定义为边沿触发方式,外部中断申请触发器能锁存外部中断输入线上的负跳变。即便是CPU暂时不能响应,中断申请标志也不会丢失。字这种方式里,如果相继连续两次采样,一个周期采样到外部中断输入为高,下个周期采样为低,则置“1”中断申请触发器,直到CPU 响应时才清0。这样不会丢失中断,但输入的负脉冲宽度至少保持12个时钟周期(若晶振频率为6MHz,则为2us),才能被CPU采样到。外部中断的边沿触发方式适合于负脉冲形式的外部中断请求。
(5)单片机在本系统的工作过程:论文网
http://www.751com.cn/本系统运用了单片机的定时/计数器的基本功能,它们分别是16位的可编程定时器/计数器,工作方式通过TMOD寄存器设置,定时/计数器的运行通过TDON寄存器设计。在此使用秒计时器应用时,可选择方式1,即16位定时器,当晶振频率为6MHz时,其最大定时时间为65536×2Us.要达到1秒的定时时间,可以通过软件的方法实现:取T0的定时为100ms,使TF0溢出10次,即可完成1秒的定时功能。
T0初值计算:M=216—X*Fosc/12 [4]
Fosc--------晶振频率 X-------定时时间
在本系统中要达到40秒的定时时间来报警,则需要使TF0溢出400次即可。
另外本系统中还运用了单片机的中断功能;8031的中断系统中有5个中断源:外部中断INTO,INT1,定时器/计数器T0,T1中断和串口UART中断,它们对应不同的中断矢量。如表3-4所示。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页
STC89C52单片机汽车防盗报警系统设计+GSM电话报警 第6页下载如图片无法显示或论文不完整,请联系qq752018766