173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

单片机外部中断接口电路

htxw 2023-03-14 资讯中心 22 ℃

如何实现单片机控制多路外部中断电路

外部中断电路,属于外部中断源,这要看是什么单片机了,普通的51单片机外部可以接两个中断源,而STC的部分单片机就可以接多个外部中断源了。AVR单片机也可接多个外部中断源。如果用普通的51单片机,还想接多个外部中断源的话,需要扩展中断电路,比较麻烦点,而且在编程时也要判断外部中断源。

单片机的外部中断脉冲电路怎么做?

单片机的外部中断脉冲电路的做法:脉冲方式中,若在连续两个机器周期中采样到先高后低的电平变化,则将中断请求标志位置“1”,此标志位一直保持到CPU响应中断时,才由硬件自动清除。所以为了防止重复响应外中断,需保证CPU在两个机器周期内检测到由高到低的负跳变,输入高电平和低电平的持续时间均要保持12个振荡周期,即一个机器周期的时间。

单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。

关于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 duan[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;i3;i++)            动态数码管闪烁

{

P2=wei[i];

P0=duan[i];

delay(35);

}

}

}

void led_() interrupt 0            //外部中断0函数,中断函数不需要申明

{

uchar i;

led=1;                                    //在中断中让灯亮起来

while(1)

{

for(i=0;i3;i++)

{

P2=wei[i];

P0=duan[i];

delay(1);

}

}

}

void delay(uchar c)

{

uchar a,b;

for(c;c0;c--)

for(a=38;a0;a--)

for(b=80;b0;b--);

}

单片机外部中断接口电路的介绍到此就结束了,感谢您耐心阅读,谢谢。

本文标签:单片机外部中断接口电路

<