关于单片机中的中断问题

我想知道编程时我们都给中断程序一个地址,那主程序是怎么转到中断程序的?是不是程序一直执行,地址增加,直到增加到中断程序的地址主程序才发生跳转呢?但是外部中断0的中断入口地址是0003H,那岂不是程序刚开始就进入中断了,你们可能会说在主程序开始时也就是0000H后面加个跳转,跳开中断的入口地址,但是那样的话什么时候中断入口地址岂不永远用不上了,还有那个中断的原因是我们给编程设计上的,还是突发事件?我单片机太差,这个问题已经困扰我很长时间了,希望你能帮我,谢谢
大哥大姐们,你们说的这些书上都有,我都看过了,我就想知道那个中断的原因(不是中断程序)是怎么形成的?编程我也会,就是编完程序后,是不是中断程序对应电路的一个按钮,想让电路执行中断程序时,按一下对应的按钮就可以?

单片机有5个(兼容型可能要多一些)中断源,他们通过硬件检测,出现了特定的条件,就从硬件的角度,给出中断申请标志。

这些都不是由软件编写出来的。

编写软件,可以进行中断的开放、优先级等设置。
程序执行期间,一旦出现中断申请标志,PC会自动转到相应的中断入口地址去取指令,执行中断程序。
-----------------------------------
硬件检测就是在芯片内部,由单片机本身的电路来进行检测,不需要编程来进行干预。
中断申请标志共有5种,只有两种外部中断,可以自动检测外接的按钮是否按下。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-09-01
问题挺多的。
给你举一个例子吧:
比如我们用C语言写了一个程序并且用编程器烧到单片机里边了。

在C语言进行编译的时候,就会自动把那些中断程序的地址放到相应的中断入口地址中。其中开机的时候肯定跳转到main()函数那里。当有一些中断发生的时候,比如串口中断,就会触发相应的串口中断程序,当然还得满足一定的条件。
建议,动手实验一下,会理解的更快点。
第2个回答  2009-09-01
这些中断是由硬件实现的,比如外部中断入口是0003H,那么当单片机的外部中断被触发时,会自动生成LJMP 0003H ,各个中断的处罚条件不一样,外部中断就分电平触发和沿触发。当然这两个用哪个是可以设置的。满足条件就触发了
第3个回答  2009-09-01
LOOK!!!!!
ORG 0000H
AJMP MAIN
ORG O00BH
AJMP INTT0
ORG 0030H
MAIN:^^^^^

复位后,从0000H处执行,这个位置安排的AJMP MAIN,所以中断没有被执行,而当有中断产生时,就自动到了中断的入口地址000BH,这个地方安排的是跳转到中断服务程序的跳转指令:AJMP INTTO

明白了吗?如果还是没明白,就想楼上说的,好好看书就好了
第4个回答  2009-09-01
由硬件完成的pc指针寄存器内的数值改变,这样就转到了中断服务程序。不用软件设置。
第5个回答  2009-09-01
你该多看看书和教材了....