色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

51單片機匯編延時程序算法詳解

h1654155971.7688 ? 來源:未知 ? 作者:李倩 ? 2018-03-12 09:48 ? 次閱讀

將以12MHZ晶振為例,詳細講解MCS-51單片機中匯編程序延時的精確算法

指令周期、機器周期與時鐘周期

指令周期:CPU執行一條指令所需要的時間稱為指令周期,它是以機器周期為單位的,指令不同,所需的機器周期也不同。

時鐘周期:也稱為振蕩周期,一個時鐘周期 =晶振的倒數。

MCS-51單片機的一個機器周期=6個狀態周期=12個時鐘周期。

MCS-51單片機的指令有單字節、雙字節和三字節的,它們的指令周期不盡相同,一個單周期指令包含一個機器周期,即12個時鐘周期,所以一條單周期指令被執行所占時間為12*(1/12000000)=1μs。擴展閱讀:單片機有哪些延時方法詳細介紹

程序分析

例1 50ms 延時子程序:

DEL:MOV R7,#200 ①

DEL1:MOV R6,#125 ②

DEL2:DJNZ R6,DEL2 ③

DJNZ R7,DEL1 ④

RET ⑤

精確延時時間為:1+(1*200)+(2*125*200)+(2*200)+2

=(2*125+3)*200+3 ⑥

=50603μs

≈50ms

由⑥整理出公式(只限上述寫法)延時時間=(2*內循環+3)*外循環+3 ⑦

詳解:DEL這個子程序共有五條指令,現在分別就 每一條指令 被執行的次數和所耗時間進行分析。

第一句:MOV R7,#200 在整個子程序中只被執行一次,且為單周期指令,所以耗時1μs

第二句:MOV R6,#125 從②看到④只要R7-1不為0,就會返回到這句,共執行了R7次,共耗時200μs

第三句:DJNZ R6,DEL2 只要R6-1不為0,就反復執行此句(內循環R6次),又受外循環R7控制,所以共執行R6*R7次,因是雙周期指令,所以耗時2*R6*R7μs。

例2 1秒延時子程序:

DEL:MOV R7,#10 ①

DEL1:MOV R6,#200 ②

DEL2:MOV R5,#248 ③

DJNZ R5,$ ④

DJNZ R6,DEL2 ⑤

DJNZ R7,DEL1 ⑥

RET ⑦

對每條指令進行計算得出精確延時時間為:

1+(1*10)+(1*200*10)+(2*248*200*10)+(2*200*10)+(2*10)+2

=[(2*248+3)*200+3]*10+3 ⑧

=998033μs≈1s

由⑧整理得:延時時間=[(2*第一層循環+3)*第二層循環+3]*第三層循環+3 ⑨

此式適用三層循環以內的程序,也驗證了例1中式⑦(第三層循環相當于1)的成立。

注意,要實現較長時間的延時,一般采用多重循環,有時會在程式序里加入NOP指令,這時公式⑨不再適用,下面舉例分析。

例3仍以1秒延時為例

DEL:MOV R7,#10 1指令周期1

DEL1:MOV R6,#0FFH 1指令周期10

DEL2:MOV R5,#80H 1指令周期255*10=2550

KONG:NOP 1指令周期128*255*10=326400

DJNZ R5,$ 2指令周期2*128*255*10=652800

DJNZ R6,DEL2 2指令周期2*255*10=5110

DJNZ R7,DEL1 2指令周期2*10=20

RET 2

延時時間=1+10+2550+326400+652800+5110+20+2 =986893μs約為1s

整理得:延時時間=[(3*第一層循環+3)*第二層循環+3]*第三層循環+3 ⑩

結論:針對初學者的困惑,對匯編程序的延時算法進行了分步講解,并就幾種不同寫法分別總結出相應的計算公式,只要仔細閱讀例1中的詳解,并用例2、例3來加深理解,一定會掌握各種類型程序的算法并加以運用。

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

    關注

    12

    文章

    164

    瀏覽量

    34756

原文標題:51單片機匯編延時程序算法詳解

