C51单片机的中断操作,与直接在主函数内写入中断服务程序有什么区别?

顺便问下哈,为什么P0口加上拉电阻就能导入高电流,并能操作发光二极管了呢?是不是P0口输出低电平时将二极管(阴极为低电平)短路了?用基本电路知识解释下哈,多谢多谢!

当你的主程序很长的时候,把中断的操作写在主程序中不能快速的响应。例如一个外部中断在主程序的开头被触发,而你的中断操作放在主程序的结尾。而你的整个主程序的运行时间是10ms,那么你这个中断操作就延迟了10ms。如果放在中断服务程序中,不论何时发生中断,CPU将会跳到中断服务程序中去处理中断操作。这是单片机的一种并行操作方式。第二个问题:因为P0口是漏极开路的。你去看看P0口的内部结构图,再用一点点的电路知识就能分析出来。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-04
二楼说的已经相当好了。我只是想在补充一些,主函数内是不能写中断服务程序----函数内是不能再定义函数的,中断服务程序也是一个函数。还有计算机中,设置中断就是为了达到实时响应,如果你只在中断程序中设置一个标号,然后把中断的操作写在其他函数中就不能快速的响应中断,而失去了中断的意义了。如你把定时器设为1ms中断一次,在中断服务程序用一个标号来表示有中断产生,然后在其他函数中执行中断的操作,又假如其他函数执行的时间需要10ms那么也就11ms才执行一次中断,从而失去了中断的意义了。2:因为P0口是漏极开路的。与你所想的也许有很大的区别。呵呵!希望可以帮到你!
第2个回答  2017-01-12
首先为这个你要调用的c文件写一个头文件,比如这个文件叫fun.c,那你可以写一个叫fun.h的头文件。这个头文件的内容是fun.c文件里的函数声明。接着把fun.c加入你的项目里。下一步在主函数的上面用#include "fun.h"把头文件包含进来。
第3个回答  2013-06-04
就像电脑关机与待机的区别
相似回答