文档详情

华东交通大学 单片机微机原理及应用基础教程第4章 51单片机中断、定时计数器及串行接口.pptx

发布:2017-06-01约5.77千字共94页下载文档
文本预览下载声明
4.1 中断系统 4.2 定时/计数器 4.3 串行通信及串行接口 ;4.1 中断系统;可以提高CPU的工作效率; 便于实时处理; 便于故障的及时发现,提高系统的可靠性。;80C51的五个中断源: 2个外部中断源: 外部中断请求INT0、外部中断请求INT1。 3个外部中断源: 定时/计数器T0、T1的溢出中断请求; 串行口中断请求。;TCON:特殊功能寄存器TCON既是定时/计数器 T0、T1的启闭控制寄存器;同时它也锁存了T0、 T1及外部中断INT0、INT1的中断标志位。 TCON字节地址为88H,可位寻址。;D7;D7;D7;D7;如果多个中断源同时申请中断,则CPU响应顺序为先高后低。 低优先级中断请求不能打断高优先级的中断服务,但高优先级中断请求可以打断低优先级的中断服务。 同级中断请求不能打断同级中断服务。;D7;EA:中断允许总控位。若EA=0,所有中断请求均被禁止;若EA=1,则由各个中断控制位决定是否允许中断。 EX0/EX1:外部中断0/外部中断1中断允许位。 ET0/ETl:T0/T1中断允许控制位。 ES:串行口中断允许控制位; EA=1,且对应的中断允许控制位等于1。CPU 会在每个机器周期对中断源进行检测。若某中断源 提出中断申请,则需满足下列条件就可立即响应。 1)无同级或高级中断正在服务。 2)检测到有中断请求到来的机器周期是当前正在 执行指令的最后1个机器周期且已结束,这样可保 证当前指令的完整执行。;3)当检测到有中断请求到来时正在的指令是 RETI指令,或者是访问IE寄存器、访问IP寄存 器的指令时,则需要待上述指令己执行完毕并 且又执行完了它下面的一条指令。 ;4.1.3 中断响应的条件;CPU在每机器周期的S5P2时刻采样各中断源,建立中断请求标志; 在每机器周期的S6期间按照设定的优先顺序逐个查询中断请求标志位。如果查到某中断请求标志为1,且满足前述中断响应条件,就在下一机器周期S1状态予以响应。 3. 中断响应的主要操作是执行由硬件电路自动生成的一条LCALL指令。其中,addrl6就是中断源的中断入口地址。首先将断点地址入栈保护,然后把addrl6送入PC中,使程序自动转到相应的中断人口处执行中断服务程序。;外部中断INT0; 从检测到中断到转去执行中断服务程序所需的时间称为中断响应时间。 理想情况是检测到中断到来的机器周期是当前正在执行指令的最后一个机器周期,接着用2个机器周期的时间执行自动生成的LCALL指令,共需要3个机器周期。 其他情况下中断的响应时间一般在3~8个机器周期。;1)定时器/计数器的中断请求标志TF0/TF1是在响应中断后由硬件自动清除的。 2)对于串行口中断请求标志TI/RI则应在中断服务程序中由软件清除。 3) 对于外部中断请求标志IE0/IE1也是在响应中断后由硬件自动清除的。 4)如果外部中断是以电平触发方式申请中断,当本次中断请求已被响应后若INT0/INT1管脚的低电平没有及时撤除,则有可能再次引起中断。如果外部中断工作在脉冲下降沿触发方式下,则IE0/IE1被清零后就可以了,不存在信号撤除问题。 ; 为了解决这个问题,可采用下图所示的硬件连接:;(1)开中断和允许中断源中断 SETB EA SETB EX0 ; (/EX1,ET0,ET1,ES) (2)确定各中断源的优先级 SETB PX0 ;(/PX1,PT0,PT1,PS) CLR PX0 ;(/PX1,PT0,PT1,PS);例1:规定外部中断0为电平触发方式,高优先级,写出初始化程序。;例2:规定外部中断1为边沿触发方式,低优先级,在中断服务程序中将寄存器B的内容左移一位,B的初值为01H,试编写主程序与中断服务程序。 ;MAIN:SETB EA SETB EX1 CLR PX1 SETB IT1 MOV B,#01H HALT:SJMP HALT;4.2 定时/计数器;;TH0、TL0构成定时/计数器T0的16位计数器TH1、TL1构成定时/计数器T1的16位计数器 定时器控制寄存器TCON 工作方式寄存器TMOD;计数器;D7;D7;工作方式0:13位的计数器结构,由TH0全部8位和TL0的低5位构成。工作方式0的逻辑电路结构如下图。;工作方式1:与工作方式0基本相同,只是其计数核心为 16位,即使用了THx与TLx的全部16位。工作方式1的逻辑电路结构如下图。;工作方
显示全部
相似文档