日韩欧美视频第二区,秋霞成人午夜鲁丝一区二区三区,美女日批视频在线观看,av在线不卡免费

電子開發網

電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 單片機 >> 正文

單片機延時程序的設計思想

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2008-11-29

  單片機編程中,延時程序使用比較多,根據其延時方式不同可分為兩類:
      一》阻塞式延時;
      二》非阻塞式延時;
     阻塞式延時,最常用,通常是在原地循環若干次,通過消耗機器周期來實現。此時,CPU再不能干別的事(CT0/CT1/CT2/串口仍可工作,延時可被中斷暫時打斷,會使延時加長),實時性比較差。
     非阻塞式延時是在延時期間CPU仍可干別的事,不會在哪兒等,實時性比較好。
     打個比方,你在環形操場跑步,相當于CPU的PC指針在主程序中循環(多數程序都是這樣)。有個延時程序要求你等100毫秒把手舉起來一下(用此表示CPU處理一個事件):當是阻塞式延時方式時,你就在原地踏步跑,等100毫秒后,你把手舉起來一下再接著跑;當是非阻塞式延時方式時,你只是在一個地方放個秒表,并啟動它,但你并不停下而是繼續跑。每次跑到這個地方,你只要看一下秒表,看是否到100毫秒,若到了,你就把手舉起來一下,若沒到,你就繼續沿跑道跑。
     從上邊的例子可清楚看出,阻塞式延時,影響主程序循環一次的執行時間(影響實時性!);非阻塞式延時,基本不影響主程序循環周期(CPU只是多執行一兩條指令判斷一下時間是否到),但需要有個“秒表”。這個“秒表”可用一個定時器完成,并作為整個系統的時基,供需要時基的部分使用;如單片機控制系統的人機界面,顯示閃爍時就需要。比如,將定時器0設定為5毫秒,由此可產生10毫秒,25毫秒,50毫秒,100毫秒,250毫秒和500毫秒等等時鐘信號。
     現在分析影響延時精度的因素:
      影響阻塞式延時的因素有:
        1)設計程序時計算執行機器周期數的偏差;
        2)中斷處理程序的額外時延;
      影響非阻塞式延時的因素有:
        1)所用定時器基本時基的精度(如上例:5毫秒);
        2)主程序的循環周期;這是隨機的,比如,當看秒表時,時間還沒到,
           在下次看表之前時間卻到了,最壞情況是差一個主程序循環周期;
        3)其他中斷處理程序的額外時延;這是隨機的,比如,在看表之前時間已到,
          這時有個中斷也被響應,就要加上中斷處理程序的時間延遲;
      在實際使用中,我們根據具體情況選擇不同的延時方式。
     這種非阻塞式延時的思想,我們成功用在許多單片機控制系統中,效果很好。

Tags:單片機,延時,程序,設計思想  
責任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
主站蜘蛛池模板: 霍林郭勒市| 齐齐哈尔市| 大竹县| 荔浦县| 那曲县| 罗城| 疏勒县| 莱芜市| 阳山县| 邳州市| 隆化县| 永顺县| 新绛县| 西乡县| 连城县| 陇南市| 明光市| 环江| 西峡县| 苗栗县| 杭州市| 宁都县| 宜宾县| 南充市| 瑞丽市| 轮台县| 基隆市| 抚松县| 梅河口市| 安庆市| 闽侯县| 锡林浩特市| 南昌市| 天台县| 松阳县| 深水埗区| 紫阳县| 邵阳市| 和林格尔县| 蒙阴县| 安远县|