中断的汇编语言编程
发布时间:2014/6/8 21:02:55 访问次数:834
51单片机已经集成了绝大部分的中断接口电路,设计人员的主要工作是在于要实现中断的接口编程,SAA7126H中断的汇编语言编程包括中断系统的初始化和中断服务程序两部分。
中断系统的初始化
51单片机的中断系统功能可以通过上述特殊功能寄存器进行统一管理,中断系统初始化是指用户对这些特殊功能寄存器中的各控制位进行赋值。
中断系统初始化步骤如下:
(1)开相应中断源的中断。
(2)设定所用中断源的中断优先级。
(3)若为外部中断,则应规定低电平还是负脉冲的中断触发方式。
【例6-1]请写出INTO为脉冲触发和高中断优先级的中断系统初始化程序。
解:①采用位操作指令
显然,采用位操作指令进行中断系统初始化比较简单,因为用户不必记住各控制位在相应特殊功能寄存器中的确切位置,而各控制位名称是比较容易记忆的。
中断服务子程序
虽然不同的中断源有不同的中断服务要求,CPU在中断服务子程序中的处理任务是不一样的,但一般都有以下几个步骤。
保护现场
点和保存有关寄存器的内容,前者有中断隐指令在中断周期内完成,而后者需要在中断服务子程序中用指令编程实现(一般用入栈指令)。
51单片机已经集成了绝大部分的中断接口电路,设计人员的主要工作是在于要实现中断的接口编程,SAA7126H中断的汇编语言编程包括中断系统的初始化和中断服务程序两部分。
中断系统的初始化
51单片机的中断系统功能可以通过上述特殊功能寄存器进行统一管理,中断系统初始化是指用户对这些特殊功能寄存器中的各控制位进行赋值。
中断系统初始化步骤如下:
(1)开相应中断源的中断。
(2)设定所用中断源的中断优先级。
(3)若为外部中断,则应规定低电平还是负脉冲的中断触发方式。
【例6-1]请写出INTO为脉冲触发和高中断优先级的中断系统初始化程序。
解:①采用位操作指令
显然,采用位操作指令进行中断系统初始化比较简单,因为用户不必记住各控制位在相应特殊功能寄存器中的确切位置,而各控制位名称是比较容易记忆的。
中断服务子程序
虽然不同的中断源有不同的中断服务要求,CPU在中断服务子程序中的处理任务是不一样的,但一般都有以下几个步骤。
保护现场
点和保存有关寄存器的内容,前者有中断隐指令在中断周期内完成,而后者需要在中断服务子程序中用指令编程实现(一般用入栈指令)。