91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

單片機(jī)延時(shí)是怎么實(shí)現(xiàn)的

單片機(jī)匠人 ? 來源:張飛實(shí)戰(zhàn)電子 ? 作者:蔡琰老師 ? 2021-10-12 17:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

單片機(jī)延時(shí)大家程序中都會用到,那么怎么實(shí)現(xiàn)呢?通常我們有軟件實(shí)現(xiàn),就是語句循環(huán);或者硬件實(shí)現(xiàn),通過定時(shí)器/計(jì)數(shù)器。

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

1、軟件延時(shí)-循環(huán)實(shí)現(xiàn)

在很多時(shí)候,定時(shí)器會被用作其他用途,不方便再用作計(jì)數(shù)了,所以這個(gè)時(shí)候就只能用軟件方法延時(shí)。軟件方法延時(shí)就是循環(huán)語句來實(shí)現(xiàn)。

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

到這里大家是不是覺得其實(shí)用匯編寫延時(shí)函數(shù)就能做到精確了呢?相比較C語言,的確是匯編可以做到很精確的數(shù)值,因?yàn)槲覀兛梢源_定每條指令的指令周期是多少,根據(jù)延時(shí)函數(shù)用到的所有指令都可以計(jì)算出來,最終計(jì)算得出比較精準(zhǔn)的循環(huán)數(shù)值。

2、硬件延時(shí)-定時(shí)器/計(jì)數(shù)器實(shí)現(xiàn)

當(dāng)然在大多情況下,我們還是會選擇定時(shí)器來做延時(shí)處理,首先我們可以通過時(shí)鐘配置定時(shí)器工作,獲得精準(zhǔn)計(jì)數(shù),具體精準(zhǔn)程度要看給定時(shí)器用的時(shí)鐘了,內(nèi)部時(shí)鐘或者外部晶振的精度??梢詫?shí)現(xiàn)極短時(shí)間的精確延時(shí)。

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

總結(jié):大部分程序中我們可以寫個(gè)小的軟件延時(shí),必須等待的小延時(shí)可以用軟件的實(shí)現(xiàn),就可以省去對延時(shí)時(shí)間的判斷了,等待就可以了。但是需要測試延時(shí)時(shí)間是否準(zhǔn)確,或者可以直接用匯編寫延時(shí)函數(shù)。硬件延時(shí)也有必要實(shí)現(xiàn),根據(jù)實(shí)際需求去應(yīng)用。

大部分延時(shí)應(yīng)用過程中還是會有些誤差的,這個(gè)是在多個(gè)小的誤差基礎(chǔ)上疊加的,是可以接受的。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6076

    文章

    45495

    瀏覽量

    670313
  • 軟件
    +關(guān)注

    關(guān)注

    69

    文章

    5332

    瀏覽量

    91577
  • C語言
    +關(guān)注

    關(guān)注

    183

    文章

    7644

    瀏覽量

    145580

原文標(biāo)題:單片機(jī)延時(shí)的兩種實(shí)現(xiàn)方法

