电气自动化技术网

MCS-51单片机中断函数注意事项

时间:2013-10-02 来源:电气自动化技术网 编辑:编辑部 点击:次 字体设置:
(1)中断函数不能进行参数传递,如果中断函数中包含任何参数声明都将导致编译出错。
(2)中断函数没有返回值,如果企图定义一个返回值将得不到正确的结果,建议在定义中断函数时将其定义为void类型,以明确说明没有返回值。
(3)在任何情况下都不能直接调用中断函数,否则会产生编译错误。因为中断函数的返回是由8051单片机的RETI指令完成的,RETI指令影响8051单片机的硬件中断系统。如果在没有实际中断情况下直接调用中断函数,RETI指令的操作结果会产生一个致命的错误。
(4)如果在中断函数中调用了其它函数,则被调用函数所使用的寄存器必须与中断函数相同。否则会产生不正确的结果。
(5)C51编译器对中断函数编译时会自动在程序开始和结束处加上相应的内容,具体如下:在程序开始处对ACC、B、DPH、DPL和PSW入栈,结束时出栈。中断函数未加using n修饰符的,开始时还要将R0~R1入栈,结束时出栈。如中断函数加using n修饰符,则在开始将PSW入栈后还要修改PSW中的工作寄存器组选择位。
(6)C51编译器从绝对地址8m+3处产生一个中断向量,其中m为中断号,也即interrupt后面的数字。该向量包含一个到中断函数入口地址的绝对跳转。
(7)中断函数最好写在文件的尾部,并且禁止使用extern存储类型说明。防止其它程序调用。
顶一下
(0)
0%
踩一下
(0)
0%
打 印】【顶 部】【关 闭】【挑 错
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
版权与免责声明:
①凡本网注明"来源:电气自动化技术网"的所有作品,版权均属于电气自动化技术网,转载请必须注明出处“电气自动化技术网http://www.dqjsw.com.cn”。违反者本网将追究相关法律责任。
②本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。
③如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
栏目导航:互感器 | 智能电网 | 无功补偿 | 电容器 | 变压器 | 电源 | 避雷器 | 电抗器 | opc | 三菱PLC | 西门子PLC | 欧姆龙PLC | PLC视频教程 | 电工基础知识
© www.dqjsw.com.cn 2008-2013 版权所有 ICP网站备案:渝ICP备11003104号