文章出處:【微信號:weixin21ic,微信公眾號:21ic電子網】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    51單片機串口檢測程序

    本內容提供了51單片機串口檢測程序詳解列出了本程序
    發表于 05-09 11:43 ?6955次閱讀

    51單片機匯編設計實例

    本書包含3部分內容:第1部分介紹51系列單片機的硬件資源、匯編指令與C語言編程基礎;第2部分介紹5個單片機匯編與C
    發表于 12-23 14:42 ?803次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b><b class='flag-5'>匯編</b>設計實例

    51單片機匯編程序

    51單片機匯編程序包。
    發表于 01-06 14:12 ?16次下載

    51單片機匯編語言教程_單片機延時程序分析

    51單片機匯編語言教程:5課單片機延時程序分析
    發表于 01-19 15:26 ?0次下載

    51單片機匯編語言教程_第一個單片機程序

    51單片機匯編語言教程:4課第一個單片機程序
    發表于 01-19 15:27 ?0次下載

    51單片機匯編語言教程_單片機匯編課程簡介

    51單片機匯編語言教程:1課單片機匯編課程簡介
    發表于 01-19 15:27 ?0次下載

    基于51單片機匯編語言教程:22課單片機串行口通信程序設計

    基于51單片機匯編語言教程:22課單片機串行口通信程序設計
    發表于 09-04 11:00 ?25次下載

    51單片機匯編程序有哪些?51單片機匯編程序集詳細資料免費下載

    本文檔的主要內容詳細介紹的是51單片機匯編程序有哪些?51單片機匯編程序集詳細資料免費下載。
    發表于 09-06 16:31 ?55次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b><b class='flag-5'>匯編程序</b>有哪些?<b class='flag-5'>51</b><b class='flag-5'>單片機</b><b class='flag-5'>匯編程序</b>集詳細資料免費下載

    51單片機通用匯編延時程序,

    51單片機通用匯編延時程序, 關鍵字:51
    的頭像 發表于 09-20 19:42 ?1421次閱讀

    51單片機匯編延時程序免費下載

    本文檔的主要內容詳細介紹的是51單片機匯編延時程序免費下載。用6MHz晶振,51
    發表于 08-05 17:34 ?4次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>的<b class='flag-5'>匯編</b><b class='flag-5'>延時</b><b class='flag-5'>程序</b>免費下載

    使用單片機匯編跳轉指令延時一秒的程序免費下載

    本文檔的主要內容詳細介紹的是使用單片機匯編跳轉指令延時一秒的程序免費下載。
    發表于 07-30 17:35 ?0次下載
    使用<b class='flag-5'>單片機</b><b class='flag-5'>匯編</b>跳轉指令<b class='flag-5'>延時</b>一秒的<b class='flag-5'>程序</b>免費下載

    51單片機的精確延時問題詳細資料講解

    一些朋友提出使用C語言編寫51單片機延時程序的精度不夠,事實上的確如此,由于C語言最終要編譯成匯編語言運行,因此,
    發表于 07-17 17:38 ?0次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>的精確<b class='flag-5'>延時</b>問題詳細資料講解

    使用51單片機進行匯編延時計算的詳細資料分析

    本文檔的主要內容詳細介紹的是使用51單片機進行匯編延時計算的詳細資料分析。
    發表于 06-21 17:43 ?0次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>進行<b class='flag-5'>匯編</b><b class='flag-5'>延時</b>計算的詳細資料分析

    51單片機匯編程序

    下面是一些51單片機匯編語言編程常用到的子程序代碼庫
    的頭像 發表于 12-06 17:31 ?9676次閱讀

    51單片機如何跳出wile循環_51單片機(九)匯編指令

    1 往期鏈接Chenglin Li:51單片機(一)Visual Basic串口通信程序Chenglin Li:51單片機(二)
    發表于 11-22 20:21 ?73次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>如何跳出wile循環_<b class='flag-5'>51</b><b class='flag-5'>單片機</b>(九)<b class='flag-5'>匯編</b>指令
    主站蜘蛛池模板: 色偷偷888欧美精品久久久| 老王午夜69精品影院| 激情女人花| 九九热在线观看视频| 妹妹我要操| 日韩高清在线亚洲专区| 香港日本三级亚洲三级| 野花视频在线观看免费| 99久久国产免费福利| 高hnp全肉| 九九99国产香蕉视频| 男人被绑着强行摸j| 色久久久综合88一本道| 亚洲片在线观看| 99热久久视频只有精品6| 国产精品久久久久久久久久影院 | 脱女学小内内摸出水网站免费| 亚洲精品www久久久久久| 78m成人亚洲| 国产99久久九九免费精品无码| 果冻传媒视频在线观看完整版免费| 麻豆成人啪啪色婷婷久久| 日本国产黄色片| 亚洲人成电影网站色2017| 99久久久免费精品国产| 国产剧情福利AV一区二区| 久久午夜免费视频| 日韩在线中文字幕无码| 亚洲伊人国产| 草莓视频在线看免费高清观看| 国产自产第一区c国产| 男人J放进女人屁股免费观看| 网红主播 国产精品 开放90后| 中文无码熟妇人妻AV在线| 国产99久久久国产精品成人| 久久久无码精品亚洲A片猫咪 | 在线高清无码欧美久章草| 成人影院午夜久久影院| 久久精品视频在线看| 爽死你个放荡粗暴小淫货漫画| 2020亚洲国产在线播放在线|