98国产精品综合一区二区三区,国产福利视频,男人添女人囗交做爰视频,日本免费一区二区三区视频观看

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當(dāng)前位置:首頁 >> 技術(shù)中心 >> 單片機(jī)入門 >> 幾種延時(shí)的匯編執(zhí)行代碼對比與總結(jié)

幾種延時(shí)的匯編執(zhí)行代碼對比與總結(jié)

關(guān)鍵字:延時(shí) 匯編 代碼 對比 作者:admin 來源:不詳 發(fā)布時(shí)間:2018-05-19  瀏覽:33

拜讀了網(wǎng)上《51單片機(jī) Keil C 延時(shí)程序的簡單研究 》(by: InfiniteSpace Studio/isjfk, 1.21.2004 )一文,借鑒了文中的方法,測試發(fā)現(xiàn)有一點(diǎn)點(diǎn)出入,原文作者在計(jì)算延時(shí)時(shí)間的時(shí)候是否忘了加上RET指令……下面介紹我的測試結(jié)果,歡迎交流探討——

一、單獨(dú)定義變量,for語句

28: delay1(1);

C:0x0005 7F01 MOV R7,#0x01

C:0x0007 1121 ACALL delay1(C:0021)

12: void delay1(unsigned char k)

13: {

17: unsigned char i=0;

C:0x0021 E4 CLR A

C:0x0022 FE MOV R6,A

18: for(i=0;i0;i--);相同

C:0x0023 EE MOV A,R6

C:0x0024 C3 CLR C

C:0x0025 9F SUBB A,R7

C:0x0026 5003 JNC C:002B

C:0x0028 0E INC R6

C:0x0029 80F8 SJMP C:0023

19: }

C:0x002B 22 RET

分析:

delay1(1); 410-390=20

delay1(2); 439-411=28

delay1(3); 476-440=36

即:指令周期(即實(shí)際延時(shí))= 12 + 延時(shí)參數(shù) * 8

二、不再重新定義變量,for語句

28: delay1(1);

C:0x0005 7F01 MOV R7,#0x01

C:0x0007 1123 ACALL delay1(C:0023)

12: void delay1(unsigned char k)

13: {

18: for(;k>0;k--);

C:0x0023 EF MOV A,R7

C:0x0024 D3 SETB C

C:0x0025 9400 SUBB A,#0x00

C:0x0027 4003 JC C:002C

C:0x0029 1F DEC R7

C:0x002A 80F7 SJMP delay1(C:0023)

19: }

C:0x002C 22 RET

分析:

delay1(1); 491-473=18

delay1(2); 518-492=26

指令周期(即實(shí)際延時(shí))= 10 + 延時(shí)參數(shù) * 8

對比一和二可知,延時(shí)函數(shù)中有重新定義循環(huán)變量i時(shí),理所當(dāng)然地多了2行代碼

不知原文中 “其生成的代碼是一樣的。”的結(jié)論是如何得來的?

三、for語句,改變循環(huán)結(jié)束條件

23: delay1(1);

C:0x0005 7F01 MOV R7,#0x01

C:0x0007 1123 ACALL delay1(C:0023)

11: void delay1(unsigned char i)

12: {

13: // while(--i);

14: // while(i--);

15: for(; i != 0; i--);

C:0x0023 EF MOV A,R7

C:0x0024 6003 JZ C:0029

C:0x0026 1F DEC R7

C:0x0027 80FA SJMP delay1(C:0023)

16: }

C:0x0029 22 RET

分析:

delay1(1); 404-390=14

delay1(2); 425-405=20

delay1(3); 452-426=26

指令周期(即實(shí)際延時(shí))= 8 + 延時(shí)參數(shù) * 6

對比二和三可知循環(huán)結(jié)束條件不同,編譯結(jié)果理當(dāng)不同,用i != 0快2個(gè)周期。

四、while語句1

21: delay1(1);

C:0x0005 7F01 MOV R7,#0x01

C:0x0007 1123 ACALL delay1(C:0023)

