⑴ 51单片机INT1中断电平触发方式和跳变沿触发方式有什么区别
真正的区别在于:
电平触发方式时,中断
标志寄存器
不锁存
中断请求
信号。也就是说,单片机把每个
机器周期
的S5P2采样到的外部
中断源
口线的电平逻辑直接赋值到中断标志寄存器。标志寄存器对于请求信号来说是透明的。这样当中断请求被阻塞而没有得到及时响应时,将被丢失。换句话说,要使电平触发的中断被CPU响应并执行,必须保证
外部中断
源口
线的
低电平
维持到中断被执行为止。因此当CPU正在执行同级中断或更高级中断期间,产生的外部中断源(产生低电平)如果在该中断执行完毕之前撤销(变为
高电平
)了,那么将得不到响应,就如同没发生一样。同样,当CPU在执行不可被中断的指令(如RETI)时,产生的电平触发中断
如果时间
太短,也得不到执行。边沿触发方式时,中断标志寄存器锁存了中断请求。中断口线上一个从高到低的跳变将记录在标志寄存器中,直到CPU响应并转向该
中断服务程序
时,由硬件自动清除。因此当CPU正在执行同级中断(甚至是外部中断本身)或高级中断时,产生的外部中断(负跳变)同样将被记录在中断标志寄存器中。在该中断退出后,将被响应执行。如果你不希望这样,必须在中断退出之前,手工清除外部中断标志。
选择电平触发还是边沿触发方式应从系统使用外部中断的目的上去考虑,而不是如许多资料上说的根据中断源信号的特性来取舍。
⑵ 51单片机为什么按int1键没反应按int0正常,设计要求是按下后相应LED灯X会闪5下
程序修改如下:
#include<reg52.h>
void Delay10ms(unsigned int);
sbit X=P2^0;
sbit Y=P2^1;
unsigned int i;
int K;
void main()
{
EA=1;
EX0=1;
IT0=1;
EX1=1;
IT1=1;
X=1;
Y=1;
i=10;
while(1)
{
switch(K)
{
case 1: for(i;i>0;i--)
{
Delay10ms(10);
X=~X;
}
break;
case 2:
for(i;i>0;i--)
{
Delay10ms(10);
Y=~Y;
}
break;
default: break;
}
}
}
void EX_INT0() interrupt 0
{
Delay10ms(1);
K=1;
}
void EX_INT1() interrupt 1
{
Delay10ms(1);
K=2;
}
void Delay10ms(unsigned int c) //误差 0us
{
unsigned char a,b;
for(;c>0;c--)
for(b=38;b>0;b--)
for(a=130;a>0;a--);
}
⑶ 51单片机INT1中断电平触发方式和跳变沿触发方式有什么区别
真正的区别在于:
电平触发方式时,中断标志寄存器不锁存中断请求信号。也就是说,单片机把每个机器周期的S5P2采样到的外部中断源口线的电平逻辑直接赋值到中断标志寄存器。标志寄存器对于请求信号来说是透明的。这样当中断请求被阻塞而没有得到及时响应时,将被丢失。换句话说,要使电平触发的中断被CPU响应并执行,必须保证外部中断源口线的低电平维持到中断被执行为止。因此当CPU正在执行同级中断或更高级中断期间,产生的外部中断源(产生低电平)如果在该中断执行完毕之前撤销(变为高电平)了,那么将得不到响应,就如同没发生一样。同样,当CPU在执行不可被中断的指令(如RETI)时,产生的电平触发中断如果时间太短,也得不到执行。边沿触发方式时,中断标志寄存器锁存了中断请求。中断口线上一个从高到低的跳变将记录在标志寄存器中,直到CPU响应并转向该中断服务程序时,由硬件自动清除。因此当CPU正在执行同级中断(甚至是外部中断本身)或高级中断时,产生的外部中断(负跳变)同样将被记录在中断标志寄存器中。在该中断退出后,将被响应执行。如果你不希望这样,必须在中断退出之前,手工清除外部中断标志。
选择电平触发还是边沿触发方式应从系统使用外部中断的目的上去考虑,而不是如许多资料上说的根据中断源信号的特性来取舍。
⑷ 单片机int的取值范围
单片机int的取值范围:
int 占两个字节 范围:-32768~+32767
(4)单片机int1扩展阅读:
单片机是大二计算机专业科目,还有其他的单片机单位,如下:
1、long占四个字节 范围:-2147483648~+2147483647
2、float占四个字节 范围:3.40E+38 ~ +3.40E+38
3、double占8个字节 范围:-1.79E+308 ~ +1.79E+308
51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一。
⑸ 关于51单片机INT1和INT0的用法的一个问题
中断的优点在于响应的及时性,而你用判断IO口电位变化来做就不行了,遇到有延时程序和循环语句很难及时对IO的变化作出响应。比如红外接收,如果不用外部中断的话,往往不能准确捕捉到红外接收信号。所以在51红外接收系统中往往将红外管的接收信号接到外部中断0或1.
⑹ 51单片机利用外部中断INT0和INT1实现编码器双向计数功能
分数给的太少了。我只能给你提供一个思路,然后你自已写程序:
int0和int1分别对应单片机两个不同的引脚,你要先在单片机复位时在特殊功能寄存器中来配置这两个引脚的功能,int0和int1的中断都分别有两个功能,一个是计数器工作方式,一个是外部中断工作方式。
你的这个要求是不能用int0和int1两个引脚的计数器功能的,你只能用外部中断功能。
然后定义好int0和int1分别在中断时的跳转地址,在程序进入中断之后,分别在不同的中断程序中对一个寄存器表示的计数器进行加1或者减1操作。
一定记得在处理中断的时候,要把中断使能的寄存器标置位关掉,以避免中断重复执行和错误。
⑺ 标准51单片机的外部中断INT0与INT1的触发方式与STC15W4K32S4单片机有何不同
一样的,没有不同,STC与标准C51 兼容,地址都一样。
⑻ 单片机INT0和INT1口干嘛用的
单片机正常工作时,要不停的执行它的程序。在INT0或INT1口输入一个信号(低电平或下降沿),就可以使单片机临时停下正在执行的程序,转去执行预先编好、另外的程序。INT0和INT1,称为外部中断申请输入端。
例如:
断电保护就只能用INT0或INT1,因为不知道什么断电,而且必须在断电的时候保存一下数据;用普通IO也可以实现,但那样的话,单片机会浪费很多时间来查询这个IO了,而且也不是实时。
(8)单片机int1扩展阅读:
单片机工作的三个条件分别是电源、时钟晶振、复位。当单片机不能正常工作时,首先就要检查这三个条件,用电压表或者万用表检测他的电源和接地脚,检测两个引脚之间的电压是不是5V左右;对于时钟晶体振荡有没有正常工作,最好用示波器进行检测,看能否检测到相应频率的正弦波脉冲。
⑼ 单片机INT1 INT0和Ei1 EI0的区别
INTx 是单片机的引脚。
EIx 是单片机内部的位。