登录
首页 单片机论坛
回帖 发帖
正文

主题:新人请教C51单片机中断的一点小问题

点击:1409 回复:5

//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组寄存器,不明白
请高手帮忙解疑,谢谢各位
10-02-26 11:40
P3.2这个是根据你硬件来定义,你要看你单片机硬件电路图
10-02-26 12:36
习本51单片机的书看下吧,51单片机的P3口有第二功能如P3.0串行数据接收;P3.1串行数据发送;P3.2外部中断0引脚;P3.3外部中断1;P3.4定时器0外部时钟;P3.5定时器1外部时钟;P3.6外部存储器写;P3.7外部存储器读;要问为什么这样安排,只有去问芯片设计的。51单片机中有4组工作寄存器(R0--R7)地址分别是(00H-07H;08H--0FH;10H-17H;18H-1FH)通过PSW寄存器的RS0,RS1控制位来切换。
中断的意思可以理解为插队,暂停当前正在执行的程序而去执行中断程序。
INT0是外部中断,有低电平触发和脉冲触发,当中断触发时就执行一次中断程序。
最后修改:2010-2-26 12:43:55
10-02-26 12:37
问题一:
为什么是P3.2而不是其他引脚
问题二:
这里的INT0到底是什么功能?我有查过相关资料,只说interrupt 0 using 0的0是外部中断然后使用第0组寄存器,不明白
1:硬件定义了这个脚就是中断口,这是单片机设计者规定的。
2:INT0就是一个中断口,interrupt 0 using 0是中断后进入函数,里面是产生中断后要干什么;简单讲,INT0是瓶口,interrupt 0 using 0是瓶内,瓶内是什么就看你瓶内放的是什么;
使用这个中断,在程序初始化中把这个中断打开,设定中断性质,打开总中断。
那这个口有信号,CPU在运行中就走到interrupt 0 using 0函数来了。
简例,如果你设定外部中断0为下升延中断;
那P3_2有个低电平信号,那就会把P1_0取反:0-》1;1》0;
sbit SS=P1_0;
void int_0() interrupt 0 using 0
{
   SS=~SS;
}
10-03-17 02:44
这个是硬件设计的呀
10-03-21 07:39
厂家设计的就是P3.2
10-03-21 16:56

工控新闻

更多新闻资讯