11: void delay1(unsigned char i)

12: {

13: while(i--);

C:0x0023 AE07 MOV R6,0x07

C:0x0025 1F DEC R7

C:0x0026 EE MOV A,R6

C:0x0027 70FA JNZ delay1(C:0023)

14: }

C:0x0029 22 RET

407-390=17,有點(diǎn)夸張

當(dāng)delay1(2)時(shí),為431-408=23

delay1(3)時(shí),為461-432=29

指令周期(即實(shí)際延時(shí))= 11 + 延時(shí)參數(shù) * 6

五、while語句2

21: delay1(1);

444 C:0x0005 7F01 MOV R7,#0x01

445 C:0x0007 111D ACALL delay1(C:001D)

11: void delay1(unsigned char i)

12: {

13: while(--i);

447 C:0x001D DFFE DJNZ R7,delay1(C:001D)

14: }

449 C:0x001F 22 RET

451

從上看出451-444=7個(gè)周期,指令周期為1us的話,就是7us

指令周期(即實(shí)際延時(shí))= 5 + 延時(shí)參數(shù) * 2

綜上可知:

共性:裝載函數(shù)參數(shù)用時(shí)1,調(diào)用用2,返回用2,1+2+2=5為固定開銷。

從以上各個(gè)結(jié)果的指令周期和延時(shí)參數(shù)的關(guān)系上看,很明顯,以后如果要求不用定時(shí)器實(shí)現(xiàn)us級的延時(shí)(按晶振12M,指令周期1us算),那么首選第五:

while(--i);

語句,其分辨率是最高,最精確的,當(dāng)然,對于相同的延時(shí)參數(shù),它的實(shí)際延時(shí)時(shí)間也是最短的,它只能最高延時(shí)5+255*2=515us,若所需延時(shí)大于此值,則需要循環(huán)嵌套;或者,可考慮選用

for(;k>0;k--);

最高延時(shí)=10 + 255*8=2050us=2.05ms

需要其他的延時(shí)時(shí)間片的話,再參考以上的公式計(jì)算即可。

擴(kuò)展閱讀:單片機(jī)程序延時(shí)方法詳細(xì)介紹

編輯:admin  最后修改時(shí)間:2018-05-19

聯(lián)系方式

0755-82591179

郵箱:ivy@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A09

Copyright © 2014-2025 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

欧美性猛交xxxx黑人猛交| 亚洲午夜精品一区二区麻豆| 门卫老李干了校花高小柔| 全免费a级毛片免费看| 亚洲精品国产suv一区88| 被猛男cao烂的小男生gv| 黄页网站推广app天堂| 亚洲日韩精品一区二区三区| 日本亚洲色大成网站www久久| 被主人在厨房用黄瓜调教| 高清一区二区三区日本| 扒开双腿疯狂进出爽爽爽动态照片| 999久久久国产精品| 自拍 亚洲 综合 另类小说| 女同互慰高潮呻吟免费播放| 日韩久久无码免费毛片软件| 又狠又深h军人高干| 亚洲精品国产精品乱码视色| 精品国产制服丝袜高跟| 中文字幕在线观看| 被夫上司欺辱的人妻hd中文版| 亚洲av午夜福利精品香蕉麻豆| 破處女特級a片在线观看| 日日噜噜噜夜夜爽爽狠狠| 又粗又爽高潮午夜免费视频| 美女又黄又免费的视频| 图片区小说区另类春色视频| 成人性毛片免费观看黄| 男男gaygay无套gay无套| 任你躁国语自产在线播放| 18禁男男腐啪gv真人视频| 亚洲av无码一区东京热久久| 国产美女极度色诱视频www| 跪下s货水都这么多了还装| 扒开老女毛荫荫的黑森林视频| 校草sao货撅起屁股扒男男| 亲子乱av视频一区二区| 翁莹情乱第全部篇| 色88久久久久高潮综合影院| 亚洲色成人网站www永久四虎| 和上司出差被内谢在线播放|