欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11978|回復: 21
收起左側

幫忙,這個程序怎么得來的啊

[復制鏈接]
ID:3021 發表于 2008-7-21 13:06 | 顯示全部樓層 |閱讀模式
我是單片機學習新手,有個問題想請問高手們。請問以下的程序是如何得來的,那些數字是根據什么算來的?
DELAY:  MOV  R3, #50;
   D1:  MOV  R4, #20;
   D2:  MOV  R5, #248;
        DJNZ R5, $;
        DJNZ R4, D2;
        DJNZ R3, D1;
        RET
        END
請高手幫忙,在下感激不盡
回復

使用道具 舉報

ID:3271 發表于 2008-7-21 15:06 | 顯示全部樓層
著是一個延時程序
回復

使用道具 舉報

無效樓層,該帖已經被刪除
ID:3569 發表于 2008-7-22 13:48 | 顯示全部樓層

正如二樓說的 是一個延時程序,數據是根據須要來定的,一條指令比如說要使用1個機器周期,晶振是12m,要延時1s,那么你就可以根據這些數據來定,指令中的那些立即數了

回復

使用道具 舉報

ID:3021 發表于 2008-7-29 21:06 | 顯示全部樓層
謝謝幫忙,在下明白了
回復

使用道具 舉報

ID:4024 發表于 2008-8-5 15:50 | 顯示全部樓層

路過

回復

使用道具 舉報

7#
無效樓層,該帖已經被刪除
ID:4839 發表于 2008-9-2 23:11 | 顯示全部樓層
YS0: MOV R0,#10 YS1: MOV R1,#100 YS2: MOV R2,#7DH(其實是125) YS3: NOP NOP DJNZ R2,YS3(每執行一次為四個指令周期也就是4微妙,這個指令要執行125次,也就是500微妙) DJNZ R1,YS2(這條指令一次要0.5ms要執行100次,就是50ms) DJNZ R0,YS1(這條指令一次要50ms,要執行10次,就是500ms既0.5S) RET 要想調整時間可以調整R0和R1的大小,不要超過256就可以了! 這樣的延時不和很準,只是大概的,用在要求不高的場合,要想準確就要用定時器!
回復

使用道具 舉報

ID:7199 發表于 2008-12-3 13:02 | 顯示全部樓層
樓上說得很好
回復

使用道具 舉報

ID:5875 發表于 2009-2-26 21:15 | 顯示全部樓層
這延時程序自己琢磨了好久才明白它的算法。。不過還好自己搞懂,記的特牢
回復

使用道具 舉報

ID:8765 發表于 2009-2-26 23:15 | 顯示全部樓層
之前有認真算過長時間不算又忘的差不多了
回復

使用道具 舉報

ID:11013 發表于 2009-4-11 08:42 | 顯示全部樓層

延時,不知怎樣才能算出精確的延時

回復

使用道具 舉報

ID:11309 發表于 2009-4-16 13:48 | 顯示全部樓層

哈哈,我也是好像剛明白點。

回復

使用道具 舉報

ID:11709 發表于 2009-5-14 21:46 | 顯示全部樓層
執行數值移動的指令用一個機器周期,那個DJNZ的指令執行一次用2個機器周期,你算算用多少時間就明白了,就像是樓上說的那樣,這樣延時不準確。要是想嚴格定時還得用定時/計數器的定時功能。
回復

使用道具 舉報

ID:13151 發表于 2009-5-24 22:18 | 顯示全部樓層
DELAY:  MOV  R3, #50;   1US
   D1:  MOV  R4, #20;     1US    
   D2:  MOV  R5, #248;   1US
        DJNZ R5, $;           2US
        DJNZ R4, D2;         2US
        DJNZ R3, D1;         2US
        RET                  
        END
DELAY的時間       D1                 D2        DJNZ R5……       DJNZ R4……        DJNZ R3……
1       +            (1        +      ( 1   +      2*248    +            2)*20 +         2)*50
差不多就是這么算的
回復

使用道具 舉報

ID:13151 發表于 2009-5-24 22:21 | 顯示全部樓層
我上面是算的12MHZ晶振。不要亂代了機器周期時間。
回復

使用道具 舉報

ID:13825 發表于 2009-6-11 10:26 | 顯示全部樓層
總延時:2微妙乘R7乘R6乘R5=2微妙X50X20X248=496000微妙=0.496S
回復

使用道具 舉報

ID:14096 發表于 2009-6-11 10:45 | 顯示全部樓層
DELAY:  MOV  R3, #50;                 延時:50×20×248×2μs=0.5s
   D1:  MOV  R4, #20;
   D2:  MOV  R5, #248;
        DJNZ R5, $;               $的意思就是原地等待
        DJNZ R4, D2;
        DJNZ R3, D1;
        RET
        END
貌似很容易理解吧?
回復

使用道具 舉報

ID:14104 發表于 2009-6-11 13:48 | 顯示全部樓層
學習了,謝謝
回復

使用道具 舉報

ID:14095 發表于 2009-7-7 21:21 | 顯示全部樓層

呵呵  路過

回復

使用道具 舉報

21#
無效樓層,該帖已經被刪除
ID:24661 發表于 2010-6-23 15:24 | 顯示全部樓層
前三條指令是把操作地址放到寄存器中,后三條指令是循環空操作,旨在延時
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表