打印

问大家外部中断的一个问题.

[复制链接]
3511|28
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zifeiyuuuu|  楼主 | 2007-7-23 22:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

我看到一个中断的问题不是很懂,想请教高手.

 
  在外部中断时,如果我已经把寄存器初始化,并设置为外部低电平触发,那么在外部中断发生时,单片机如何知道那段是中断子程序,我要如何做才能转到相应的子程序去.用的是51的

 

 

  如果用 if

goto 

可能还比较好理解.

但是我就是没找到类似的语句.

相关帖子

沙发
conwh| | 2007-7-23 22:31 | 只看该作者

响应的是事件,而不是程序。

使用特权

评论回复
板凳
zifeiyuuuu|  楼主 | 2007-7-23 22:45 | 只看该作者

问大家外部中断的一个问题.

???
还不是很懂,那如果发生了响应的话,接下来程序不是要保存寄存器的内容到SP什么,再转到中断处去执行(书上是这么说的),
如果按照你说的,发生中断,再说什么呢?我指的是不是执行对应的子程序吗??

使用特权

评论回复
地板
zifeiyuuuu|  楼主 | 2007-7-23 23:01 | 只看该作者

问大家外部中断的一个问题.

没有人再来解答一下吗??


555555555


我是比较菜,问的问题大家是不是不屑回答啊?

使用特权

评论回复
5
conwh| | 2007-7-23 23:03 | 只看该作者

根据不同的事件,执行不同的程序。保存事件前的状态和内

是必要的,而不是SP。如PSW、ACC等相关的,这些东西不是必须的(也可能在中断中,没有改变这些内容)。

使用特权

评论回复
6
hotpower| | 2007-7-23 23:03 | 只看该作者

守在电话机旁等电话铃声响了什么都就明白了~~~

使用特权

评论回复
7
zifeiyuuuu|  楼主 | 2007-7-23 23:14 | 只看该作者

问大家外部中断的一个问题.

楼上的老大就不要取笑我了,
哎,是太菜了.
不过现在也想学好点啊,呵呵

根据不同的事件,执行不同的程序。

这个好理解

如果说,在INT1有一个低电平的话,

我能理解的是

if P3_2==0 或者  while(P3_2==0)
在执行中断子程序,EX int什么的/

但是现在就是好象在别人写的代码里没发现类似的  语句去 转到对应的子程序..

就是发生中断时,后面的动作,


问题比较菜,,希望大家理解...

使用特权

评论回复
8
conwh| | 2007-7-23 23:15 | 只看该作者

呵呵,HOT说的就是明白。我就是苯

使用特权

评论回复
9
hotpower| | 2007-7-23 23:19 | 只看该作者

他的程序入口在0x13处~~~

使用特权

评论回复
10
zifeiyuuuu|  楼主 | 2007-7-23 23:24 | 只看该作者

问大家外部中断的一个问题.

恩,中断1的入口地址 在0X13,那就把中断子程序丢在以这个地址开头的一段寄存器里??

要用软件去实现这个过程的吧?

希望HOT大哥 写个比较简单的 例子

只要大概说明这个执行的过程就行了,真是万分感谢,



使用特权

评论回复
11
maychang| | 2007-7-23 23:25 | 只看该作者

回楼主

Hotpower 不是取笑,说的是实话。
外部中断发生时,程序自动转向某一地址(中断矢量),这个不用你操心,你只要把中断需要执行的程序放到这里就行了(用C语言,连这也不用操心)。当然,对可屏蔽中断来说条件是开了中断。“SP什么”也不用你操心。
既然“书上是这么说的”,回去再好好看看书,估计你根本没有看完全。

使用特权

评论回复
12
conwh| | 2007-7-23 23:27 | 只看该作者

强烈要求,倒!

使用特权

评论回复
13
zifeiyuuuu|  楼主 | 2007-7-23 23:31 | 只看该作者

问大家外部中断的一个问题.

楼上大哥说的是,我比较早把学校用的一本单片机的教材完整看过,由于现在没用到单片机的东西,所以看的比较少,

只是前天看一段代码的时候,关于类似这个地方的没看懂,所以想请教一下,


使用特权

评论回复
14
zifeiyuuuu|  楼主 | 2007-7-23 23:37 | 只看该作者

问大家外部中断的一个问题.

还有教材里的都是汇编,跟C好象不一样吧,

你只要把中断需要执行的程序放到这里就行了(用C语言,连这也不用操心)。

应该就是 你说的这个过程没搞明白了吧..0X13下面地址开始的一段内容存放中断子程序,就是这个是怎么实现的..


使用特权

评论回复
15
maychang| | 2007-7-23 23:44 | 只看该作者

回楼主

用C你就不必操心,这个说过了。
用汇编,一般不能将整个中断程序放到地址0013H处,因为这里只能放8字节,只能在地址0013H处放一条跳转指令,跳到你的中断程序处,你的中断程序则随便放到哪里都行。

使用特权

评论回复
16
hotpower| | 2007-7-23 23:47 | 只看该作者

INT=0时"嗵"的一声程序就自动跑到0x13去了~~~

使用特权

评论回复
17
conwh| | 2007-7-23 23:47 | 只看该作者

maychang说的地方叫“指针(向量)区”

使用特权

评论回复
18
maychang| | 2007-7-23 23:57 | 只看该作者

INT=0时"嗵"的一声程序就自动跑到0x13去了

干了这么多年,单片机"嗵"的一声从来没听见过。
倒是开关电源经常“嗵”的一声,冒一股烟,有时还冒火……

使用特权

评论回复
19
zifeiyuuuu|  楼主 | 2007-7-23 23:59 | 只看该作者

问大家外部中断的一个问题.

大哥门
最好给个简单的例子吧
比如有   a,b,c,d 4个子程序,现在INT1==0了,跳转到 0X13 去执行对应的 子程序,比如 到0013H  就是去执行子程序 a ,这个是如何 去写呢??

用  C 的....


谢谢了

使用特权

评论回复
20
conwh| | 2007-7-24 00:00 | 只看该作者

呵呵

“扑”一声,电容破了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

96

帖子

0

粉丝