導航:首頁 > 操作系統 > 單片機延時計算

單片機延時計算

發布時間:2022-03-15 18:59:29

1. C51單片機延時函數的計算

軟體延時都是不精確延時,精確延時需要用到定時器中斷。軟體延時的計算可以反匯編,匯編指令有對應的執行機器周期,機器周期=時鍾周期*12,時鍾周期就是晶振頻率的倒數。

這些都可以通過「單片機小精靈」這個軟體實現,本來就不是精確延時,沒必要深究,而且不同的51單片機運行速度不一樣,延時的時間也不一樣。

2. 有關單片機延時程序的計算

這個根據單片機的晶振頻率來算的,你先看看晶振周期是多大,然後一個機器周期是多少個晶振,一個機器周期就是一條代碼執行的周期
51的指令周期是對晶振12分頻 如果晶振是12M 那麼執行一條一個機器周期的的指令就是1US 即1S/(12M/12分頻) =1US
一個機器周期是12個時鍾周期

3. 單片機定時器延時計算方法

用延時函數就可以實現;
首先,設置定時器工作方式,也就是TMOD,在設置TH0/1,TL0/1的初值,也就是定時時間的設置,然後設置中斷允許,並開中斷就可以;
參考例子如下:
#include<reg51.h>
void main()
{
TMOD=0X01;
TH0=0X3C;
TL0=0XB0;
EA=1;
ET0=1;
TR0=1;
while(1);
}
void timer0() interrupt 1
{
TH0=0X3F;
TL0=0XB0;
}

4. 單片機延時程序的延時時間怎麼計算的

如果用循環語句實現的循環,沒法計算,但是可以通過軟體模擬看到具體時間,但是一般精精確延時是沒法用循環語句實現的。

如果想精確延時,一般需要用到定時器,延時時間與晶振有關系,單片機系統一般常選用11.059 2 MHz、12 MHz或6 MHz晶振。第一種更容易產生各種標準的波特率,後兩種的一個機器周期分別為1 μs和2 μs,便於精確延時。本程序中假設使用頻率為12 MHz的晶振。最長的延時時間可達216=65 536 μs。若定時器工作在方式2,則可實現極短時間的精確延時;如使用其他定時方式,則要考慮重裝定時初值的時間(重裝定時器初值佔用2個機器周期)。

5. 如何算51單片機延時時間

用KEIL軟體可以計算時間,將while的起始位置和終止位置加紅點(雙擊即可);
然後左側的SEC後面的就是執行的時間。
再給你幾個延時程序做參考:
軟體延時:(asm)
晶振12MHZ,延時1秒
程序如下:
DELAY:MOV
72H,#100
LOOP3:MOV
71H,#100
LOOP1:MOV
70H,#47
LOOP0:DJNZ
70H,LOOP0
NOP
DJNZ
71H,LOOP1
MOV
70H,#46
LOOP2:DJNZ
70H,LOOP2
NOP
DJNZ
72H,LOOP3
MOV
70H,#48
LOOP4:DJNZ
70H,LOOP4
定時器延時:
晶振12MHZ,延時1s,定時器0工作方式為方式1
DELAY1:MOV
R7,#0AH
;;晶振12MHZ,延時0.5秒
AJMP
DELAY
DELAY2:MOV
R7,#14H
;;晶振12MHZ,延時1秒
DELAY:CLR
EX0
MOV
TMOD,#01H
;設置定時器的工作方式為方式1
MOV
TL0,#0B0H
;給定時器設置計數初始值
MOV
TH0,#3CH
SETB
TR0
;開啟定時器
HERE:JBC
TF0,NEXT1
SJMP
HERE
NEXT1:MOV
TL0,#0B0H
MOV
TH0,#3CH
DJNZ
R7,HERE
CLR
TR0
;定時器要軟體清零
SETB
EX0
RET
C語言延時程序:
10ms延時子程序(12MHZ)
void
delay10ms(void)
{
unsigned
char
i,j,k;
for(i=5;i>0;i--)
for(j=4;j>0;j--)
for(k=248;k>0;k--);
}
1s延時子程序(12MHZ)
void
delay1s(void)
{
unsigned
char
h,i,j,k;
for(h=5;h>0;h--)
for(i=4;i>0;i--)
for(j=116;j>0;j--)
for(k=214;k>0;k--);
}
200ms延時子程序(12MHZ)
void
delay200ms(void)
{
unsigned
char
i,j,k;
for(i=5;i>0;i--)
for(j=132;j>0;j--)
for(k=150;k>0;k--);
}
500ms延時子程序程序:
(12MHZ)
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--);
}
不過實際得到的延時會存在差異,所以最好用實驗的方法調整延時參數。

6. 單片機中怎麼計算延時的時間

f=1MHz/4=250KHz,內部振盪模式
;T=4uS
這樣是什麼意思?
就是單片機內部的振盪器的參數設置.
單片機內部有RC振盪器,設定為f=1MHz/4=250KHz模式,
那麼它的機器周期T=4US

7. 51單片機中的延時應該怎麼計算

for(a=2;a>0;a--) // 2微秒, 執行2次(a+2)是4微秒;

for(b=142;b>0;b--) // 2微秒, 執行142次,for(a=2;a>0;a--)是4微秒,即2*(142*4);
for(c=1;c>0;c--) // 2微秒, 執行1次,即2*(142*4)=1136微秒;
b=125,1000/8=125,再減去其它調用時間,應該b取值不大於125。

8. 51單片機延時程序時間是怎麼計算的

51單片機延時時間計算需要考慮以下兩種因素:
1、指令執行時間
2、指令循環次數

閱讀全文

與單片機延時計算相關的資料

熱點內容
cnc編程工程師自我評價 瀏覽:126
書本文件夾夾子怎麼安 瀏覽:801
如何更改編譯器的背景 瀏覽:84
linuxcp拷貝文件 瀏覽:608
我的世界如何屏蔽別人伺服器 瀏覽:907
單片機燒錄員 瀏覽:970
美國數據伺服器可以部署什麼業務 瀏覽:973
如何卸載伺服器中的ie 瀏覽:42
單片機必須學編程嗎 瀏覽:153
如何判斷是否與伺服器連接資料庫 瀏覽:740
吃甜食會緩解壓力嘛 瀏覽:317
pdf魔鬼 瀏覽:29
二維數組遞歸解決演算法問題 瀏覽:382
java反射例子 瀏覽:670
惠普筆記本自帶解壓軟體 瀏覽:840
抖音視頻後台壓縮 瀏覽:707
app里的視頻廣告從哪裡接的 瀏覽:556
天翼雲伺服器跟騰訊雲 瀏覽:618
cyk演算法實現 瀏覽:191
大潘號app在哪裡可以下載 瀏覽:109