新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機定時器中斷時間誤差的分析及補償

        單片機定時器中斷時間誤差的分析及補償

        作者: 時間:2012-03-22 來源:網絡 收藏

        3.3 實例

        要求每1ms產生一次溢出時的響應延遲的。若振蕩器振蕩頻率fosc=12MHZ,工作在計數方式,工作模式為1,則響應時的新初值X1為:
        X1=216-t3× fosc/12=216-(t0+ t1)- t2=216-(1000+ 13)- t2

        程序為:
        ……
        0 CLR EA ;關CPU中斷
        1 CLR TRi ;停止定時器計數
        2 MOV R0, #OOH ;R0清零
        3 MOV R0, #LOW(216) ;定時器最大計數值的低8位送R0
        4 MOV A, R0
        5 SUBB A, #LOW(1000+13) ;216的低8位減去( t0+ t1)的低8位送累加器A
        6 SUBB A, TLi ;216的低8位減去( t0+ t1+ t2)的低8位送TLi
        7 MOV TLi, A
        8 MOV R0, #OOH ;R0清零
        9 MOV R0, #HIGH(216) ;216 的高8位送R0
        10 MOV A, R0
        11 SUBB A, #HIGH(1000+13) ;216的高8位減去( t0+ t1)的高8位送A
        12 SUBB A, THi ;216的高8位減去( t0+ t1 +t2)的高8位送A
        13 MOV THi, A
        14 SETB TRi ;重新啟動定時器
        ……

        在上式和上段程序中,由于fosc=12MHZ,中斷間隔為1ms,因此t0的機器周期數為1000。由于第1條指令到第14條指令的指令周期的機器周期數之和為13,因此,t1為13個機器周期。CPU雖在執(zhí)行第一條指令CLR TRi后停止定時器計數,但在TLi、THi中分別保存了t2的低位數據和高位數據。

        4 結束語

        由于本文介紹的誤差補償方法能對定時器溢出中斷與CPU響應中斷的非固定性誤差進行有效補償,因此,該方法對于提高高頻控制系統(tǒng)實時控制精度和擴大應用范圍都有較高的實用價值。

        參考文獻
        [1]曹巧媛,原理及應用,電子工業(yè)出版社,1997、5
        [2]汪吉鵬等,微機原理及接口,高等教育出版社,2001、7


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 宁明县| 甘肃省| 呼玛县| 准格尔旗| 拉萨市| 孟津县| 九台市| 敦煌市| 江油市| 兰坪| 巴林右旗| 仙居县| 安徽省| 霍林郭勒市| 闽清县| 孝义市| 闸北区| 枣强县| 景谷| 区。| 永胜县| 钟祥市| 高唐县| 新化县| 西乌珠穆沁旗| 建湖县| 商南县| 启东市| 自治县| 三门县| 沿河| 枞阳县| 田东县| 铜陵市| 武冈市| 水富县| 富源县| 会泽县| 营山县| 泸州市| 新兴县|