在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

單片機延時是怎么實現的

單片機匠人 ? 來源:張飛實戰電子 ? 作者:蔡琰老師 ? 2021-10-12 17:18 ? 次閱讀

單片機延時大家程序中都會用到,那么怎么實現呢?通常我們有軟件實現,就是語句循環;或者硬件實現,通過定時器/計數器。

對于精準而言,從實現語言方向看,底層語言有匯編C語言,通常我們單片機程序用C語言比較多,但是相對而言匯編更精準。從實現方式來看,有軟件方式和硬件方式,那么對于C語言延時的方法哪種更精準呢?自然是定時器計數器的方式了,為什么呢?一起來看看吧。

1、軟件延時-循環實現

在很多時候,定時器會被用作其他用途,不方便再用作計數了,所以這個時候就只能用軟件方法延時。軟件方法延時就是循環語句來實現。

通過使用帶_NOP_();語句的函數實現,定義一系列不同的延時函數。我們都知道C語言最終通過編譯生成匯編,所以一條C語言可能會反匯編成多條匯編語句,每條匯編指令都有指令周期,比如我們時鐘是8Mhz的,那么一個指令周期就是125ns,那么NOP是一個空指令,占用一個指令周期。假如我們定義一個1ms的延時函數,那么函數里面全部用NOP指令也需要循環多次,那么循環語句也可能會有多條匯編實現,具體的根據編譯器不同也不同,我們就很難精確的計算出實際的延時,那么計算大概也可以,然后最有效直接的方法就是通過示波器去測試然后再去調整循環數。不要太糾結計算數值,可以調試的。示波器測試方法更簡單,在延時前后加一個引腳的輸出反轉信號就可以了。

到這里大家是不是覺得其實用匯編寫延時函數就能做到精確了呢?相比較C語言,的確是匯編可以做到很精確的數值,因為我們可以確定每條指令的指令周期是多少,根據延時函數用到的所有指令都可以計算出來,最終計算得出比較精準的循環數值。

2、硬件延時-定時器/計數器實現

當然在大多情況下,我們還是會選擇定時器來做延時處理,首先我們可以通過時鐘配置定時器工作,獲得精準計數,具體精準程度要看給定時器用的時鐘了,內部時鐘或者外部晶振的精度。可以實現極短時間的精確延時。

在實際應用中,定時常采用中斷方式,通過對定時器的配置,獲得中斷方式和定時時間,然后通過判斷計數值獲得想要的延時效果,用這種方法從程序的執行效率和穩定性方面考慮都是最佳的方案。大部分項目主循環需要處理很多事情,如果在主循環中用軟件延時方法難免需要等待過程,尤其是長延時的時候不能處理其他,如果好多外設在工作,會造成通信不上或者響應不及時。

總結:大部分程序中我們可以寫個小的軟件延時,必須等待的小延時可以用軟件的實現,就可以省去對延時時間的判斷了,等待就可以了。但是需要測試延時時間是否準確,或者可以直接用匯編寫延時函數。硬件延時也有必要實現,根據實際需求去應用。

大部分延時應用過程中還是會有些誤差的,這個是在多個小的誤差基礎上疊加的,是可以接受的。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6039

    文章

    44583

    瀏覽量

    636507
  • 軟件
    +關注

    關注

    69

    文章

    4973

    瀏覽量

    87734
  • C語言
    +關注

    關注

    180

    文章

    7608

    瀏覽量

    137144

原文標題:單片機延時的兩種實現方法

