新聞中心

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

單片機(jī)中1S延時(shí)程序的編寫(xiě)

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

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

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

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

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

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

D2: MOV R7,#255 ;1個(gè)機(jī)器周期。1+2*255 us

DJNZ R7,$ ;2個(gè)機(jī)器周期。

DJNZ R6,D2 ;2個(gè)機(jī)器周期。

DJNZ R5,D1 ;2個(gè)機(jī)器周期。

RET;2個(gè)機(jī)器周期。

上面這個(gè)程序的延時(shí)時(shí)間為:

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

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



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

評(píng)論


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

關(guān)閉