<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 調整單片機時鐘精度的解決方案

          調整單片機時鐘精度的解決方案

          作者: 時間:2014-11-14 來源:網絡 收藏

            本文針對用制作電子鐘或要求根據時鐘啟控的控制系統(tǒng)時,出現(xiàn)的校準了的電子時鐘的時間竟然變快或是變慢了的情況而提出的一種解決方案。

          本文引用地址:http://www.ex-cimer.com/article/265384.htm

            應用中,常常會遇到這種情況,在用制作電子鐘或要求根據時鐘啟控的控制系統(tǒng)時,會突然發(fā)現(xiàn)當初校準了的電子時鐘的時間竟然變快或是變慢了。

            于是,嘗試用各種方法來調整它的走時精度,但是最終的效果還是不盡人意,只好每過一段時間手動調整一次。那么,是否可使時鐘走時更精確些呢?現(xiàn)探討如下:

            一、誤差原因分析

            1.單片機電子時鐘的計時脈沖基準,是由外部晶振的頻率經過12分頻后提供的,采用內部的定時,計數器來實現(xiàn)計時功能。所以,外接晶振頻率的精確度直接影響電子鐘計時的準確性。

            2.單片機電子時鐘利用內部定時,計數器溢出產生中斷(12MHz晶振一般為50ms)再乘以相應的倍率,來實現(xiàn)秒、分、時的轉換。大家都知道,從定時,計數器產生中斷請求到響應中斷,需要3_8個機器周期。定時中斷子程序中的數據人棧和重裝定時,計數器的初值還需要占用數個機器周期。此外。從中斷人口轉到中斷子程序也要占用一定的機器周期。例如:

            

           

            從上述程序可以看出,從中斷人口到定時/計數器初值的低8位裝入需要占用2+2+2=6個機器周期。所以,在編程時一般會把這6個機器周期加入定時/計數器的初值中。但是,從定時,計數器溢出中斷請求到執(zhí)行中斷需要幾個機器周期(3~8個機器周期)。就很難確定準確值,正是這一原因導致了電子時鐘計時的不準。

            二、解決方法

            1、采用高精度晶振方案

            雖然采用高精度的晶振可以稍微提高電子鐘計時的精確度,但是晶振并不是導致電子鐘計時不準的主要因素,而且高精度的晶振價格較高,所以不必采用此方案。

            2、動態(tài)同步修正方案

            從程序人手,采用動態(tài)同步修正方法給定時,計數器賦初值。動態(tài)同步修正方法如下:由于定時,計數器溢出后,又會從O開始自動加數,故在給定時/計數器再次賦值前,先將定時,計數器低位(TLO)中的值和初始值相加,然后送人定時,計數器中,此時定時,計數器中的值即為動態(tài)同步修正后的準確值。具體程序如下:

            

           

            采用此種方法后,相信制作的電子時鐘的精度已有提高了。

            3.自動調整方案

            采用同步修正方案后,電子時鐘的精度雖然提高了很多,但是由于晶振頻率的偏差和一些其他未知因素的影響(同一塊電路板、同樣的程序換了一片單片機后,走時誤差不一樣,不知是何原因),時間長了仍然會有積累誤差。為此,可采用自動調整方案。實際上是一種容錯技術。其自動調整原理為:實測出誤差Is所需的時間,然后每隔這樣一段時間后就對秒進行加“1”或減“1”調整。例如:電子鐘每過50小時就慢1秒,其自動調整程序如下:

            

           

            以下是一個完整實例:

            

           

            

           

            結語

            使用此方法調整較費時間,但效果非常好。經實驗,一次調整可/以將月誤差控制在Is左右,如按此方法再次測出誤差Is所需的天數并進行二次調整,其精度會更高。



          關鍵詞: 單片機 時鐘精度

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();