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;
}
}
}
}