<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > MCS51單片機的定時(shí)器/計數器概念 非常好的寄存器關(guān)系圖

MCS51單片機的定時(shí)器/計數器概念 非常好的寄存器關(guān)系圖

作者: 時(shí)間:2016-11-20 來(lái)源:網(wǎng)絡(luò ) 收藏
一、MCS-51單片機定時(shí)器/計數器概念

單片機中的定時(shí)器和計數器其實(shí)是同一個(gè)物理的電子元件,只不過(guò)計數器記錄的是單片機外部發(fā)生的事情(接受的是外部脈沖),而定時(shí)器則是由單片機自身提供的一個(gè)非常穩定的計數器,這個(gè)穩定的計數器就是單片機上連接的晶振部件;MCS-51單片機的晶振經(jīng)過(guò)12分頻之后提供給單片機的只有1MHZ的穩定脈沖;晶振的頻率是非常準確的,所以單片機的計數脈沖之間的時(shí)間間隔也是非常準確的,這個(gè)準確的時(shí)間間隔是1微秒;
MCS-51單片機外接的是12MHZ的晶振(實(shí)際上是11.0592MHZ),所以,MCS-51單片機內部的工作頻率(時(shí)鐘脈沖頻率)是12MHZ/12=1MHZ=1000000次/秒=1000000條指令/秒=1000000次/1000000微秒=1次/微秒=1條指令/微秒;也就是說(shuō),晶振振蕩一次,就會(huì )給單片機提供一個(gè)時(shí)鐘脈沖,花費的時(shí)間是1微秒,此時(shí),CPU會(huì )執行一條指令,經(jīng)歷一個(gè)機器周期;即:1個(gè)時(shí)鐘脈沖=1個(gè)機器周期=1微秒=1條指令;
注:個(gè)人PC機上的CPU主頻是晶振經(jīng)過(guò)倍頻之后的頻率,這一點(diǎn)恰好與MCS-51單片機的相反,MCS-51單片機的主頻是晶振經(jīng)過(guò)分頻之后的頻率;
總之:MCS-51單片機中的時(shí)間概念就是通過(guò)計數脈沖的個(gè)數來(lái)測量出來(lái)的;1個(gè)脈沖=1微秒=1條指令=1個(gè)機器周期;
MCS-51單片機定時(shí)器/計數器的簡(jiǎn)單結構圖:



8051系列單片機有兩個(gè)定時(shí)器:T0和T1,分別稱(chēng)為定時(shí)器和定時(shí)器T1,這兩個(gè)定時(shí)器都是16位的定時(shí)器/計數器;8052系列單片機增加了第三個(gè)定時(shí)器/計數器T2;它們都有定時(shí)或事件計數功能,常用于時(shí)間控制、延時(shí)、對外部時(shí)間計數和檢測等場(chǎng)合;
二、定時(shí)器/計數器的結構
8051單片機的兩個(gè)定時(shí)器T0和T1分別都由兩個(gè)特殊功能寄存器組成;T0由特殊功能寄存器TH0和TL0構成,而T1則是由TH1和TL1構成;
作為定時(shí)器使用時(shí),定時(shí)器計數8051單片機片內振蕩器輸出經(jīng)過(guò)12分頻后的脈沖個(gè)數,即:每個(gè)機器周期使定時(shí)器T0/T1的寄存器值自動(dòng)累加1,直到溢出,溢出后繼續從0開(kāi)始循環(huán)計數;所以,定時(shí)器的分辨率是時(shí)鐘振蕩頻率的1/12;
作為計數器使用時(shí),通過(guò)引腳T0(P3.4)或T1(P3.5)對外部脈沖信號進(jìn)行計數,當輸入的外部脈沖信號發(fā)生從1到0的負跳變時(shí),計數器的值就自動(dòng)加1;計數器的最高頻率一般是時(shí)鐘振蕩頻率的1/24;
由此可知,不論是定時(shí)器還是計數器工作方式,定時(shí)器T0和T1均不占用CPU的時(shí)間,除非定時(shí)器/計數器T0和T1溢出,才可能引起CPU中斷,轉而去執行中斷處理程序;所以說(shuō),定時(shí)器/計數器是單片機中效率高而工作靈活的部件;
三、定時(shí)器/計數器的工作模式
除了可選擇定時(shí)器和計數器的這兩種工作方式外,每個(gè)定時(shí)器/計數器都有4種工作模式;
在模式0、1和2時(shí),T0和T1的工作模式相同;在模式3時(shí),兩個(gè)定時(shí)器/計數器的工作模式不同;
工作模式0:
由TL0的低5位和TH0的全部8位共同構成一個(gè)13位的定時(shí)器/計數器;定時(shí)器/計數器啟動(dòng)后,定時(shí)或計數脈沖個(gè)數加到TL0上,從預先設置的初值(時(shí)間常數)開(kāi)始累加,不斷遞增1;當 TL0計滿(mǎn)后,向TH0進(jìn)位,直到13位寄存器計滿(mǎn)溢出;溢出時(shí),定時(shí)器/計數器硬件會(huì )自動(dòng)地把13位的寄存器值清0,中斷標記TF0置1;如果需要進(jìn)一步定時(shí)/計數,需要使用相關(guān)指令重置時(shí)間常數,并把定時(shí)器/計數器的中斷標記TF0置0;工作模式0的結構如下圖:


