新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > MCS-51單片機中軟時鐘設計的優化方法

        MCS-51單片機中軟時鐘設計的優化方法

        作者: 時間:2010-10-12 來源:網絡 收藏


        3 軟程序2——中斷周期累加法
        2和1的程序結構是完全相同的,只是在對秒以下時間的處理上有所不同。將方法1的中斷服務程序中“O.1 s單元增加1”程序段改為:

        通過對照容易看出,雖然兩個“O.1 s單元增加1”程序段所用指令不同,但效果是完全一樣的,可以互相替代。改動后的程序將對0.1 s中斷周期的計數,變成了對O.1 s中斷周期的累加,由此引申,對任何小于秒的中斷周期都可以進行累加,當最高位有進位時實施秒增1,同樣可以達到定時的目的。內部定時器選擇工作方式1時為16位計數器,在上述假定條件下,當初值為0時,T0的定時中斷周期T=0.131 072 s,131072定義為中斷周期常數,在中斷服務程序中對其進行累加。以下是采用方法2程序。
        定義中斷周期常數:
        CONST: DB 00H,13H,10H,72H
        初始化程序:

        方法2采用對中斷周期進行累加的方法,令定時器滿量程計數,初值為O,計數滿后,自動重新從0開始計數,不需用程序裝入初值,從根本上擺脫了裝入初值的困擾,當然也就避免了對初值進行修正的繁瑣過程。由于不需要裝入初值,CPU可在中斷周期的任意時刻,響應定時器的中斷請求,只需保證下一次中斷請求到來之前將中斷服務程序執行完畢即可,從而使定時器大大降低了對中斷優先級的要求。因此方法2將定時器中斷設置為低優先級,而方法1則將其設置為高優先級。顯然,采用方法2不僅便于程序,而且提高了程序設計的效率。
        方法2中,當定時器滿量程計數時,中斷周期不再是標準的0.1 s,因此中斷周期在累加過程中向秒單元的進位,大多數發生在非整秒時刻,而且進位間隔也不盡相同,具體來講,假設秒以下時間單元從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內部定時計數器作為軟時鐘設計的方法,不僅節省了硬件開銷,而且提高軟時鐘的定時精度,具有廣泛的應用價值。在實際測試中,當晶體振蕩器的振蕩頻率不是標準6 MHz時,通過調整中斷周期常數,以及必要時通過增加秒以下時間單元緩沖區的字節數,可使中斷周期常數準確到所需精度。

        本文引用地址:http://www.104case.com/article/173184.htm

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宣威市| 阿荣旗| 延庆县| 庆阳市| 马山县| 伊通| 车险| 闻喜县| 滨海县| 贵德县| 连南| 新邵县| 平顶山市| 错那县| 平昌县| 安徽省| 玉树县| 桃江县| 布尔津县| 海晏县| 岳西县| 上林县| 彩票| 郯城县| 都兰县| 屏边| 汶上县| 梅州市| 沧源| 石家庄市| 溧水县| 贵溪市| 日照市| 濮阳县| 祁阳县| 无锡市| 娄烦县| 师宗县| 封丘县| 通辽市| 兴仁县|