在线观看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

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

    關注

    6057

    文章

    44811

    瀏覽量

    644230
  • 軟件
    +關注

    關注

    69

    文章

    5084

    瀏覽量

    88738
  • C語言
    +關注

    關注

    180

    文章

    7626

    瀏覽量

    139569

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

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

收藏 人收藏

    評論

    相關推薦

    單片機中斷技術詳解

    在現代電子設備中,單片機作為控制核心發揮著舉足輕重的作用。而在其高效運作的背后,中斷機制是推動單片機實現實時響應與高效執行的關鍵因素。本文將深入探討單片機中的中斷概念、中斷系統的結構、
    的頭像 發表于 02-02 15:57 ?615次閱讀

    單片機Debug工具性能對比 單片機調試常用命令

    單片機(Microcontroller Unit, MCU)調試是嵌入式開發中的一個重要環節,它幫助開發者發現和修復代碼中的錯誤,優化程序性能。不同的單片機和開發環境可能使用不同的調試工具和命令
    的頭像 發表于 12-19 09:56 ?1025次閱讀

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

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

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

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

    單片機與ADS1115之間用的TXS0104進行的數據電平轉換,延時很大怎么解決?

    我使用STM32單片機以4MHZ運行,以大概100khz的時鐘IIC進行與ADS1115通訊,發現當傳輸完8位時,需要等待近14ms 才能從邏輯分析儀上看到叢返回的ACK信號。單片機與ADS1115之間用的TXS0104進行
    發表于 12-03 07:18

    單片機編程語言有哪些選擇

    單片機(Microcontroller Unit,MCU)編程是指為單片機編寫程序的過程,這些程序控制單片機的行為和功能。單片機廣泛應用于嵌入式系統,如家用電器、汽車電子、工業控制等領
    的頭像 發表于 11-01 14:13 ?1820次閱讀

    基于51單片機的遙控開關仿真(雙機通信)

    具體實現功能由51單片機+獨立按鍵+繼電器+LED燈等構成。實現功能:(1)本仿真設計的是一款遙控開關,采用51單片機進行遙控器與主機的設計;(2)遙控器由
    的頭像 發表于 10-22 14:12 ?624次閱讀
    基于51<b class='flag-5'>單片機</b>的遙控開關仿真(雙機通信)

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

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

    單片機怎么寫入程序

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

    單片機的中斷機制

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

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

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

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

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

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

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

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

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

    UCGUI單片機源碼

    UCGUI單片機源碼
    發表于 07-04 17:11 ?1次下載
    主站蜘蛛池模板: 三级网在线| 日韩a无吗一区二区三区 | 激情五月激情综合网 | 欧美黑人5o厘米全进去 | 五月婷婷社区 | 成 人色 网 站 欧美大片在线观看 | 激情网站网址 | 又粗又大撑满了好爽 | 色视频免费版高清在线观看 | 狠狠躁夜夜躁人人爽天天3 狠狠躁夜夜躁人人爽天天段 | 2018天天拍拍拍免费视频 | 免费在线播放黄色 | 伊人网站在线 | 丁香花在线观看免费观看 | 伊人网在线视频 | 五月天婷婷在线视频 | 男男失禁play 把尿bl | 午夜寂寞影院视频观看 | 窝窝午夜在线观看免费观看 | 91男人| 免费的黄色片 | 精品久久久久久久免费加勒比 | 欧美最猛黑人xxxx黑人猛交黄 | 拍拍拍交性免费视频 | 精品欧美激情在线看 | 国产三级精品三级在线观看 | 国产精品夜色一区二区三区 | 亚洲bt欧美bt高清bt777 | 亚洲天堂婷婷 | 午夜视频免费观看黄 | 伊人一区二区三区 | 成年人电影黄色 | 国产在线一区视频 | 日本不卡在线播放 | 日本黄色免费片 | 免费看黄色网页 | 特级a毛片 | 国产高清毛片 | 色偷偷资源网 | 热99在线视频 | 人人干人人舔 |