『壹』 單片機的定時器的四種工作方式都是什麼書上看不懂。能不能用容易理解的話解釋一下
第一種工作方式0,是2的13次方(13位)定時器或計數器,就是最大能數8192個數的模式,數一個數就是1個機器周期。工作方式1就是2的16次方(16位)定時器或計數器,最多數65536個數,這個數呢是單片機內部的時鍾脈沖,或者是外部你自己給它送的高低電平脈沖。工作方式2是2的八次方的,也就是256,數到256就滿了,但單片機自己會把你賦給寄存器的初值再給回去,就是說你賦初值就好,其他的不用你管了。但方式0,1是你要在程序里數數滿了自己給它再寫一個初值的。工作方式三的話只有定時器0能用,定時器0會分成兩個計數器,來數外部的脈沖,方式三很少用,基本上沒用過,稍微了解一下就好
『貳』 【單片機】單片機的定時時間是怎樣計算
單片機的定時時間的計算公式=計數值(定時值)* 機器周期= 計數值(定時值)* 12 / 晶振頻率。
上面的兩個等號是等價的,因為,單片機的機器周期=12秒/晶振頻率,因此兩個公式通用。
完成一個基本操作所需要的時間稱為機器周期。一般,一個機器周期由 若干個S周期(狀態周期)組成。80C51系列單片機一個機器周期由6個S周期組成。一個S周期(狀態周期),由2個時鍾周期組成。
若干個機器周期,組成了指令周期。根據指令不同,所需的機器周期數也不同。
(2)單片機定時方式擴展閱讀
幾種典型指令;
1、單位元組周期指令(比如 INC A)
2、雙位元組單周期指令(比如 ADD A,#data)
3、單位元組雙周期指令 (比如 INC DPTR)
4、單位元組雙周期指令 (比如MOVX A @DPTR)
『叄』 單片機T1是怎麼定時的
51單片機定時器t1用作定時的方式有三種,分別為
工作方式0,13位定時模式。
工作方式1,16位定時模式
工作方式2,8位自動重裝載模式。
『肆』 51單片機定時器T1有哪3種工作模式
51單片機定時器T1有3種工作模式:方式0,方式1,方式2。
當INT0引腳為高電平時且TR0置位,TR0=1;啟動定時器T0;當INT1引腳為高電平時且TR1置位,TR1=1;啟動定時器T1。MCS-51的定時器T0有4種工作方式:方式0,方式1,方式2,方式3。MCS-51的定時器T1有3種工作方式:方式0,方式1,方式2。
(4)單片機定時方式擴展閱讀:
由於定時器/計數器的功能是由軟體編程確定的,所以一般在使用定時/計數器前都要對其進行初始化,使其按設定的功能工作。初始化的步驟一般如下:
1、確定工作方式(即對TMOD賦值);
2、預置定時或計數的初值(可直接將初值寫入TH0、TL0或TH1、TL1);
3、根據需要開放定時器/計數器的中斷(直接對IE位賦值);
4、啟動定時器/計數器(若已規定用軟體啟動,則可把TR0或TR1置「1」;若已規定由外中斷引腳電平啟動,則需給外引腳加啟動電平。當實現了啟動要求後,定時器即按規定的工作方式和初值開始計數或定時)。
『伍』 單片機定時器設置步驟
搜狐網
晴 / -25°
新手入門!如何設置單片機定時器?
嵌入式資訊精選
2018-12-05
訂閱
在單片機的學習過程中,單片機定時器的合理設置和應用是非常關鍵的一步,也是剛開始接觸單片機知識的新人工程師們比較容易出錯誤的一個環節之一。在今天的文章中,我們為大家總結了單片機定時器應用過程中的兩大常見問題進行實時解析,希望能夠對各位新人工程師的學習提供一定幫助。
問題一:51單片機的T0、T1定時器四種工作方式各有什麼特點?
在單片機定時器的應用過程中,定時器在進行設置時會有四種不同的工作方式,合理選擇相應的工作方式可以幫助工程師快速完成及時設置。下面我們就來逐一講解一下這四種不同的計時方式。方式0是單片機計時器的第一種計時方式,這一方式13位計數模式。方式1則採用16位計數模式,方式2採用8位自動重裝入計數模式,這兩種技術模式也是目前在單片機應用過程中最常使用的及時方式。最後一種單片機定時器的計時方式是方式3,這一模式下只有T0有的雙8位計數模式。
『陸』 簡述8051單片機的定時/計數器的四種工作方式的特點。
具體如下所示:
1、為13位計數器,由TL(1/0)的低5位和TH(0/1)的8位組,此時TL(1/0)的高3位未用。
C/T:C/T為0就是用作定時器(開關往上打),如果C/T為1就是用作計數器(開關往下打)。GATE:GATE後非門後是一或門,GATE=0時只要TR1=0則開關閉合。
2、是16位的定時/計數方式,將M1、M0設為01即可,其它特性與工作方式0相同。
3、自動裝入預置數的工作方式。當溢出後,T(0/1)高、低八位之間的開關打開,放在高八位的預置數進入低八位,開始第二輪,由硬體完成。代價是計數范圍少一半。
4、定時/計數器被拆成2個獨立的定時/計數器來用。
TL0能組成8位的定時器或計數器的工作方式,而TH0則只能作為定時器來用。
TLO使用T0狀態控制位C/T、GATE、TR0、INT0,而TH0使用T1的狀態控制位TR1,一般只有T1以方式2運行(當波特率發生器用),才能讓T0以方式3工作。
(6)單片機定時方式擴展閱讀:
定時器/計數器的定時/計數范圍:
工作方式1:13位定時/計數方式,因此,最多能計到2的13次方,也就是8192次。
工作方式2:16位定時/計數方式,因此,最多能計到2的16次方,也就是65536次。
工作方式3和工作方式4,都是8位的定時/計數方式,因此,最多能計到2的8次方,也說是256次。
『柒』 單片機定時器/計數器四種工作方式區別
方式0:13位定時計數方式,最大計數值為2^13=8192,定時8192個機器周期。此方式已經不再用了,是為了和以前的單片機兼容,學初者不用掌握。
方式1:16位定時計數方式,最大計數值為2^16=65536,定時65536個機器周期。此方式可實現最大的定時時間和最大計數次數。是最常用方式之一。
方式2:8位自動重裝計數方式,最大計數值為2^8=256,定時256個機器周期。此方式工作時定時或計數到了不用重裝初值,精度較高。另外在串口通訊時常用此方式。是最常用方式之一。
方式3:特殊工作方式。將定時器0分成兩個8位功能不全的定時計數器,要佔用T1部分功能。也不常用。
『捌』 at89c51單片機的定時器t1用作定時方式是
at89c51單片機的定時器t1用作定時方式有3種,默認的是方式0,為13位計數方式,這種方式很少用,完全可以用方式1代替。方式1為16位計數,最多計65536個機器周期,假設晶振頻率為12MHz,機器周期就是1us,所以,最長定時的時間是65536×1us。方式2,是自動裝載8位計數方式。常用於串口通信控制波特率。
『玖』 單片機常用的三種定時方法
1 方法1
在定時器溢出中斷得到響應時,停止定時器計數,讀出計數值(反映了中斷響應的延遲時間),根據此計數值算出到下一次中斷時,需多長時間,由此來重裝載和啟動定時器。例如定時周期為1ms,則通常定時器重裝載值為-1000(0FC18H)。下面的程序在計算每個定時周期的精確重裝載值時,考慮了由停止計數(CLR TR1)到重新啟動計數(SETB TR1)之間的7個機器周期時間。程序中#LOW(-1000+7)和#HIGH(-1000+7)是匯編符號,分別表示-1000+7=0FC1FH這個立即數的低位位元組(1FH)和高位位元組(0FCH)。
……
CLR EA ;禁止所有中斷
CLR TR1 ;停止定時器T1
MOV A,#LOW(-1000+7) ;期望數的低位位元組
ADD A,TL1 ;進行修正
MOV TL1,A ;重裝載低位位元組
MOV A,#HIGH(-1000+7) ;對高位位元組處理
ADDC A,TH1
MOV TH1,A
SETB TR1 ;重啟動定時器
SETB EA ;重開中斷
……
此方法適用於各種原因造成的定時誤差的情況,為通用方法。
2 方法2
假如定時周期為10ms,通常定時器重裝載值為0D8F0H,中斷子程序如下[2]:
ORL TL1,#0F0H
MOV TH1,#0D8H
……
這里用ORL TL1,#0F0H代替MOV TL1,#0F0H 可提高定時精度。此方法只適用於重裝載值低位位元組的低4位為零,且中斷響應的延遲時間小於16個機器周期的情況。類似的定時器重裝載值有0FFF0H,0FFE0H等。
3 方法3
假如定時周期為1ms,通常定時器重裝載值為0FC18H,中斷子程序如下:
MOV A,#LOW(-1000+4) ;期望數的低位位元組
ADD A,TL1
MOV TL1,A
MOV A,#HIGH(-1000+4) ;對高位位元組處理
ADDC A,TH1
MOV TH1,A
DEC TL1 ;恢復提前了的2個機器周期
……
這種方法中不停止定時器計數過程,若在執行指令ADDC A,TH1 或MOV TH1,A時,恰好產生TL1溢出向TH1進位的情況,則TH1的值就不對了,會產生更大的誤差。為此,程序段開頭為重裝載值加4,若有溢出進位,則可提前發生,其中2個機器周期是考慮到為TL1重裝載佔用的時間。
此方法適用於系統中無其它更高優先順序中斷源的情況。若類似方法1,在程序段開頭和結尾分別加上禁止所有中斷(CLR EA)和開中斷(SETB EA)指令,則將適用於所有情況。
4 方法4
假如定時周期不確定,只知道定時器重裝載值存放在寄存器R3、R2中,中斷子程序如下:
MOV A,#05H ;3個機器周期裝載TL1,2個周期提前
ADD A,TL1
ADD A,R2
MOV TL1,A
MOV A,R3 ;處理高位位元組
ADDC A,TH1
MOV TH1,A
DEC TL1 ;恢復提前了的2個機器周期
……
此法適用於定時周期不確定的情況,其它同方法3。
5 方法5
當定時中斷發生的位置可預知時,通常出現在主程序的AJMP $ (或SJMP $)等待指令處,中斷延遲時間為3個或4個機器周期。取固定值4可簡化補償程序。以定時周期1ms為例,中斷子程序如下:
ORG 001BH
MOV TL1,#LOW(-1000+4)
MOV TH1,#HIGH(-1000+4)
……
此方法適用於定時中斷總發生在同一條指令位置,且無其它中斷源的情況。
結 語
上述5種方法誤差均不超過1個機器周期,其中方法1、3、4較為通用,適用於任何情況,但程序較長;方法2、5簡單,但必須注意滿足對應條件,才能使用。當然,也還有其它方法[3],但比較煩瑣,並不理想,這里不一一介紹。