新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機中1S延時程序的編寫

單片機中1S延時程序的編寫

作者: 時間:2016-11-13 來源:網(wǎng)絡(luò) 收藏
大家在用單片機電路設(shè)計時經(jīng)常會用到延時,有些地方不用考慮太精確的延時時間,但有些場合卻必須對延時時間“斤斤計較”!今天就和大家討論一下關(guān)于延時程序的編寫。

在單片機延時程序中應(yīng)考慮所使用晶振的頻率,在51系列的單片機中,我們常用的是11.0592MHz和12.0000MHz的晶振,在AVR單片機上常用的有8.000MHz和4.000MH的晶振,而MSP430系列單片機中卻采用兩個時鐘輸入。

本文引用地址:http://butianyuan.cn/article/201611/316450.htm

這里以51單片機為例,介紹單片機延時程序的編寫。我們通常采用122.0000MHz的晶振,那么一個機器周期就是1us,我們看下面這個程序(注意程序的注釋):

DELAY: MOV R5,#8 ;1個機器周期。1+[1+(1+2*255)*244+2*244]*8+2*8 us

D1:MOV R6,#244 ;1個機器周期。1+(1+2*255)*244+2*244 us

D2: MOV R7,#255 ;1個機器周期。1+2*255 us

DJNZ R7,$ ;2個機器周期。

DJNZ R6,D2 ;2個機器周期。

DJNZ R5,D1 ;2個機器周期。

RET;2個機器周期。

上面這個程序的延時時間為:

1+[1+(1+2*255)*244+2*244]*8+2*8+2 us=1001401us=1.001403us。

當(dāng)然,此類延時程序也可以采用定時中斷進行編寫,詳細程序請大家自己編寫。希望大家能在單片機設(shè)計中大步發(fā)展!



關(guān)鍵詞: 單片機1S延時程

評論


技術(shù)專區(qū)

關(guān)閉