中断函数是C51的应用特色
发布时间:2016/7/14 20:20:39 访问次数:587
中断函数是C51的应用特色,在实际应用中经常要用,在编写C51的中断函数时,需要注EPL2014-472MLC意的几个问题:
①中断函数没有返回值,因此它必须是一个void类型的函数;
②中断函数不允许利用形式参数进行数据传递,只能利用寄存器实现;
③不允许直接调用中断函数;
④中断函数对压栈和出栈的处理由编译器完成,无须人工管理;
⑤需要严格注意using m的使用,必须确保寄存器组的正确切换;
⑥进入中断函数时,SFR中的A,B,DPH,DPL和PsW都需要入栈;
⑦函数退出前,所有的寄存器内容要出栈;
⑧函数由8051的特定中断返回指令“划ⅡI”终止。
【例6.2】设单片机的晶振频率为12MHz,要求在P0.3引脚上输出周期为2ms的方波。解 周期为2ms的方波要求定时的间隔1ms,定时时间到则P0,3取反。定时器计数频率=晶振频率/12=1MIIz,计数周期=1/计数频率=1us°lms=1000Its,故计算器要计数1000次。考虑到计数器工作时是向上计数,所以必须给定时器赋初值为“53⒍1000。用定时器0的方式1编程,采用中断方式。
中断函数是C51的应用特色,在实际应用中经常要用,在编写C51的中断函数时,需要注EPL2014-472MLC意的几个问题:
①中断函数没有返回值,因此它必须是一个void类型的函数;
②中断函数不允许利用形式参数进行数据传递,只能利用寄存器实现;
③不允许直接调用中断函数;
④中断函数对压栈和出栈的处理由编译器完成,无须人工管理;
⑤需要严格注意using m的使用,必须确保寄存器组的正确切换;
⑥进入中断函数时,SFR中的A,B,DPH,DPL和PsW都需要入栈;
⑦函数退出前,所有的寄存器内容要出栈;
⑧函数由8051的特定中断返回指令“划ⅡI”终止。
【例6.2】设单片机的晶振频率为12MHz,要求在P0.3引脚上输出周期为2ms的方波。解 周期为2ms的方波要求定时的间隔1ms,定时时间到则P0,3取反。定时器计数频率=晶振频率/12=1MIIz,计数周期=1/计数频率=1us°lms=1000Its,故计算器要计数1000次。考虑到计数器工作时是向上计数,所以必须给定时器赋初值为“53⒍1000。用定时器0的方式1编程,采用中断方式。