打印
[疑难问答]

请教C51单片机中断的一点小问题

[复制链接]
1808|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiaomifan|  楼主 | 2010-3-10 22:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//INT0中断  由P3.2引脚产生
void int_0() interrupt 0 using 0
{
    FINT0=1;
}

我看源码的时候注释里面说INT0中断是由P3.2引脚产生的,在主程序里面并没有用到P3.2引脚,然后我就在主程序里面加了一行P3^2=0;果然执行INT0中断了,奇怪!
问题一:
为什么是P3.2而不是其他引脚
问题二:
这里的INT0到底是什么功能?我有查过相关资料,只说interrupt 0 using 0的0是外部中断然后使用第0组寄存器,不明白
请高手帮忙解疑,谢谢各位
沙发
ershisi| | 2010-3-10 22:56 | 只看该作者
51单片机的P3口有第二功能的

使用特权

评论回复
板凳
hulan1985| | 2010-3-10 22:58 | 只看该作者
P3.2这个是根据你硬件来定义,你要看你单片机硬件电路图

使用特权

评论回复
地板
hulan1985| | 2010-3-10 22:58 | 只看该作者
51单片机的P3口有第二功能如P3.0串行数据接收;P3.1串行数据发送;P3.2外部中断0引脚;P3.3外部中断1;P3.4定时器0外部时钟;P3.5定时器1外部时钟;P3.6外部存储器写;P3.7外部存储器读

使用特权

评论回复
5
五谷道场| | 2010-3-10 22:59 | 只看该作者
51单片机中有4组工作寄存器(R0--R7)地址分别是(00H-07H;08H--0FH;10H-17H;18H-1FH)通过PSW寄存器的RS0,RS1控制位来切换。

使用特权

评论回复
6
五谷道场| | 2010-3-10 23:00 | 只看该作者
中断的意思可以理解为插队,暂停当前正在执行的程序而去执行中断程序。
INT0是外部中断,有低电平触发和脉冲触发,当中断触发时就执行一次中断程序。

使用特权

评论回复
7
麻辣鸭脖子| | 2010-3-10 23:14 | 只看该作者
连中断都解释了,瞧,多认真:lol

使用特权

评论回复
8
David_ming| | 2010-3-10 23:46 | 只看该作者
楼上各位挺用心答哦,鼓鼓掌

使用特权

评论回复
9
David_ming| | 2010-3-10 23:52 | 只看该作者
KEIL里边interrupt关键字后边的数字是几那么中断入口就是8n+3,using关键字是指定寄存器组的,这样可以快速处理中断,如果不用这个关键字每次进中断都要保存八个寄存器组

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
suoma + 1
10
cdr1111| | 2010-3-11 17:45 | 只看该作者
需要比较主循环使用的寄存器段

使用特权

评论回复
11
ypj005| | 2010-3-11 18:07 | 只看该作者
路过,混积分:lol

使用特权

评论回复
12
suoma| | 2010-3-11 22:42 | 只看该作者
功能就是这么定的,人为设定的,9楼回答挺好的

使用特权

评论回复
13
xiaomifan|  楼主 | 2010-4-1 22:42 | 只看该作者
我知道了,那个寄存器使用哪一组可以查表

使用特权

评论回复
14
527783792| | 2010-4-25 14:58 | 只看该作者
:)

使用特权

评论回复
15
michaelpan| | 2010-5-11 20:13 | 只看该作者
P3引脚有第二功能的

使用特权

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

本版积分规则

0

主题

305

帖子

1

粉丝