导航:首页 > 操作系统 > 51单片机外部中断

51单片机外部中断

发布时间:2022-05-04 06:30:24

‘壹’ 51单片机中如果要利用他的外部中断是不是必须把线接到P3.2和P3.3上呢

是的,既然外部中断,必须由外部输入,打开总中断和外部中断使能,并且设置是电平触发还是下降沿触发,当中断条件满足时,即可进入中断服务函数
EA=1; //开总中断
EX0=1;//开外部中断0
IT0=1;//下降沿触发
然后可以写中断服务函数了,但一定要注意中断序号不要搞错了
至于中断优先级可以不设,因其只有0和1两种,况且用中断嵌套比较复杂
中断程序编号:
外部中断0:0
定时/计数器0中断:1
外部中断1:2
定时/计数器1中断:3
串行口中断:4
定时/计数器2中断:5
中断函数后面必须注明interrupt 及序号如
void timer0()interrupt 1//定时器0中断

‘贰’ 51单片机中的外部中断有什么作用

可以打个比方,每天上班你都随时需要知道你同事的工作进度情况,你是希望你不停地打个电话去问“你做完了吗”,还是希望他做完了主动打个电话给你讲“我做完了,我们谈谈吧”。这就是中断的意义,在不需要的时候不影响处理 器做其它的事情,提高效率,增强程序的实时性。

‘叁’ 51单片机外部中断

一。外部中断0下降沿方式。如果在中断过程中,又继续来了几个下降沿,那么这些中断是被忽略了还是排队等待执行?
答案:会被忽略,只有在中断返回时,硬件才会清除中断标志,此时之后有下降沿来临才会被触发申请中断。

二。外部中断0低电平方式。如果在中断过程中,一直都是低电平,那么这些中断是被忽略了还是排队等待执行?
答案:如果中断返回时还是低电平,那么会排队等待执行。

‘肆’ 51单片机如何使用定时器计数器扩展外部中断

把定时器设为外部计数模式,初值为65535或255,开定时器中断,这样,来一个脉冲,计数器即溢出,可进入中断程序。

‘伍’ 51单片机外部中断是哪几个管脚

五个中断有指定的IO口,一般51单片机是P3.2是INT0,P3.3是INT1,P3.4是T0,P3.5是T1,INT0和INT1是外部中断,T0和T1是定时器,ES是串行口中断允许位,ET1是定时器1中断允许位,EX1是外部中断允许位,ET0和EX0类似。

要产生中断,必须先配置好并使能中断线。根据需要的边沿检测设置两个触发寄存器,同时在中断屏蔽寄存器的相应位写1允许中断请求。

当外部中断线上发生了期待的边沿时,将产生一个中断请求,对应的挂起位也随之被置l。在挂起寄存器的对应位写1,将清除该中断请求。

如果需要产生事件,必须先配置好并使能事件线。根据需要的边沿检测通过设置两个触发寄存器,同时在事件屏蔽寄存器的相应位写1允许事件请求。

当事件线上发生了需要的边沿时,将产生一个事件请求脉冲,对应的挂起位不被置1。通过在软件中断/事件寄存器写1,也可以通过软件产生中断/事件请求。

(5)51单片机外部中断扩展阅读:

外部中断的触发有两种触发方式:电平触发方式和跳沿触发方式。

电平触发方式

若外部中断定义为电平触发方式,外部中断申请触发器的状态随着CPU在每个机器周期采样到的外部中断输入线的电平变化而变化,这能提高CPU对外部中断请求的响应速度。

当外部中断源被设定为电平触发方式时,在中断服务程序返回之前,外部中断请求输入必须无效(即变为高电平),否则CPU返回主程序后会再次响应中断。所以电平触发方式适合于外部中断以低电平输入而且中断服务程序能清除外部中断请求源(即外部中断输入电平又变为高电平)的情况。

跳沿触发方式

外部中断若定义为跳沿触发方式,外部中断申请触发器能锁存外部中断输入线上的负跳变。即便是CPU暂时不能响应,中断申请标志也不会丢失。

