當前位置:首頁 > 單片機 > 單片機
[導讀]根據MCS-51單片機內部定時計數器的特點,提出一種通過時定時計數器中斷間隔時間進行累加的軟時鐘設計方法,并在此基礎上提出通過改變時間處理方式的進一步優(yōu)化方法。此方法不僅簡化了程序設計,節(jié)省了硬件開銷,而且提高了電腦時鐘的定時精度,具有廣泛的應用價值。


0 引言
    隨著微電腦應用的普及,以MCS-51單片機為核心的微機測控系統(tǒng)已隨處可見。為滿足用戶要求,這些系統(tǒng)通常都具有數碼顯示時鐘的功能。由于MCS-51內部包含2個定時計數器,通過采用將其中一個定時計數器用于軟時鐘設計的方法,可以大大節(jié)省硬件開銷。本文提出了如何提高軟時鐘的定時精度,以及在軟時鐘存在的情況下,如何提高以MCS-51單片機為核心的測控系統(tǒng)的設計質量的方法。

1 MCS-51單片機內部定時計數器概述
    MCS-51單片機內部包含2個定時計數器T0和T1,它們都是16位的加法計數器,既可用于定時,也可用于計數,在用于定時的情況下,計數脈沖由內部提供,因此計數速率固定為CPU振蕩頻率的1/12;在用于計數的情況下,計數脈沖來自外部,外部計數脈沖通過MCS-51的引腳T0(第14腳)或T1(第15腳)輸入,在發(fā)生從1到0的跳變時計數加1。每個定時計數器又有4種工作方式可供選擇:方式O構成13位定時計數器,高3位未用;方式1構成16位定時計數器;方式2構成8位定時計數器,低位字節(jié)用于計數,高位字節(jié)存放初值;方式3只適合于T0,構成兩個獨立的8位定時計數器。在方式O、方式1及方式3時,初值不能自動裝入,當定時時間已到或計數次數已滿時,若要進行下一次定時計數,必須利用軟件裝入初值,否則,系統(tǒng)會按上限自動定時或計數,即以O初值進行定時或計數;而在方式2時,初值可自動裝入,只需向高位字節(jié)寫入一次初值,則當低位字節(jié)定時時間到(或計數滿)時,高位字節(jié)的初值會自動裝入低位字節(jié),且高位字節(jié)的值保持不變。當系統(tǒng)需用MCS-51單片機的串行接口進行串行通信時,定時計數器T1被固定為波特率發(fā)生器,因此,在軟時鐘設計中,總是選擇T0作為定時器。

2 軟時鐘程序設計方法1——0.1 s計數法
    0.1 s計數法的基本原理如下,通過設置定時計數器O每經過0.1 s請求一次中斷,中斷處理程序會令軟時鐘的基準0.1 s單元增加1,而該單元每增加10次,再令軟時鐘的秒單元增加1,以此類推,按照時間進位令分、時、日、月直至年單元增加1。設CPU所接晶體振蕩器的振蕩頻率為6 MHz,則1個機器周期為2μs,當T0作為定時器工作時,定時器溢出,即中斷周期:T=2×TC×10-6 s,式中TC為時間常數。令中斷周期T=O.1 s,可得:TC=0.1/(2×10-6)=50 000=0C350H,此時間常數決定了T0必須為16位定時器,故設置為工作方式1。由于是加法計數器,初值IC應為時間常數TC的補碼,所以IC=216-TC=10000H-0C350H=3CBOH,修正以后,取IC=3CB4H,有關程序段具體設計如下。
    初始化程序:
   
    由上述程序可知,作為16位定時器使用時,T0不能自動裝入初值,每次進入中斷服務程序后,首先必須用程序裝入初值,下一次定時實際上是從裝入初值低位字節(jié)后開始的,所以在設定T0中斷為高優(yōu)先級以及CPU對T0中斷請求的響應無等待延時的理想情況下,1個中斷周期所包含的實際時間t=初值到計數滿所需時間+入口引導時間+裝入初值低位字節(jié)時間。
    由于入口引導與裝入初值低位字節(jié)共占4個機器周期,所以為了使中斷周期等于O.1s基準時間,上文對按理論推算出來的初值進行了加4修正。盡管如此,按照方法1設計的時鐘程序與測控系統(tǒng)的其他程序有機聯接在一起運行時,要實現準確定時也是十分困難的,因為在實用工業(yè)測控系統(tǒng)中常常不止1個中斷源,而是含有多個中斷源,存在著中斷優(yōu)先權的管理問題。要使上述軟時鐘能夠準確定時,T0中斷必須設置為高優(yōu)先級,這樣CPU對T0的定時中斷才有可能不受影響,確保每隔0.1 s執(zhí)行一次定時中斷服務程序。如果T0定時中斷被設置為低優(yōu)先級,那么CPU對T0定時中斷的響應就要受到影響。當CPU正在執(zhí)行某一高優(yōu)先級中斷源的中斷服務程序時,T0計數滿會產生中斷請求,CPU必須等到當前正在執(zhí)行的中斷服務程序執(zhí)行完畢之后,才能響應T0中斷,這必將延長中斷間隔,使初值不能如期裝入,破壞定時的準確性。由此可見,采用方法1設計的時鐘程序限制了系統(tǒng)設置中斷優(yōu)先級的靈活性,降低了設計效率。例如,某些以數碼管作為顯示器的測控系統(tǒng),為了節(jié)省硬件開銷,通常采用對數碼管進行巡回掃描的方法進行顯示輸出,為使顯示穩(wěn)定,且無抖動現象,必須將數碼管顯示中斷設置為高優(yōu)先級,以便保證掃描程序的執(zhí)行周期固定不變,這便與時鐘定時中斷對優(yōu)先級的要求發(fā)生了矛盾。為克服方法1的缺陷,在實際工程中,通過采用如下所述的方法2來設計時鐘程序,可獲得較好的效果。

