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

標題: 求大神解釋c51中delay 延時的作用以及算法 [打印本頁]

作者: ROGERER    時間: 2016-7-20 21:06
標題: 求大神解釋c51中delay 延時的作用以及算法
求解釋
for(i=4;i>0;i--)
for(j=220;j>0;j--)
在程序中延時時長和算法
急!!

作者: wc86110    時間: 2016-7-20 21:30
條件不夠沒法回答
作者: 無量壽經    時間: 2016-7-20 21:37
本帖最后由 無量壽經 于 2016-7-20 21:40 編輯

以下內容來源于《51單片機輕松入門-基于STC15W4K系列》第一章,里面有軟件使用方法與軟件源碼。
完整函數格式
void delay500ms(void)
{
   unsigned char i,j,k;
   for(i=15;i>0;i--)     //注意后面沒分號
   for(j=202;j>0;j--)    //注意后面沒分號
   for(k=81;k>0;k--);    //注意后面有分號
}
使用下面的軟件,你想延時多久就延時多久



延時程序.rar (2.4 MB, 下載次數: 179)





作者: ROGERER    時間: 2016-7-20 22:53
無量壽經 發表于 2016-7-20 21:37
以下內容來源于《51單片機輕松入門-基于STC15W4K系列》第一章,里面有軟件使用方法與軟件源碼。
完整函數 ...

我知道這一類的軟件,但是我想知道上面那個怎樣進行計算,算出來是延時多久?還有咋算的,求個詳細解釋,謝謝
作者: ahshmj    時間: 2016-7-21 20:35
匯編的算出來極準。C語言不一樣。
作者: 無量壽經    時間: 2016-7-21 21:16
本帖最后由 無量壽經 于 2016-7-21 21:21 編輯

運算過程是根據反匯編指令得出的,推理過程較為復雜,C——匯編——VB,在書上總共講了8頁,怎樣進行計算,算出來是延時多久,這個自己試試就知道了,也可以看下視頻使用演示與要點說明。STC15單片機視頻地址:
http://pan.baidu.com/share/home?uk=4077802723&view=share#category/type=0
延時軟件使用說明在“” 4—硬件仿真.avi“,這個地址也可以下載到完整的程序代碼。
完整內容請查閱下面這本書的第一章。



作者: jwjjwj123    時間: 2016-7-22 07:04
如像根據晶振來,一個語句多長時間,來算
作者: ROGERER    時間: 2016-7-22 10:14
無量壽經 發表于 2016-7-21 21:16
運算過程是根據反匯編指令得出的,推理過程較為復雜,C——匯編——VB,在書上總共講了8頁,怎樣進行計算, ...

好的。謝謝
作者: shitouyiyuya    時間: 2016-7-26 22:36
#在這里快速回復##include <reg51.h>
作者: 690665986    時間: 2016-12-27 12:12
void delay(uint z)
{
uint i,j;
for (i=z;i>0;i--)
        for(j=110;j>0;j--);
}
純手打
作者: lesterlzy    時間: 2017-6-22 19:54
厲害啊 但是不同的單片機怎么計算呢?
作者: 無量壽經    時間: 2017-6-22 21:45
lesterlzy 發表于 2017-6-22 19:54 | 只看該作者


厲害啊 但是不同的單片機怎么計算呢?

可以選擇不同的單片機,AT89與STC89相同,低速單片機,STC11、STC12、STC15等同屬于高速單片機。












作者: 3760609865    時間: 2017-6-22 22:09
是根據執行單步需要多少時間,然后再執行了多少次來計算的。所以它與你的工作頻率和所用的單片機有關聯。
作者: 馮子文    時間: 2018-1-1 19:38
好復雜!
作者: vickey    時間: 2018-1-2 09:46
這應該是因單片機而議的吧,通過循環,來延時
作者: htkinverter    時間: 2018-10-10 23:39
可以用!
作者: DPPO    時間: 2018-10-11 17:11
你現在這個用的是利用循環占用CPU時間起到延時效果,具體延時時間可以通過兩種方法來得知:
1、通過debug,也即調試功能,調試有兩種,有模擬有在線,我們直接用模擬即可。通過debug可知你這個延時函數延時的具體時間,注:軟件模擬的晶振值需與實際硬件所用的晶振值一樣,不然延時時間會有偏差。
2、第二種就是通過晶振算出振蕩周期,機器周期,指令周期,然后算出這個循環的具體延時時間。
3、如果想要用循環來起到延時,且想要具體延時時間,可自己算出所需要的具體時間,覺得麻煩可以用軟件來替代計算。我上傳的附件就可以。4、如果會中斷,也可以使用計時器來進行延時。
5、希望我的回答對你有所幫助。

