㈠ 單片機的定時器部件有哪兩種功能
使用51單片機時經常用到一個元件,那就是單片機定時器。在很多定時系統中發揮著重要作用。單片機定時器有哪些作用?使用單片機時定時器是怎樣工作的?怎樣運行的?本文就由大神普及單片機定時器的相關知識,為大家講解在系統中單片機定時器發揮著什麼作用?
首先要為大家解釋的一個問題是,單片機定時器其實跟我們平時常說的計數器,是同一個電子元件,只不過計數器記錄的是51單片機外部情況,所接受的也是外部脈沖,而定時器則是由單片機自身提供的一個非常穩定的計數器,這個穩定的計數器就是單片機上連接的晶振部件。單片機的晶振經過12分頻之後提供給單片機的只有1MHZ的穩定脈沖,晶振的頻率是非常准確的,所以單片機的計數脈沖之間的時間間隔也是非常准確的,這個准確的時間間隔是1微秒。
下面我們來看一下,一個單片機定時器的簡單結構圖,如下圖所示:
單片機定時器的簡單結構圖
而無論是單片機定時器,還是計數器,他們在單片機的工作運行過程中都有定時或事件計數功能,因此常常會被應用於時間控制、程序延時、對外部時間計數和檢測等工作范圍內。而一旦了解了計數器/定時器的應用領域和使用情況,工程師就可以充分利用單片機定時器來完成一些對時間限制要求精準的程序的設定,例如信號檢測或電氣自動化設計,都是比較常用到51單片機計數器進行程序設計的領域。
㈡ 51單片機的定時器和計數器分別定時和計數的周期是多長時間,這個脈沖周期有規定嗎
定時器/計數器本質上都是計數器,只不過數的東西不一樣.
定時器/計數器做為定時器來用的時候,是數的單片機時鍾的脈沖個數,也就是說,單片機的時鍾做為定時器/計數器的時鍾源,因為單片機的時鍾一般比較固定,因此,我們就知道一個脈沖佔多長時間,因為根據脈沖的個數,就能推算出時間,就能做定時器用.
比如:12MHz的傳統51單片機,一個脈沖周期是1us,如果定時器數了10個脈沖周期就中斷了,說明10us時間到了.
而作為計數器的時候,數的是來自引腳上的脈沖,也就是說,是引腳上的脈沖做為定時器/計數器的時鍾源,如果這個脈沖是規律的,周期是固定的,那麼,也可以實現定時,比如,如果引腳的脈沖是10KHz的,那麼,一個脈沖周期是100us,如果定時器/計數器數了10個脈沖周期就中斷,說明1ms時間到了.
但是,如果引腳上的脈沖頻率不固定,時高時低,那麼,就沒辦法根據脈沖個數算出時間來,此時,就只是單純的計數功能.
總而言之,定時器/計數器本質都是對脈沖計數,只是作為定時器,數的是內部的脈沖,做為計數器,數的是外部的脈沖,如果脈沖固定,外部脈沖也可以用來定時.贊同0|評論
㈢ 單片機里的定時器與定時器中斷是兩個東西。
單片機里的定時器一般叫定時、計數器,既可以用作定時,又可以用作計數。
開啟定時器後,定時器的數會隨著你配置的寄存器的時間來增加,直到增加到溢出時,就會產生一個中斷信號,這時,如果你開定時器中斷了,就會產生定時器中斷。
打個比方,定時器好比你的鬧鍾,而中斷就好比你定的鬧鈴。你的鬧鍾開啟後一直在走,走到你定的鬧鈴時間的時候,就相當於定時器到中斷了,這時候,看你開沒開鬧鈴,也就是開沒開中斷,如果開了,鬧鈴就響了,就相當於進中斷了。
㈣ 單片機定時器與計數器的區別
在51單片機的學習過程中,我們經常會發現中斷、計數器/定時器、串口是學習單片機的難點,兩者的區別是什麼呢?下面就跟著我一起來看看吧。
單片機計數器與定時器的區別
計數器和定時器的本質是相同的,他們都是對單片機中產生的脈沖進行計數,只不過計數器是單片機外部觸發的脈沖,定時器是單片機內部在晶振的觸發下產生的脈沖。當他們的脈沖間隔相同的時候,計數器和定時器就是一個概念。
在定時器和計數器中都有一個溢出的概念,那什麼是溢出了。呵呵,我們可以從一個生活小常識得到答案,當一個碗放在水龍頭下接水的時候,過了一會兒,碗的水滿了,就發生溢出。同樣的道理,假設水龍頭的水是一滴滴的往碗里滴,那麼總有一滴水是導致碗中的水溢出的。在碗中溢出的水就浪費了,但是在單片機的定時計數器中溢出將導致一次中斷,至於什麼是中斷我們下次再講,這里只是初步的提下概念,中斷就是能夠打斷系統正常運行,而去運行中斷服務程序的過程,當服務程序運行完以後又自動回到被打斷的地方繼續運行。
在定時器計數器中,我們有個概念叫容量,就是最大計數量。方式0是2的13次方,方式1是2的13次方,方式2是2的8次方,方式3是2的8次方。把水滴比喻成脈沖,那麼導致碗中水溢出的最後一滴水的就是定時計數器的溢出的最後一個脈沖。
在各種單片機書本中,在介紹定時計數器時都講到一個計數初值,那什麼是計數初值呢?在這里我們還是假設水滴碗。假設第一百滴水能夠使碗中的水溢出,我們就知道這個碗的容量是100。問題1,我如何才能使碗接到10滴水就溢出呢?呵呵,我可以想像,如果拿一個空碗去接水,那麼還是得要100滴水才能溢出,但是如果我們拿一個已經裝有水的碗拿去接,那就不用100滴了。到此我們可以算出,要使10滴水讓碗中的水溢出,那麼碗中就先要裝90滴水。
在定時計數器中,這90滴水就是我們所謂的初始值。問題2,在一個車間我們如何利用單片機對100件產品進行計件,並進行自動包裝呢?
我們可以利用計數器計數100,在中斷中執行一個自動包裝的動作就可以了。
在這里計數初值有3個,假設有方式0:計數初值=8912(2的13次方)—100=8812。方式1:計數初值=65536(2的16次方)—100=65436。方式0:計數初值=256(2的8次方)—100=156。
根據所得的初始值,再將其轉換為16進制或者2進制,就可以進行計數或者定時了。當然要讓程序完全的運行起來還需要相應的寄存器進行設置。這些可以從各種單片機教程中找到。
單片機中定時器與計數器的區別
定時器實際上也是計數器,只是計數的是固定周期的脈沖
定時/計數器很容易理解的啊
定時器實際上也是工作在計數方式下,只是計數的是固定周期的脈沖,由於脈沖周期固定,由計數值可以計算時間,有定時功能
定時和計數只是觸發來源不同(時鍾信號和外部脈沖)其他方面是一樣的。
單片機里的寄存器可以看成一個個電子開關,用來切換不同的功能、信號。
51里通過TMOD里的T/C 位切換計數信號的來源
當T/C工作在定時器時,對振盪源12分頻的脈沖計數,即每個機器周期計數值加1,計數頻率為1/12fosc,當晶振頻率6MHZ時,計數頻率為500KHz,每2us計數值加1;晶振12MHZ就是每1us加1 了。
當T/C工作在計數器是,計數脈沖來自外部脈沖輸入管腳T0(P3.4)或T1(P3.5),當T0或T1腳上負跳變時計數值加1 ,識別管腳負跳變需要2個機器周期,即24個振盪周期。所以T0或T1腳輸入的可計數的外部脈沖的最高頻率為1/24fosc,當晶振12MHZ時,最高計數頻率為500KHz,高於此頻率將計數出錯。
至於賦初值就是杯子原理了,由於51隻能加計數,且只能在杯子剛剛滿的那一刻發出中斷,觸發中斷程序,所以我們就往杯子里先放好一定的豆子,再來相應數量的豆子就滿了,然後中斷程序就自動工作了。
注意:
定時和計數只是觸發來源不同(時鍾信號和外部脈沖)其他方面是一樣的。
假設我們要定時一定時間(100個機器周期),我們就置初值為(溢出值-100)就行了,假設我們要計件100個,實際上也是置初值為(溢出值-100),然後將輸入脈沖設為外部輸入就可以了
所以說:定時和計數只是觸發來源不同(時鍾信號和外部脈沖)其他方面是一樣的。
在中斷里置初值是為下一個循環作準備,沒什麼好說的,看需要定了。
由於定時計數器的值也可以隨時讀出來,所以我們也可以從0開始計數,從而計算一段時間或一定脈沖的數量哦,這是照樣可以打開中斷,中斷時就說明已經又計數了(定時器溢出值)個脈沖哦,在中斷里進行溢出處理,就可以計算出遠遠大於(定時器溢出值)的數字了
此時也要注意一點:51讀數時除了T/C2的捕捉功能,直接讀TH和TL可是不斷變化的哦,具體的還是看書。當你理解了定時計數器後,我們甚至還可以將計數值置為(溢出值-1),從而實現自動單步(定時模式)或作為外部中斷(計數模式)用哦,仔細想想吧,呵呵;-)
至於中斷中的需要保護現場的原因,是為了防止不小心修改了別的程序的參數,從而影響別的程序的運行,所以要且只要保護中斷程序自己動過的數據,將動過的那些存儲器在退出中斷時恢復到進入時的狀態,就不會影響被中斷的程序了。
匯編需要自己保存現場,反正程序就是自己編的嘛,一切盡在掌握中;
C的話編譯器會自動進行覆蓋分析,自動保存需要保存的變數,一般應用時盡可放心,當然,如果你很了解編譯器做了什麼,也可以嵌入匯編天馬行空自由發揮啊,但新手可不建議這樣哦,還是交給編譯器吧。
其實這些可以說都是基礎知識啊,如果不明白肯定是你的書看的不夠仔細哦.
猜你喜歡
1. 單片機的硬體結構是什麼
2. 10秒定時器電路設計
3. 單片機技術論文
4. 單片機的發聲原理
5. 單片機開題報告範文
6. 電子實習報告單片機
7. 單片機實訓報告範文3篇
㈤ 單片機定時器的內部結構由哪四部分組成
這個定時器的內部結構部分如下:
1、計數器:用於計數,每個時鍾周期加1,計數值可以被讀取和寫入,通常是一個16位的寄存器。
2、預分頻器:用於將外部時鍾源的頻率分頻,以降低計數器的計數速度,從而實現更長的計時范圍。通常是一個8位的寄存器。
3、比較器:用於將計數器的值與一個預設的比較值進行比較,當計數器的值與比較器的值相等時,就會產生一個中斷或者觸發一個事件。
4、控制邏輯:用於控制定時器的操作模式和計時范圍,包括選擇計時模式、使能定時器、啟動/停止計數等。
㈥ 51單片機的定時器有幾種工作模式
51單片機的定時器有兩種工作模式,即定時器模式和計數器模式。
首先,讓我們來了解一下定時器模式。在定時器模式下,定時器會根據預設的時間間隔進行計數,並在達到預設值時產生中斷或輸出特定信號。這個預設時間間隔可以通過編程設置定時器的初值和分頻系數來調整。定時器模式通常用於需要定時控制的應用場景,如定時開關、定時采樣等。
接下來是計數器模式。在計數器模式下,定時器會對外部輸入信號進行計數,並在達到預設值時產生中斷或輸出特定信號。這個外部輸入信號可以是來自外部設備的脈沖信號,也可以是單片機內部的其他信號。計數器模式通常用於需要計數控制的應用場景,如脈沖計數、頻率測量等。
除了這兩種基本模式外,51單片機的定時器還可以通過編程實現其他功能,如波形發生器、事件計數器等。通過靈活運用定時器的各種模式和功能,可以實現豐富的應用場景和控制需求。
綜上所述,51單片機的定時器具有定時器模式和計數器模式兩種工作模式,這些模式可以通過編程靈活配置,以滿足不同的應用需求。在實際應用中,我們可以根據具體需求選擇適當的模式,並通過編程實現所需的功能和控制邏輯。