在这种方式里,如果相继连续两次采样,一个机器周期采样到外部中断输入为高,下一个机器周期采样为低,则置“1”中断申请触发器,直到CPU响应此中断时才清’0’。

这样不会丢失中断,但输入的负脉冲宽度至少保持12个时钟周期(若晶振频率为6MHz,则为21xs),才能被CPU采样到。外部中断的跳沿触发方式适合于以负脉冲形式输入的外部中断请求。

‘陆’ 51单片机外部中断触发方式

外部中断触发方式有2种,低电平触发方式和下降沿触发方式和低电平触发方式一般单片机能识别的低电平是0.8V,只要低于这个电压就能触发中断。

‘柒’ 51单片机的外部中断有哪两种触发方式

有两种触发方式,一是低电平触发,二是下降沿触发,由于低电平触发易引起中断重入问题,所以常用下降沿触发。

‘捌’ 关于51单片机的外部中断

我也是初学者,不过我觉得你的中断程序有点问题,如下,仅供参考。
INT00:
PUSH
ACC
PUSH
PSW
MOV
P2,#0FFH
;全灭
CALL
DELAY
MOV
P2,#00H
;全亮
CALL
DELAY
POP
PSW
POP
ACC
RETI

‘玖’ 关于51单片机的外部中断使用方法

使用方法:
单片机的P2.5,P2.6,P2.7口分别接三位动态数码管的位选端,P0口接动态数码管的段选端。然后,P1.0口接一个电阻串联一个LED灯然后接地,电阻取200~470欧之间就行,是一个限流电阻。
中断用的是外部中断0,要触发中断的时候,就用一根杜邦线一端接地,一端接到单片机的P3.2口就行,这样,就满足了你的要求了。
外部中断的触发方式有低电平触发和下降沿触发。到底是那种触发方式,要设置中断允许寄存器中IT0的值,如果IT0=0,像我写的程序,就是低电平触发,如果为1,就是下降沿触发。
灯不是一定要接到P3.2口上的。中断要执行的任务是在中断函数中写代码控制的,就像我写的代码中,你只需要控制LED灯接的那个IO口就行了。
代码如下:
#include
#define
uchar
unsigned
char
sbit
led=P1^0;
uchar
code
an[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar
code
wei[3]={0x06,0x05,0x03};
void
delay(uchar
c);
void
ini_()

//初始化函数,设置中断触发方式,开中断
{

EA=1;

IT0=0;

EX0=1;
}
void
main()
{
uchar
i;

ini_();
led=0;

//由于单片机上电之后,所有的IO口默认是高电平,而要求是开始不亮,所以要将P1.0口开始设置为低电平。

while(1)

{
for(i=0;i<3;i++)

动态数码管闪烁
{
P2=wei[i];
P0=an[i];
delay(35);
}
}
}
void
led_()
interrupt
0

//外部中断0函数,中断函数不需要申明
{
uchar
i;
led=1;

//在中断中让灯亮起来
while(1)
{
for(i=0;i<3;i++)
{
P2=wei[i];
P0=an[i];
delay(1);
}
}
}
void
delay(uchar
c)
{
uchar
a,b;
for(c;c>0;c--)
for(a=38;a>0;a--)
for(b=80;b>0;b--);
}

阅读全文

与51单片机外部中断相关的资料

热点内容
机顶盒刷机源码 浏览:985
编码pdf下载 浏览:944
隔壁同学app怎么 浏览:299
c语言宏命令 浏览:542
php卡死源码 浏览:574
time库中的clock函数python 浏览:989
cad视觉移动命令怎么打开 浏览:821
安卓java调用python 浏览:395
java标准时间 浏览:137
华为服务器湖北渠道商云主机 浏览:30
韩式面部护理解压视频 浏览:301
pdf换成jpg图片 浏览:897
dh加密算法 浏览:107
安卓手机如何隐藏微信信息提示 浏览:632
nodejs解压缩 浏览:262
直流双转子压缩机 浏览:952
pythonxmlstring 浏览:822
用私钥加密之后可以用公钥解密 浏览:788
ug如何启动服务器 浏览:444
csgo防抖动命令 浏览:961