"这篇资料主要介绍了单片机的中断系统,特别是中断的工作原理以及与之相关的AT89S52单片机的中断源和定时器控制寄存器TCON。"
在单片机系统中,中断是一种重要的处理机制,它使得CPU能够及时响应来自外部或内部的突发事件。中断的基本概念是,当CPU正在执行当前任务时,如果发生了某个中断事件,CPU会暂停当前任务,转而去处理这个事件。处理完事件后,CPU会返回到中断前的位置,继续执行未完成的工作。这个过程包括中断源产生中断申请、开放中断、保护现场、执行中断服务程序、恢复现场以及中断返回等步骤。
中断示意图形象地展示了这一过程,其中:
1. **中断源**:指触发中断的事件,如外部中断INT0和INT1,定时器T0和T1的溢出中断,以及串行口中断TI/RI。
2. **中断申请**:当中断源事件发生时,向CPU发送中断请求。
3. **开放中断**:CPU允许中断发生,通常通过设置中断允许寄存器来实现。
4. **保护现场**:保存CPU当前的工作状态,以便中断处理后能正确恢复。
5. **中断服务**:执行中断处理程序,解决突发事件。
6. **恢复现场**:中断处理完成后,恢复之前保存的工作状态。
7. **中断返回**:CPU从中断服务子程序返回到被中断的原位置,继续执行原来的程序。
在AT89S52单片机中,中断系统包含6个中断源:
- 2个外部中断INT0和INT1。
- 3个定时器/计数器中断:TF0(定时器0溢出)、TF1(定时器1溢出)以及TF2(虽然S51没有,但S52有)。
- 1个串行口中断TI/RI。
定时器控制寄存器TCON位于地址88H,其功能包括:
- TF0和TF1:分别用于定时器0和定时器1的溢出中断申请标志,当定时器溢出时,这些标志位会被置1,中断处理后自动清零。
- TR0和TR1:控制定时器的启动和停止,值为1表示启动定时器,值为0则停止。
- IE0和IE1:表示外部中断INT0和INT1的申请标志,当有中断请求时,这些位被置1。
- IT0和IT1:选择外部中断的触发方式,0表示低电平触发,1表示负跳变触发。
当满足中断条件时,如在INT0/INT1引脚检测到负脉冲或低电平,并且TCON中的IE0/IE1标志位已设置,那么中断申请标志会被自动设置,进而可能触发中断服务。TCON寄存器的低4位专门管理外部中断,确保中断请求的有效性和正确处理。