工作模式1:
模式1與模式0幾乎完全相同,唯一的區別就是,模式1中的寄存器TH0和TL0共同構成的是一個(gè)16位定時(shí)器/計數器來(lái)參與操作,因此比模式0中的定時(shí)/計數范圍更大;工作模式1的結構如下圖:


工作模式2:
這種模式又稱(chēng)為自動(dòng)再裝入預置數模式;當定時(shí)器/計數器的寄存器TH0/TL0的值溢出時(shí),定時(shí)器/計數器硬件設備會(huì )自動(dòng)把寄存器TH0/TL0的值清0,以重新開(kāi)始操作;但是有時(shí)候,我們的定時(shí)/計數操作是需要多次重復定時(shí)/計數的,如果溢出時(shí)不做任何處理,那么,在第二輪定時(shí)/計數時(shí)就是從0開(kāi)始定時(shí)/計數了,而這并不是我們想要的;所以,要保證每次溢出之后,在重新開(kāi)始定時(shí)/計數的操作是我們想要的,那就要把預置數(時(shí)間常數)重新裝入某個(gè)地方;而重新裝入預置數的操作是硬件設備自動(dòng)完成的,不需要人工干預所以,這種工作模式就叫自動(dòng)再裝入預置數方式;既然需要重新裝入預置數,那么預置數就必須要存放在某個(gè)地方,才能保證重裝操作成功;在工作模式2中,把自動(dòng)重裝入的預置數存放在定時(shí)器/計數器的寄存器的高8位中,也就是存放在TH0中,而只留下TL0參與定時(shí)/計數操作;顯然,定時(shí)/計數的方位小了很多;
注:這個(gè)工作模式常用于波特率發(fā)生器(串口通訊),T1工作在串口模式2;用于這種方式時(shí),定時(shí)器就是為了提供一個(gè)時(shí)間基準;計數溢出之后,不需要做太多的事情,只做一件事就可以,就是重新裝入預置數,再開(kāi)始重新計數,而且中間不需要任何延時(shí);工作模式2的結構如下圖:


工作模式3:
由于定時(shí)器/計數器T1沒(méi)有工作模式3,如果把定時(shí)器/計數器T0設置為工作模式3,那么TL0和TH0將被分割成兩個(gè)相互獨立的8位定時(shí)器/計數器;工作模式3的結構如下圖:


四、定時(shí)器/計數器的定時(shí)/計數范圍
工作方式0——13位定時(shí)器 / 計數器 工作 模式,最多可計數2的13次方 次,即:8192次,[0,8191];
工作方式1——16位定時(shí)器/計數器 工作 模式,最多可計數2的16次方 次,即:65536次,[0,65535];
工作方式2——8位定時(shí)器/計數器工作模式,計算次數最多為2^8,即256,,[0,255];
工作方式3——8位定時(shí)器/計數器工作模式 ,計算次數最多為2^8,即256,,[0,255];
預置數的計算公式:預置數=最大值-需要計數的次數;

五、定時(shí)器/計數器的控制寄存器
8051單片機設計了兩個(gè)8位的特殊功能寄存器來(lái)控制定時(shí)器/計數器的工作狀態(tài);這兩個(gè)特殊功能寄存器分別是TMOD和TCON;它倆都在特殊功能寄存器區;

1、工作模式控制寄存器TMOD(89h):
2、工作狀態(tài)控制寄存器TCON(88H):
六、定時(shí)器/計數器的初始化
注:由于8051單片機的定時(shí)器/計數器使用的時(shí)鐘脈沖是外部晶振(12MHZ)經(jīng)過(guò)12分頻(12MHZ/12=1MHZ)之后的頻率,所以,一個(gè)時(shí)鐘脈沖就是1微秒;所以,8192個(gè)脈沖=8192微秒=8.192毫秒; 65536個(gè)脈沖=65536微秒=65.536毫秒; 256個(gè)脈沖=256微秒=0.256毫秒;

1、設置定時(shí)器/計數器的工作模式TMOD(常用的是模式1:TMOD=0x01);
2、裝入預置數到THx和TLx中(THx=TLx=MAX(8192/65536/256)-計數次數);
3、如果工作在中斷方式,則需要開(kāi)定時(shí)器/計數器的中斷TCON中的標志位:TF0/TF1=0/1;
4、啟動(dòng)定時(shí)器/計數器:TR0/TR1=1;


評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>