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

中職匯編延時(shí)程序初探

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


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

主站蜘蛛池模板: 亚洲AV色香蕉一区二区| 精品午夜国产福利观看| 亚洲人人视频| 福利视频久久| 亚洲免费播放| 91在线无码精品秘九色APP| 欧美色综合网站| 蜜芽国产尤物av尤物在线看| 国产91特黄特色A级毛片| 国产一区二区三区日韩精品| 色综合天天综合中文网| 青青草原国产av福利网站| 久久这里只有精品国产99| 久久久久国色AV免费观看性色| 欧美亚洲中文精品三区| 免费jizz在线播放| 国产精品成人一区二区不卡 | 国产欧美精品一区二区| 视频一区亚洲| 永久免费无码成人网站| 国产视频欧美| 麻豆国产在线观看一区二区| 亚洲成人精品久久| 亚洲日韩精品欧美中文字幕| 亚洲欧美精品一中文字幕| 人人看人人鲁狠狠高清| 国产成在线观看免费视频| 日韩精品高清自在线| 国产成人禁片在线观看| 精品99在线观看| 亚洲中文字幕久久无码精品A| 亚洲成人黄色在线| 91麻豆国产精品91久久久| 玖玖免费视频在线观看| 伊人久久久久久久久久| 人妻精品全国免费视频| 国产成人a在线观看视频| 亚洲中文无码h在线观看| 在线观看精品国产入口| 国产精品亚洲综合久久小说| 九九香蕉视频| 中国毛片网| 亚洲区一区| 亚洲综合一区国产精品| 午夜少妇精品视频小电影| 免费无遮挡AV| 日韩精品欧美国产在线| 欧美一级高清片欧美国产欧美| 国产男女XX00免费观看| 日韩在线1| 91成人在线免费视频| 欧美激情首页| 国产精品污视频| 精品国产黑色丝袜高跟鞋| 欧洲一区二区三区无码| 在线国产综合一区二区三区| 免费网站成人亚洲| 午夜爽爽视频| 九九久久99精品| 国产人在线成免费视频| 丝袜久久剧情精品国产| 91九色国产porny| 成年人免费国产视频| 呦系列视频一区二区三区| 国产美女一级毛片| 国产迷奸在线看| 中文字幕在线欧美| 怡红院美国分院一区二区| 99成人在线观看| 日日噜噜夜夜狠狠视频| 国产成人1024精品| 欧美精品不卡| 巨熟乳波霸若妻中文观看免费| 国产天天色| 999国产精品永久免费视频精品久久| 无码区日韩专区免费系列 | 成人日韩欧美| 国产自在自线午夜精品视频| 激情综合婷婷丁香五月尤物| 国产在线拍偷自揄观看视频网站| 国产小视频a在线观看| 亚洲中文字幕在线一区播放|