單片機小精靈v1.3完美破解.zip

1.2 MB, 下載次數: 24

里面有各種用途,計算延時只是其中之一


作者: somayboy    時間: 2018-10-11 17:43
  使用軟件小程序去算
作者: psuxaog    時間: 2018-10-21 11:01
可以開個定時器中斷,在里面放標志位,主循環中查詢標志位,使程序有一定的節拍,這樣程序中的時序會比較精確,例如:
  1. bit gFlag10ms = 0;
  2. void TIM10_IRQ(void) interrupt IRQ_T0
  3. {
  4.     TL0 = XXX;
  5.     TH0 = XXX;
  6.     gFlag10ms = 1;
  7. }
  8. void main(void)
  9. {
  10.     SYS_Init();
  11.     while(1)
  12.     {
  13.         if(gFlag10ms)
  14.         {
  15.             gFlag10ms = 0;
  16.             DUST_Server();
  17.             MTR_Server();
  18.             COVER_Server();
  19.         }
  20.     }
  21. }
復制代碼
而如果用于模擬IIC等程序的延時可以先簡單編寫一個延時程序,然后仿真,在KEIL反匯編中查看反匯編代碼,查詢單片機規格書得到每個指令的周期,調教延時程序,如果有示波器或邏輯分析儀的話可以把某個IO口置1,延時,置零,用儀器觀察延時時間然后調試。


作者: 我要當大佬    時間: 2018-12-11 19:33
軟件延時的基本原理是多次重復執行指令,比如1條指令執行需要1微妙的時間,那么執行一千條這個指令 就會消耗一毫秒的時間;  其中asm("nop");語句是插入匯編指令的寫法。表示在for循環中插入一條nop指令,這是一個空操作指令;它的執行將消耗掉一個cpu周期,因為我們的目的就是延時,所以空操作就可以;  但是C語言書寫的fof循環編譯器會加入很多我們看不到的底層實現代碼,它們的執行也需要時間,所以循環次數遠小于1000;   注意:軟件延時只能用到要求不高的場合,因為軟件延時會無端的浪費掉單片機的資源,延時也容易被打斷就不準確了
作者: Evan.LRW    時間: 2019-7-16 12:54
用軟件算方便
作者: univers    時間: 2019-7-16 16:35
求解釋
for(i=4;i>0;i--)
for(j=220;j>0;j--)
在程序中延時時長和算法
先是i=4
之后i減1后不等于0
跳到下面j=220
之后j還是大于0 則減一,如此循環減去,減去的次數就是4*220了
因為CPU執行一次是要時間的,加在一起就是達到延時目地。


作者: 若如初見    時間: 2019-7-16 21:33
ROGERER 發表于 2016-7-20 22:53
我知道這一類的軟件,但是我想知道上面那個怎樣進行計算,算出來是延時多久?還有咋算的,求個詳細解釋, ...

這是利用程序進行延時,和利用定時器延時還是有所區別的定時器可以根據機器周期算出來,軟件delay程序,是依照執行代碼的速率統計時間的,你可以利用keil軟件進行模擬在調試窗口下可以查看delay所延遲的時間。
作者: nsush    時間: 2019-7-17 01:16
psuxaog 發表于 2018-10-21 11:01
可以開個定時器中斷,在里面放標志位,主循環中查詢標志位,使程序有一定的節拍,這樣程序中的時序會比較精 ...

非常感謝!
作者: t20ily    時間: 2019-12-10 22:48
無量壽經 發表于 2016-7-20 21:37
以下內容來源于《51單片機輕松入門-基于STC15W4K系列》第一章,里面有軟件使用方法與軟件源碼。
完整函數 ...

需要這個程序,感謝分享
作者: RETRE    時間: 2019-12-11 15:08
條件不夠沒法回答
作者: 我們不一樣111    時間: 2019-12-16 11:29
是根據執行單步需要多少時間,然后再執行了多少次來計算的
作者: ZhuHaoDong    時間: 2020-3-15 20:43
樓主 你這個問題解決沒  我有同樣的問題
作者: pluto^n    時間: 2020-3-16 20:01
你這沒寫全啊




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1