18luck网站

18luck网站電子設計 | 18luck网站Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 18luck网站 >> 18luck平台 >> 單片機 >> 正文

16課:單片機定時器與計數器

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2017-12-4

一、計數概念的引入

   從(cong) 選票的統計談起:畫“正”。這就是計數,生活中計數的例程處處可見。例:錄音機上的計數器、家裏麵用的電度表、汽車上的裏程表等等,再舉(ju) 一個(ge) 工業(ye) 生產(chan) 中的例程,線纜行業(ye) 在電線生產(chan) 出來之後要計米,也就是測量長度,怎麽(me) 測法呢?用尺量?不現實,太長不說,要一邊做一邊量呢,怎麽(me) 辦呢?行業(ye) 中有很巧妙的辦法,用一個(ge) 周長是1米的輪子,將電纜繞在上麵一周,由線帶輪轉,這樣輪轉一周不就是線長1米嘛,所以隻要記下輪轉了多少圈,就能知道走過的線有多長了。

二、計數器的容量  

 從(cong) 一個(ge) 生活中的例程看起:一個(ge) 水盆在水龍頭下,水龍沒關(guan) 緊,水一滴滴地滴入盆中。水滴持續落下,盆的容量是有限的,過一段時間之後,水就會(hui) 逐漸變滿。錄音機上的計數器最多隻計到999….那麽(me) 單片機中的計數器有多大的容量呢?8031單片機中有兩(liang) 個(ge) 計數器,分別稱之為(wei) T0和T1,這兩(liang) 個(ge) 計數器分別是由兩(liang) 個(ge) 8位的RAM單元組成的,即每個(ge) 計數器都是16位的計數器,最大的計數量是65536。

三、定時

8031中的計數器除了能作為(wei) 計數之用外,還能用作時鍾,時鍾的用途當然很大,如打鈴器,電視機定時關(guan) 機,空調定時開關(guan) 等等,那麽(me) 計數器是如何作為(wei) 定時器來用的呢?

一個(ge) 鬧鍾,我將它定時在1個(ge) 小時後鬧響,換言之,也能說是秒針走了(3600)次,所以時間就轉化為(wei) 秒針走的次數的,也就是計數的次數了,可見,計數的次數和時間之間的確十分相關(guan) 。那麽(me) 它們(men) 的關(guan) 係是什麽(me) 呢?那就是秒針每一次走動的時間正好是1秒。


<單片機定時器記數器結構>

結論:隻要計數脈衝(chong) 的間隔相等,則計數值就代表了時間的流逝。由此,單片機中的定時器和計數器是一個(ge) 東(dong) 西,隻不過計數器是記錄的外界發生的事情,而定時器則是由單片機供給一個(ge) 非常穩定的計數源。那麽(me) 供給組定時器的是計數源是什麽(me) 呢?看圖1,原來就是由單片機的晶體(ti) 震蕩器經過12分頻後獲得的一個(ge) 脈衝(chong) 源。晶體(ti) 震蕩器的頻率當然很準,所以這個(ge) 計數脈衝(chong) 的時間間隔也很準。問題:一個(ge) 12M的晶體(ti) 震蕩器,它供給給計數器的脈衝(chong) 時間間隔是多少呢?當然這很不難,就是12M/12等於(yu) 1M,也就是1個(ge) 微秒。結論:計數脈衝(chong) 的間隔與(yu) 晶體(ti) 震蕩器有關(guan) ,12M的晶體(ti) 震蕩器,計數脈衝(chong) 的間隔是1微秒。

四、溢出

讓我們(men) 再來看水滴的例程,當水持續落下,盆中的水持續變滿,最終有一滴水使得盆中的水滿了。這個(ge) 時候如果再有一滴水落下,就會(hui) 發生什麽(me) 現象?水會(hui) 漫出來,用個(ge) 術語來講就是“溢出”。

水溢出是流到地上,而計數器溢出後將使得TF0變為(wei) “1”。至於(yu) TF0是什麽(me) 我們(men) 稍後再談。一旦TF0由0變成1,就是產(chan) 生了變化,產(chan) 生了變化就會(hui) 引發事件,就象定時的時間一到,鬧鍾就會(hui) 響一樣。至於(yu) 會(hui) 引發什麽(me) 事件,我們(men) 下次課再介紹,現在我們(men) 來研究另一個(ge) 問題:要有多少個(ge) 計數脈衝(chong) 才會(hui) 使TF0由0變為(wei) 1。

五、任意定時及計數的辦法    剛才已研究過,計數器的容量是16位,也就是最大的計數值到65536,因此計數計到65536就會(hui) 產(chan) 生溢出。這個(ge) 沒有問題,問題是我們(men) 現實生活中,經常會(hui) 有少於(yu) 65536個(ge) 計數值的要求,如包裝線上,一打為(wei) 12瓶,一瓶藥片為(wei) 100粒,怎麽(me) 樣來滿足這個(ge) 要求呢?

提示:如果是一個(ge) 空的盆要1萬(wan) 滴水滴進去才會(hui) 滿,我在開始滴水之前就先放入一勺水,還需要10000滴嘛?對了,我們(men) 采用預置數的辦法,我要計100,那我就先放進65436,再來100個(ge) 脈衝(chong) ,不就到了65536了嗎。定時也是如此,每個(ge) 脈衝(chong) 是1微秒,則計滿65536個(ge) 脈衝(chong) 需時65.536毫秒,但現在我隻要10毫秒就能了,怎麽(me) 辦?10個(ge) 毫秒為(wei) 10000個(ge) 微秒,所以,隻要在計數器裏麵放進55536就能了。

Tags:單片機教程,定時器與計數器  
責任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁麵
下到頁底
晶體管查詢