3 軟時鐘程序設計方法2——中斷周期累加法
    方法2和方法1的程序結構是完全相同的,只是在對秒以下時間的處理上有所不同。將方法1的中斷服務程序中“O.1 s單元增加1”程序段改為:
   
    通過對照容易看出,雖然兩個“O.1 s單元增加1”程序段所用指令不同,但效果是完全一樣的,可以互相替代。改動后的程序將對0.1 s中斷周期的計數,變成了對O.1 s中斷周期的累加,由此引申,對任何小于秒的中斷周期都可以進行累加,當最高位有進位時實施秒增1,同樣可以達到時鐘定時的目的。MCS-51單片機內部定時器選擇工作方式1時為16位計數器,在上述假定條件下,當初值為0時,T0的定時中斷周期T=0.131 072 s,131072定義為中斷周期常數,在中斷服務程序中對其進行累加。以下是采用方法2設計的時鐘程序。
    定義中斷周期常數:
    CONST: DB 00H,13H,10H,72H
    初始化程序:
   
    方法2采用對中斷周期進行累加的方法,令定時器滿量程計數,初值為O,計數滿后,自動重新從0開始計數,不需用程序裝入初值,從根本上擺脫了裝入初值的困擾,當然也就避免了對初值進行修正的繁瑣過程。由于不需要裝入初值,CPU可在中斷周期的任意時刻,響應定時器的中斷請求,只需保證下一次中斷請求到來之前將中斷服務程序執(zhí)行完畢即可,從而使定時器大大降低了對中斷優(yōu)先級的要求。因此方法2將定時器中斷設置為低優(yōu)先級,而方法1則將其設置為高優(yōu)先級。顯然,采用方法2不僅便于程序設計,而且提高了程序設計的效率。
    方法2中,當定時器滿量程計數時,中斷周期不再是標準的0.1 s,因此中斷周期在累加過程中向秒單元的進位,大多數發(fā)生在非整秒時刻,而且進位間隔也不盡相同,具體來講,假設秒以下時間單元從0開始累加,那么向秒單元進位第一次是在1.048 576 s時刻,第二次是在2.097 152 s時刻,第三次是在3.014 656 s時刻,…,第一次與第二次間隔為1.048 576 s,第二次與第三次間隔為0.917 504 s,……,進位間隔有時候大于l s,有時候小于1 s,然而,對分、時、日、月這些長期時間過程來說,積累誤差可以認為等于O,從這個意義上說,方法2大大提高了定時精度。

4 結語
    提出了采用MCS-5l內部定時計數器作為軟時鐘設計的方法,不僅節(jié)省了硬件開銷,而且提高軟時鐘的定時精度,具有廣泛的應用價值。在實際測試中,當晶體振蕩器的振蕩頻率不是標準6 MHz時,通過調整中斷周期常數,以及必要時通過增加秒以下時間單元緩沖區(qū)的字節(jié)數,可使中斷周期常數準確到所需精度。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數據產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數據產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯合牽頭組建的NVI技術創(chuàng)新聯盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現場 NVI技術創(chuàng)新聯...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