文章出處:【微信號:gh_e7f294a514ca,微信公眾號:單片機(jī)匠人】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    浮思特 | 智能洗衣背后的靜默力量,ABOV單片機(jī)如何實(shí)現(xiàn)精準(zhǔn)控制?

    ABOV(現(xiàn)代單片機(jī))的長期合作代理商,浮思特科技希望通過本次技術(shù)分享,讓大家了解ABOV單片機(jī)在洗衣機(jī)控制中的關(guān)鍵技術(shù)實(shí)現(xiàn)?,F(xiàn)代洗衣機(jī)是一
    的頭像 發(fā)表于 10-16 09:52 ?539次閱讀
    浮思特 | 智能洗衣背后的靜默力量,ABOV<b class='flag-5'>單片機(jī)</b>如何<b class='flag-5'>實(shí)現(xiàn)</b>精準(zhǔn)控制?

    單片機(jī)用什么封裝

    單片機(jī)封裝是將芯片內(nèi)部電路與外部引腳連接并包裹保護(hù)的結(jié)構(gòu),不僅影響單片機(jī)的安裝方式、適用場景,還與電路設(shè)計(jì)的緊湊性、散熱性能密切相關(guān)。不同封裝類型各有特點(diǎn),適配從簡單電路到復(fù)雜系統(tǒng)的多樣化需求
    的頭像 發(fā)表于 08-01 13:47 ?1321次閱讀

    什么單片機(jī)比較耐用

    ? ? ? ? 在工業(yè)控制、戶外設(shè)備、醫(yī)療儀器等場景中,單片機(jī)的耐用性直接決定了設(shè)備的穩(wěn)定運(yùn)行與維護(hù)成本。耐用的單片機(jī)通常具備寬溫工作范圍、強(qiáng)抗干擾能力、穩(wěn)定的電源適應(yīng)性和長壽命的硬件設(shè)計(jì)。深圳市安
    的頭像 發(fā)表于 07-31 13:48 ?772次閱讀

    單片機(jī)的儲存優(yōu)點(diǎn)是什么

    單片機(jī)作為嵌入式系統(tǒng)的核心,其儲存系統(tǒng)是實(shí)現(xiàn)數(shù)據(jù)存儲與程序運(yùn)行的關(guān)鍵部分。與獨(dú)立存儲芯片相比,單片機(jī)的儲存單元在集成度、功耗、可靠性等方面具備獨(dú)特優(yōu)勢,這些優(yōu)點(diǎn)使其能適應(yīng)從消費(fèi)電子到工業(yè)控制的多樣化
    的頭像 發(fā)表于 07-31 10:09 ?694次閱讀

    單片機(jī)采用什么電流輸出

    單片機(jī)的電流輸出特性與其內(nèi)部電路設(shè)計(jì)和應(yīng)用場景密切相關(guān),既包含自身工作時(shí)的微弱電流,也涉及通過外部電路擴(kuò)展后的驅(qū)動電流。了解單片機(jī)的電流輸出特點(diǎn),是實(shí)現(xiàn)穩(wěn)定控制外部設(shè)備的基礎(chǔ)。 單片機(jī)
    的頭像 發(fā)表于 07-30 11:13 ?1100次閱讀

    單片機(jī)采用什么電流控制

    單片機(jī)作為電子系統(tǒng)的控制核心,其電流控制涉及自身工作電流管理與外部設(shè)備電流驅(qū)動兩個(gè)層面。由于單片機(jī)內(nèi)部電路的特性,其自身工作電流較小,而控制外部設(shè)備時(shí)需通過特定電路實(shí)現(xiàn)電流放大與調(diào)節(jié),以適配不同負(fù)載
    的頭像 發(fā)表于 07-30 10:07 ?737次閱讀

    怎么測單片機(jī)系統(tǒng)頻率

    單片機(jī)系統(tǒng)頻率是指單片機(jī)工作時(shí)的時(shí)鐘頻率,它直接影響單片機(jī)的運(yùn)行速度和處理能力,準(zhǔn)確測量系統(tǒng)頻率對單片機(jī)應(yīng)用開發(fā)、程序調(diào)試和性能優(yōu)化具有重要意義。測量
    的頭像 發(fā)表于 07-25 11:39 ?783次閱讀

    單片機(jī)怎么驅(qū)動電機(jī)?

    在各類自動化設(shè)備和智能裝置中,電機(jī)是重要的執(zhí)行部件,而單片機(jī)作為控制核心,需要通過特定的方式驅(qū)動電機(jī)運(yùn)轉(zhuǎn)。單片機(jī)驅(qū)動電機(jī)并非直接連接即可,而是要根據(jù)電機(jī)類型和功率,搭配合適的驅(qū)動電路,才能實(shí)現(xiàn)穩(wěn)定
    的頭像 發(fā)表于 07-25 09:31 ?898次閱讀

    單片機(jī)怎么燒程序

    單片機(jī)燒程序是將編寫好的程序代碼寫入單片機(jī)內(nèi)部存儲單元,讓單片機(jī)按照預(yù)設(shè)邏輯工作的過程,是單片機(jī)應(yīng)用開發(fā)中不可或缺的環(huán)節(jié)。無論是簡單的燈光控制程序,還是復(fù)雜的工業(yè)控制算法,都需要通過燒
    的頭像 發(fā)表于 07-23 11:47 ?1273次閱讀

    給予單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)

    在工業(yè)生產(chǎn)、智能家居等領(lǐng)域,溫度的穩(wěn)定控制至關(guān)重要,基于單片機(jī)的溫度控制系統(tǒng)憑借靈活、高效的特點(diǎn)被廣泛應(yīng)用,其設(shè)計(jì)原理與實(shí)現(xiàn)方式值得深入探討。 基于單片機(jī)的溫度控制系統(tǒng)主要由單片機(jī)、溫
    的頭像 發(fā)表于 07-16 10:57 ?668次閱讀

    KF32A136系列單片機(jī)產(chǎn)品介紹

    F32A136 系列單片機(jī)是基于 KF32 內(nèi)核架構(gòu)開發(fā)的單片機(jī)。
    的頭像 發(fā)表于 06-27 11:42 ?2333次閱讀
    KF32A136系列<b class='flag-5'>單片機(jī)</b>產(chǎn)品介紹

    KF32A156系列單片機(jī)產(chǎn)品介紹

    KF32A156 系列單片機(jī)是基于 KF32 內(nèi)核架構(gòu)開發(fā)的單片機(jī)。KF
    的頭像 發(fā)表于 06-26 14:43 ?1719次閱讀
    KF32A156系列<b class='flag-5'>單片機(jī)</b>產(chǎn)品介紹

    單片機(jī)和伺服有什么區(qū)別

    單片機(jī)和伺服的區(qū)別 單片機(jī)(Microcontroller)和伺服(Servo System)是兩種完全不同的技術(shù)概念,分別屬于 控制系統(tǒng)硬件 和 運(yùn)動控制執(zhí)行系統(tǒng) 。以下是它們的詳細(xì)對比和區(qū)別
    的頭像 發(fā)表于 05-26 09:18 ?852次閱讀

    新概念51單片機(jī)C語言教程入門、提高、開發(fā)、拓展全攻略

    庫函數(shù)實(shí)現(xiàn)流水燈 第2篇 內(nèi)外部資源操作篇 3.1 數(shù)碼管顯示原理 3.2 數(shù)碼管靜態(tài)顯示 3.3 數(shù)碼管動態(tài)顯示 3.4 中斷概念 3.5 單片機(jī)的定時(shí)器中斷 4.1 獨(dú)立鍵盤檢測 4.2 矩陣鍵盤
    發(fā)表于 04-15 13:57

    單片機(jī)科普總結(jié),建議收藏!

    單片機(jī)(MicrocontrollerUnit,MCU)作為嵌入式系統(tǒng)的核心之一,在現(xiàn)代電子產(chǎn)品中無處不在。從智能家居、汽車電子,到工業(yè)控制、醫(yī)療設(shè)備,單片機(jī)支撐著無數(shù)智能化應(yīng)用的發(fā)展。對于初學(xué)者
    的頭像 發(fā)表于 04-07 11:58 ?5637次閱讀
    <b class='flag-5'>單片機(jī)</b>科普總結(jié),建議收藏!