A. 单片机定时器T0和T1有什么区别呀求助~~~
huststi
有几句话说的不对,方式3不同。但是T0是被拆分成TH0 TL0两个独立的8位计数器。
在方式3下 TO可以构成2个定时器或者一个定时器一个计数器。
方式3下 T1是不工作的。。
还有需要补充的是 TO和T1所产生的中断优先级别不同。 找个你查下中断优先级 就知道了。。。
B. 单片机定时器T0和T1有什么区别呀
单片机定时器T0和T1的区别:
1、工作方式选择的不同。定时器T1没有方式3 ,方式3只适合定时器T0,使其增加一个8位定时器。若定时器T1选择方式3,T1将停止工作,相当于TR1=0的情况。
2、工作方式控制位的不同。在工作方式寄存器TMOD中,高4位控制定时器T1,低4位控制定时器T0。
3、运行状态的不同。定时器T0可分成2个独立的8位定时器,而定时器T1则不能;定时器T1可作为串口的波特率发生器,而定时器T0则不能。
(2)单片机t0x121扩展阅读:
51单片机中有两个16位定时/计数器T0和T1(52系列有三个:T0、T1和T2),而定时/计数器T0和T1分别是由两个8位的专用寄存器组成,即定时/计数器T0由TH0和TL0组成,T1由TH1和TL1组成。
此外,其内部还有2个8位的特殊功能寄存器TMOD和TCON,TMOD负责控制和确定T0和T1的功能和工作模式,TCON用来控制T0和T1启动或停止计数,同时包含定时/计数器的状态。其中:
TF1:定时器1溢出标志。定时/计数器溢出时由硬件置位。中断处理时由硬件清除。或用软件清除。
TF0:定时器0溢出标志。定时/计数器溢出时由硬件置位。中断处理时由硬件清除,或用软件清除。
参考资料来源:网络-定时器中断
C. 单片机T0,T1口怎么用
定时器和计数器是相同的内部电路,当电路的输入脉冲是周期性的方波时就作为定时器使用,如果过是记录外部的事件 比如按键按下等就作为计数器使用,至于怎么使用还是要通过设置相应的寄存器来控制的;例如你想产生作为计数器用来记录外部的输入信号,那就要接信号进来吧,如果用作定时器那就可以通过设置对应的寄存器完成控制信号的输出。比如简单点PWM生成,首先要设置定时器初值,计数到达后就触发中断,转入中断服务,在ISR中为了生成PWM就要设置波形占空比,然后每来一次中断取反输出电平,这样就产生了高低交错的PWM波形了
D. 51单片机用定时器T1或T2作为波特率发生器,为什么不用T0。
51单片机只有
T1、T0,没有T2(52才有)。
如果工作在方式0,方式1、方式2
的话,51单片机的T0、T1都可以做波特率发生器(一般是方式2做波特率发生器)。但是T0可以工作在方式3,T1不能工作在方式3。这种情况下,只能用T1作为波特率发生器,T1
的资源TF1、TR1给了t0,t0工作在方式3,可以当做定时器、计数器用。而如果用t0做波特率发生器,因为T1不能工作在方式3,方式3就没法用了。
E. 单片机的T0中断是什么
F. 51单片机使用T0和T1外部脉冲计数,C语言如何编程
1、使用T0和T1外部脉冲计数,控制两个电机,到1700个脉冲电机停止,
--统计脉冲个数,用外部中断更好。
--T0和T1,留着定时用。
用四个按键控制,按键1控制电机正转,按键2控制电机反转,按键3控制电机1正转,按键4控制电机2正转。
2、例程:
#include<reg51.h>
sbitk1=?;//自己定义
sbitk2=?
sbitk3=?
sbitk4=?
sbitDIAN1=?
sbitDIAN2=?
sbitDIAN3=?
sbitDIAN4=?
sbitSEN1=?
sbitSEN2=?
voiddelay(unsignedintx)
{
unsignedintm,n;
for(m=x;m>0;m--)for(n=115;n>0;n--);
}
voidmain(void)
{
TMOD=0x55;
IE=0x8a;
while(1){
if(!k1){
delay(10);
if(!k1){
while(!k1);
TH0=(65536-1700)/256;
TL0=(65536-1700)%256;
SEN1=0;
DIAN1=0;DIAN2=1;
SEN1=1;
TR0=1;
}
}
if(!k2){
delay(10);
if(!k2){
while(!k2);
TH0=(65536-1700)/256;
TL0=(65536-1700)%256;
SEN1=0;
DIAN1=1;DIAN2=0;
SEN1=1;
TR0=1;
}
}
if(!k3){
delay(10);
if(!k3){
while(!k3);
TH1=(65536-1700)/256;
TL1=(65536-1700)%256;
SEN2=0;
DIAN3=0;DIAN4=1;
SEN2=1;
TR1=1;
}
}
if(!k4){
delay(10);
if(!k4){
while(!k4);
TH1=(65536-1700)/256;
TL1=(65536-1700)%256;
SEN2=0;
DIAN3=1;DIAN4=0;
SEN2=1;
TR1=1;
}
}
}
}