
当然不一样了
1电平触发是在高或低电平保持的时间内触发,
2而边沿触发是由高到低或由低到高这一瞬间触发
3 边沿触发一般时间短,边沿触发一般时间都是us级的,响应要快的,而电平触发只须是高和低就可以了,没时间要求,比如10s 时间内总是低电平,那么它也是触发的,
比如中断计时或计数,最好用边沿触发,用电平触发误差会很大,电平触发一般用于简单报警,开关一类(时间要求不高的)
这里TF、TR、IE、IT后面跟的0和1是对单片机寄存器中位的命名,因为有两个定时/计数器、两个中断,所以用0、1来区分。
各位的定义如下:
TF1、TF0:分别是定时器1、定时器0的溢出标志位。当定时器x计满溢出时,由硬件使TFx位置“1”,并申请中断。进入中断服务程序后,由硬件自动清“0”,在查询方式下用软件清“0”。
TR1、TR0:分别是定时器1、定时器0的运行控制位。由软件清“0”关闭定时器。当GATE=1,且INTx为高电平时,TR置“1”启动定时器;当GATE=0,TRx置“1”启动定时器。
IE1、IE0:分别为外部中断1、外部中断0的请求标志位。
IT1、IT0:分别为外部中断1、外部中断0的触发方式选择位。当ITx=0,为低电平触发方式;当ITx=1,为下降沿触发方式。
扩展资料:
TCON初始化:
1、确定工作方式(即对TMOD赋值);
2、预置定时或计数的初值(可直接将初值写入TH0、TL0或TH1、TL1);
3、根据需要开放定时器/计数器的中断(直接对IE位赋值);
4、启动定时器/计数器(若已规定用软件启动,则可把TR0或TR1置“1”;若已规定由外中断引脚电平启动,则需给外引脚加启动电平。当实现了启动要求后,定时器即按规定的工作方式和初值开始计数或定时)。
参考资料来源:百度百科-TCON
#include<reg51h>
#define uchar unsigned char
uchar led=0xfe;
sbit kr=P3^2;
sbit kl=P3^3;
uchar key;
void delay(uchar a)
{
uchar i;
while(a--)for(i=0;i<120;i++);
}
void ext0() interrupt 0
{
key=1;
while(kr==0);
}
void ext1() interrupt 2
{
key=2;
while(kl==0);
}
main()
{
EX0=1;
EX1=1;
IT0=1;
IT1=1;
EA=1;
while(1)
{
if(key==1){P1=led;led=_cror_(led,1);}
else if(key==2){P1=led;led=_crol_(led,1);}
else P1=0xff;
delay(200);
}
}
INT0/1为1下降沿触发 为0电平触发 ,而下降沿触发IE0和IE1可以自动清零,而电平触发得人为把IE0和IE1清零,要不然会一直启动中断。IE0/1可以自动清零,所以一般用下降沿触发
下面是修改的代码。你注意注释部分:
ORG
0000H
JMP
START
ORG
13H
//这里要改,因为it0和it1的中断向量表地址不同,这个地方要
//看你的单片机类型,51的话,就不是13这数值,你看看你的
//it0的中断起始地址应该是什么,把13H改了。
JMP
INT_0
//改为INT_0
START:
MOV
IE,#10000100B
//IE也需要改,设置中断控制寄存器:
//改为MOV
IE,#01001000B
MOV
SP,#30H
SETB
IT1
//这里要改为SETB
IT0
MOV
A,#01010101B
LOOP:
MOV
P0,A
CALL
DELAY
CPL
A
JMP
LOOP
INT_0:
PUSH
PSW
PUSH
ACC
SETB
RS0
MOV
R0,#3
INT_LOOP:MOV
A,#0FEH
MOV
R1,#7
INT_LOOPL:MOV
P0,A
CALL
DELAY
RL
A
DJNZ
R1,INT_LOOPL
MOV
R1,#7
INT_LOOPR:MOV
P0,A
CALL
DELAY
RR
A
DJNZ
R1,INT_LOOPR
DJNZ
R0,INT_LOOP
POP
ACC
POP
PSW
RETI
DELAY:
MOV
R7,#200
D1:
MOV
R6,#250
DJNZ
R6,$
DJNZ
R7,D1
RET
END
需要改的就这几个地方,希望你看看。因为你没有具体的限制是什么类型的单片机,这样的话,指令和中断地址就不能非常具体的给你改。你结合我的提示,改改吧。
以上就是关于单片机中IT0=1与IT0=0有什么区别全部的内容,包括:单片机中IT0=1与IT0=0有什么区别、单片机 TCON 每一位:TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 表示什么意思0或1代表什么谢谢,百度百科都没、求一个程序,两个独立按键控制流水灯左右循环的程序,谢谢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)