新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機多中斷處理技術的應用與研究

        單片機多中斷處理技術的應用與研究

        作者: 時間:2010-04-17 來源:網絡 收藏

          2.2 程序設計

          (1)主程序

          主程序流程圖如圖3所示。

        主程序流程圖

        圖3主程序流程圖

          (2)程序

          程序流程圖如圖4所示。

        中斷子程序流程圖

        圖4子程序流程圖

          3 多中斷注意的問題

          1)要多路中斷問題,中斷程序的算法大體上可以分為兩類:弱中斷優先級(使用CALL和RETURN方式)和強中斷優先級(使用GOTO方式)。

          2)如果同時發生多個中斷請求,則中斷處理的順序取決于中斷程序中的檢查中斷源的順序。

          3)若要防止中斷請求被丟失,則要注意下面兩種情況:如果同一中斷源的中斷發生間隔時間小于該中斷服務的處理時間,則可能出現中斷事件被忽略(體現在中斷服務的過程中,標志位被連續發生了兩次置位),例如:中斷事件發生的時間間隔為30ms,中斷服務處理加上跳轉判斷的時間為50ms,則情況將會如下所示:

          [中斷次數______1][中斷次數______2][中斷次數_____3][中斷次數_____4]

          [處理次數______1][處理次數______2][處理次數_____4]

          如果在中斷處理一開始就清除IF,那么如上圖所示,中斷事件3、4在處理次數2的過程中發生了兩次,那么即使IF清除發生在中斷次數3發生之前,也將丟失第三次中斷。

          另外,即使中斷出現的時間間隔大于中斷服務的時間間隔,如果清除中斷標志位的指令安排在中斷服務子程序的尾部,就有可能造成丟失該中斷請求(即兩次中斷標志置位的事件只對應一條清除指令和一次中斷處理),也就是如果清除中斷標志位的指令安排在中斷服務程序的尾部,就有可能丟失響應在處理中斷期間該中斷源第2次中斷請求的機會。

          4)為了能夠編寫好一個簡潔的中斷程序,應抓住中斷的特點是具有實時性,針對實時中斷數據采集系統,也就是中斷的特點在于數據的采集。因此在中斷程序中只應該處理數據采集和標志位的設置,而將數據的處理放在中斷之外,由主程序通過循環檢測執行數據處理工作,具體做法:先開辟一個“儲存緩沖區”,作為采集來的數據的傳遞媒體,即存儲采集數據,等待主程序的處理;中斷程序負責數據的采集,并且將采集來的數據值賦給“存儲緩沖區”;主程序通過條件循環語句反復檢測“存儲緩沖區”情況,及時處理采集信息。這樣在處理方法既能有效的實現中斷的功能,又可以極大的縮減每個中斷的時間,提高整個程序的反應速度。

          5)對于中斷響應和處理時間有嚴格要求的,保護現場的指令安排也應考慮延時問題。

          6)在進行查表操作時必須禁止CPU響應中斷。以避免中斷返回時跳轉到不希望的地址上去。

          4 結束語

          靈活地中斷,不但可以大量的節省CPU資源,而且能夠使程序更加簡化.具有更高的實時性和穩定性。經過測試,這種頻率計具有測量準確度高、使用方便、穩定可靠的優點,可于計量測試領域。同時由于使用軟件控制,電路結構簡單,使用硬件少,使得成本低廉且攜帶方便,因此也可廣泛應用于工農業生產和居民生活中,具有推廣價值。

          本文作者創新:頻率計是基于PICC高級語言開發平臺,采用PICl6F87X,該方案具有原理簡單.性能可靠、分辨率高特點,使用該方法測量低頻頻率時最少可以得到8位有效數字。它采用LCD圖形液晶顯示,清晰度高,可視范圍廣,可外接晶體頻率源,具有測量速度快、分辨率高的優點。本方案已在課程相關教學中應用。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 金溪县| 浮山县| 芜湖县| 瓦房店市| 惠来县| 卓资县| 宜宾县| 丘北县| 榆林市| 富蕴县| 宁强县| 马山县| 黄浦区| 辽阳市| 洪雅县| 新昌县| 屯留县| 思南县| 张家口市| 汕尾市| 缙云县| 台中市| 广丰县| 高台县| 上高县| 大渡口区| 石景山区| 三河市| 泰州市| 利辛县| 如东县| 肥城市| 福鼎市| 当涂县| 甘南县| 杂多县| 万盛区| 东宁县| 九龙城区| 鲁甸县| 资源县|