文章出處:【微信號:gh_e7f294a514ca,微信公眾號:單片機匠人】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    使用單片機實現直流電機的PWM調速控制原理圖

    使用單片機實現直流電機的PWM調速控制
    發表于 12-10 15:29 ?0次下載

    上位如何實現發送參數給單片機單片機保存接收的參數重復運行指定的功能

    ,類似于設定單片機運行指定功能時所需要的參數: 舉例:名稱,功能,上限,下限,參數一,參數二,...,延時。一行代表一個功能。 上位機設定好參數通過串口下發給單片機單片機接收到數據
    發表于 12-04 08:19

    如何實現51單片機與PC的串行通信

    51單片機與PC的串行通信是一種常見的通信方式,它允許單片機通過串行接口與PC進行數據交換。這種通信方式在嵌入式系統、工業控制、物聯網等領域有著廣泛的應用。以下是
    的頭像 發表于 10-21 11:35 ?1113次閱讀

    單片機怎么寫入程序

    單片機(Microcontroller Unit,MCU)是一種集成電路芯片,它將計算機的CPU、存儲器、輸入/輸出接口等功能集成在一個芯片上。單片機廣泛應用于嵌入式系統和物聯網設備中。編寫單片機
    的頭像 發表于 10-21 11:21 ?553次閱讀

    單片機的中斷機制

    單片機的中斷機制是一種重要的處理方式,它允許單片機在執行主程序的過程中,能夠暫停當前任務,轉而處理外部或內部緊急事件。這種機制極大地提高了系統的響應速度和處理能力,使得單片機在各種應用領域中得到廣泛應用。以下是對
    的頭像 發表于 10-17 18:03 ?829次閱讀

    單片機燒錄程序用什么軟件

    單片機燒錄程序是單片機開發過程中的一個重要環節,涉及到將編寫好的程序代碼通過燒錄器寫入單片機的ROM中,以實現單片機的控制。 燒錄器的類型
    的頭像 發表于 09-02 10:05 ?1398次閱讀

    單片機燒錄程序的基本步驟是什么

    單片機燒錄程序是單片機開發過程中非常重要的一步,它涉及到將編寫好的程序代碼通過一定的方式傳輸到單片機內部的存儲器中,使單片機能夠按照預定的邏輯執行任務。 一、硬件準備
    的頭像 發表于 09-02 09:47 ?1170次閱讀

    揭秘:單片機硬件與軟件延時之大不同!

    在嵌入式項目中,軟件開發基本上都會使用到延時,那么,該用軟件延時還是硬件延時?它們又有什么區別呢?今天就來講講關于硬件延時和軟件延時的內容,
    的頭像 發表于 07-25 08:11 ?900次閱讀
    揭秘:<b class='flag-5'>單片機</b>硬件與軟件<b class='flag-5'>延時</b>之大不同!

    藍牙模塊如何實現單片機和手機端數據互傳

    藍牙模塊實現單片機和手機端數據互傳的過程可以分為以下幾個步驟: 硬件準備 : 確保你有一個支持藍牙通信的單片機開發板,如Arduino、Raspberry Pi等。 準備一個兼容的藍牙模塊,如
    的頭像 發表于 07-24 17:59 ?2705次閱讀
    藍牙模塊如何<b class='flag-5'>實現</b><b class='flag-5'>單片機</b>和手機端數據互傳

    如何系統、科學地自學單片機

    很多初學者都會面臨這個問題,我想學習單片機、我也想學好單片機、我也想系統地學習單片機,但是單片機涉及到的學科多且雜根本不是三天兩天就能學完的,很多人都逃脫不了從入門到放棄的怪圈?那么我
    的頭像 發表于 03-28 08:03 ?1121次閱讀
    如何系統、科學地自學<b class='flag-5'>單片機</b>?

    單片機的最小系統由什么組成 單片機的最小系統包括哪些

    單片機(Microcontroller Unit,MCU)的最小系統包括以下幾個主要組成部分: 單片機芯片:單片機是整個最小系統的核心部分,它集成了中央處理器(Central Processing
    的頭像 發表于 02-02 11:27 ?1.1w次閱讀

    基于單片機控制的交通燈設計

    本課程設計是在學完單片機原理及課程之后綜合利用所學單片機知識完成一個單片機應用系統設計并在實驗室實現
    的頭像 發表于 01-22 15:31 ?2270次閱讀
    基于<b class='flag-5'>單片機</b>控制的交通燈設計

    PLC與單片機的差別是什么?

    單片機不能完全替代PLC 。雖然單片機可以通過編程實現類似的功能,但是在可靠性和穩定性方面相對來說稍遜于PLC。
    發表于 01-16 13:51 ?640次閱讀

    單片機怎么能夠與手機實現遠程通訊呢?

    單片機怎么能夠與手機實現遠程通訊呢? 隨著物聯網的快速發展,單片機作為物聯網應用中最常見的控制器,與手機實現遠程通訊已成為一種趨勢。通過單片機
    的頭像 發表于 01-15 14:59 ?3338次閱讀

    基于單片機的汽車防碰撞系統設計與實現

    電子發燒友網站提供《基于單片機的汽車防碰撞系統設計與實現.rar》資料免費下載
    發表于 01-12 10:48 ?24次下載
    主站蜘蛛池模板: 全黄性色大片| 免费播放黄色| 影音先锋ady69色资源网站 | 女人特黄大aaaaaa大片| 日本黄色大片在线播放视频免费观看| 日本三级欧美三级香港黄| 欧美一级别| 黄色大毛片| 在线免费看片a| 日本黄页网| 1024手机看片国产| 又黄又爽又猛大片录像| 久久99久久精品国产只有| 一级片免费在线播放| 性欧美videofree另类超大| 三级毛片网站| 久久999| 成人在线网| 天天摸天天操天天干| 久久精品美女久久| 免费黄色大片视频| 美女黄网站人色视频免费国产| 一级a性色生活片毛片| 涩涩涩丁香色婷五月网视色| 你懂的在线看| 播五月综合| 日日骑夜夜操| 免费免费啪视频在线| 高清一区二区三区视频| 色香蕉在线观看| 狠狠色成人综合首页| 亚洲第一网站快活影院| 国产午夜在线视频| 轻点灬大ji巴太粗太长了h| 亚洲国产成人精品久久| 女人张腿让男子桶免费动态图| 成人精品一区二区三区电影| 免费观看在线aa| 亚洲 [12p]| 三级毛片在线免费观看| 国产精品视频你懂的|