999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

中職匯編延時程序初探

2011-12-29 00:00:00李公昕
成才之路 2011年16期


  在應用單片機編制各種程序時,經常會遇到實現精確延時的問題,時間從幾十微秒到幾秒,甚至更高的精度。單片機實現延時通常有兩種方法:一種是用定時器/計數器硬件延時,這種方法可以提高CPU的工作效率,也能做到精確延時,另一種是采用循環體進行軟件延時。
  一、使用定時器/計數器
  單片機系統若使用頻率為12MHz的晶振,一個機器周期為1μs,最長的延時時間可達2的16次方。在實際應用中,定時常采用中斷方式,如進行適當的循環可實現幾秒甚至更長時間的延時。使用定時器/計數器延時,從程序的執行效率和穩定性兩方面考慮,都是最佳的方案,但需要注意的是,用C51編寫的中斷服務程序,編譯后會自動加上PUSH ACC、PUSH PSW、POP PSW和POP ACC語句,執行時將占用4個機器周期,如程序中還有計數值加1語句,則又會占用1個機器周期。這些語句所消耗的時間要從初值中減去,以達到最小誤差的目的。
  二、使用軟件嵌套循環程序
  在很多情況下,定時器/計數器經常被用作其他用途,這時候就只能用軟件方法延時。常用的軟件延時的方法有:
  1. 短暫延時
  通過使用帶_NOP_( )語句的函數實現,定義一系列不同的延時函數,如Delay10μs( )、Delay25μs( )等存放在一個自定義的文件中,需要時在主程序中直接調用。如延時10μs可編寫如下:
  void Delay10μs ( ) {
  _NOP_( );
  _NOP_( );
  _NOP_( );
  _NOP_( );
  _NOP_( );
  _NOP_( );
  }
  上面函數中共用了6個_NOP_( )語句,每個語句執行時間為1μs。主函數調用Delay 10μs( )時,先執行一個LCALL指令(2 μs),然后執行6個_NOP_( )語句(6μs),最后執行了一個RET指令(2μs),所以執行上述函數時共需要10μs??梢园堰@一函數當做基本延時函數,在其他函數中調用,即嵌套調用,以實現較長時間的延時。
  2. C51中嵌套匯編程序段實現延時
  在C51中通過嵌套匯編語言語句,實現多次循環達到延時的目的。例1:50ms 延時子程序:
   DELAY:MOVR7,#200①
   LOOP1:MOVR6,#125 ②
   LOOP2:DJNZR6,L00P2③
   DJNZR7,LOOP1④
   RET⑤
  精確延時時間為:1+(1×200)+(2×125×200)+(2×200)+2=(2×125+3)×200+3 =50603us≈50ms⑥
  由⑥整理出公式:延時時間=(2×內循環+3)×外循環+3 ⑦
  詳解:DELAY這個子程序共有五條指令,現在分別就每一條指令被執行的次數和所耗時間進行分析。第一句:MOVR7,#200在整個子程序中只被執行一次,且為單周期指令,所以耗時1us。第二句:MOVR6,#125從②看到④只要R7-1不為0,就會返回到這句,共執行了R7次,共耗時200us。第三句:DJNZ R6,LOOP2,只要R6-1不為0,就反復執行此句(內循環R6次),又受外循環R7控制,所以共執行R6×R7次,因是雙周期指令,所以耗時2×R6×R7us。
  例2:1秒延時子程序:
  DELAY:MOV R7,#10 ①
  LOOP1:MOV R6,#200②
  LOOP2:MOV R5,#248③
  DJNZ R5,$ ④
  DJNZ R6,LOOP2 ⑤
  DJNZ R7,LOOP1 ⑥
  RET⑦
  對每條指令進行計算得出精確延時時間為:1+(1×10)+(1×200×10)+(2×248×200×10)+(2×200×10)+(2×10)+2=[(2×248+3)×200+3]×10+3=998033us≈1s ⑧
  由⑧整理得:延時時間=[(2×第一層循環+3)×第二層循環+3]×第三層循環+3 ⑨
  此式適用三層循環以內的程序,也驗證了例1中式⑦(第三層循環相當于1)的成立。注意,要實現較長時間的延時,一般采用多重循環,有時會在程序里加入NOP指令。
  三、使用其他方法實現延時
  如示波器、反匯編工具、性能分析器等確定延時時間。
  四、總結
  中職學生對單片機編程掌握較為薄弱。本文所介紹的多種實現并計算延時程序執行時間的方法,使用定時器進行延時是最佳的選擇,可以提高MCU工作效率。編寫延時程序是一項很煩瑣的任務,需要多次修改才能滿足要求。
 ?。ê幽鲜〗洕芾韺W校)
   注:“本文中所涉及到的圖表、公式、注解等請以PDF格式閱讀”

主站蜘蛛池模板: 香蕉综合在线视频91| 91在线一9|永久视频在线| 大陆精大陆国产国语精品1024| 日韩高清在线观看不卡一区二区 | AV不卡国产在线观看| 午夜色综合| 国产男女免费视频| 在线va视频| 国产久草视频| 国产91九色在线播放| 在线高清亚洲精品二区| 亚洲欧美另类中文字幕| 精品视频第一页| 四虎成人精品在永久免费| 无码国产伊人| 久久99这里精品8国产| 日本在线国产| 91精品最新国内在线播放| 久久香蕉国产线看观看式| 国产午夜一级毛片| 国产91在线|日本| 免费三A级毛片视频| 视频一区视频二区日韩专区| 日本www在线视频| 国产成人三级在线观看视频| 国产91全国探花系列在线播放| 国内精品手机在线观看视频| 99热国产这里只有精品9九 | 国产视频a| 成人日韩欧美| 无码AV日韩一二三区| 亚洲成网777777国产精品| 波多野结衣无码AV在线| 亚洲va在线观看| 国产精品毛片一区视频播| 免费女人18毛片a级毛片视频| 91福利片| 国产精品成人不卡在线观看| 亚洲人成网站观看在线观看| 亚洲不卡无码av中文字幕| 国产精品女熟高潮视频| 日韩资源站| 欧美一区福利| 精品综合久久久久久97超人| 国产极品嫩模在线观看91| 亚洲一区二区视频在线观看| 久久久亚洲色| 日韩区欧美区| 国产成人高精品免费视频| 亚洲国产高清精品线久久| 久久这里只精品热免费99| 2019年国产精品自拍不卡| 日本成人一区| 国产成人三级| 无码aaa视频| 22sihu国产精品视频影视资讯| www.99精品视频在线播放| 欧美日韩中文国产va另类| 丰满人妻中出白浆| 99热6这里只有精品| 毛片在线播放网址| 亚洲国产日韩一区| 人妻一区二区三区无码精品一区| 中文字幕波多野不卡一区| 国产丝袜精品| 亚洲无码高清免费视频亚洲| 国内a级毛片| 久久性视频| 亚洲综合久久一本伊一区| 久久超级碰| 久久免费视频6| 欧美午夜在线视频| 国产91精品调教在线播放| 亚洲国产精品久久久久秋霞影院 | 中国一级特黄大片在线观看| 亚洲无码A视频在线| 国产免费羞羞视频| 国产乱子伦手机在线| 国产门事件在线| 国产自在线播放| 国产在线精品99一区不卡| 91精品国产一区自在线拍|