国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

匯編延時程序算法詳解

發布時間:2015-10-27 11:04    發布者:designapp
關鍵詞: 延時程序 , 匯編
  簡介:論文針對初學者的困惑,對匯編程序的延時算法進行了分步講解,并就幾種不同寫法分別總結出相應的計算公式,只要仔細閱讀例1中的詳解,并用例2、例3來加深理解,一定會掌握各種類型程序的算法并加以運用。
  計算機反復執行一段程序以達到延時的目的稱為軟件延時,單片機應用程序中經常需要短時間延時。
  有時要求很高的精度,網上或書中雖然有現成的公式可以套用,但在部分算法講解中發現有錯誤之處,而且延時的具體算法講得并不清楚,相當一部分人對此仍很模糊,授人魚,不如授之以漁,本文將以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 ⑩
                               
本文地址:http://m.qingdxww.cn/thread-154707-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Chiptorials ——使用ATECC608 TrustFLEX實現基本非對稱身份驗證
  • FPGA設計流程培訓教程
  • Chiptorials——如何使用ATECC608 TrustFLEX實現公鑰輪換
  • 無線充電基礎知識及應用培訓教程
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品视频999 | 另类专区 亚洲 | 日韩欧美一区二区三区中文精品 | 亚洲片在线 | 女仆胸大又放荡的h | 午夜国产羞羞视频免费网站 | 亚洲最大情网站在线观看 | 天堂网资源www | 日本久久久久久中文字幕 | 国产亚洲自拍一区 | 星空影视免费观看高清 | 美日韩在线 | 玖玖中文 | 亚洲 欧美 国产另类首页 | 失乐园日本电视剧第1集第8 | 综合亚洲欧美日韩一区二区 | 日本中文字幕不卡在线一区二区 | 亚洲网址在线观看 | jizz在亚洲 | 国产三级播放 | 亚洲人免费| 卡一卡二卡三精品app下载 | 亚洲欧美一区二区三区久本道 | 国产精品社区在线观看 | 亚洲一区欧洲一区 | 精品久久久久久久久久香蕉 | 日本wwwwwwwww| 古代级a毛片在线 | 亚洲91视频 | 99自拍视频在线观看 | 狠狠色丁香婷婷综合久久片 | 成年大片免费视频播放二级 | 日本wwww色| 国产单男| 四虎影视在线影院4hu | 国产成人麻豆精品video | 99视频精品在线 | 好想男人又曰又添视频 | 麻豆久久 | 国产一级片免费 | 国内精品久久久久久久星辰影视 |