MCS-51单片机中断系统实践:定时器初始化配置

需积分: 10 6 下载量 152 浏览量 更新于2024-08-21 收藏 3MB PPT 举报
"本文主要介绍了MCS-51单片机的中断系统和定时/计数器的使用,包括初始化设置、中断处理流程、中断源、中断嵌套以及中断服务子程序的特点。" MCS-51单片机的中断系统是其核心功能之一,它允许处理器在执行当前任务时响应外部或内部的突发事件。中断系统由中断源、中断请求、中断服务和中断返回四个部分组成。在MCS-51中,中断源包括5/6个固定的可屏蔽中断,如外部中断0、1和定时器/计数器的中断。这些中断源分为两级中断优先级,能够实现中断嵌套,提高了系统的实时性和效率。 中断使能控制寄存器IE和中断优先级寄存器IP是控制中断的关键。IE用于开启或关闭中断,而IP则用来设置中断优先级。中断响应过程涉及中断请求、CPU检测中断请求、保存现场、执行中断服务程序以及最后的中断返回。 在中断服务子程序与子程序调用之间存在显著区别。中断服务子程序通常是随机触发的,服务于外设,比如处理中断事件;而子程序调用则是程序设计人员按需安排的,主要用于主程序的逻辑处理,与外设无关。中断服务子程序需要保护现场以确保中断处理结束后能够正确返回到被中断的位置。 对于定时/计数器的初始化,例如: 1. 对于定时器0的模式0初始化,工作在软件启动状态,定时10ms。假设单片机主频为6MHz,那么定时器的预设值应为(6MHz / 12) / 1000 * 10 = 500。因此,需要将TH0和TL0设置为适当的值来达到这个计数值。 2. 定时器1的模式1初始化,同样为10ms定时。在模式1下,定时器是以16位计数的,所以预设值为(6MHz / 12) / 10000 = 50。需要设置TMOD寄存器选择定时器1工作在模式1,并设置TH1和TL1的值。 3. 定时器1的模式2初始化,用于计数,计数长度为100。在模式2下,定时器1自动重装载初值,因此预设值应为99,因为当计数到100时会溢出并重新加载初值。同样,需要设置TMOD寄存器选择模式2,并设置TH1的值,TL1不需要设置,因为它是自动重装载的。 在这些初始化过程中,还需要考虑是否打开中断允许,例如通过设置IE寄存器中的相关位来开启定时器的中断。同时,如果需要中断嵌套,还需要注意中断优先级的设置。 总结来说,MCS-51单片机的中断系统和定时/计数器的灵活使用是实现高效、实时、可靠系统的关键。理解和熟练掌握这些知识点对于编写有效的单片机程序至关重要。