單片機(jī)中1S延時(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ā)展!
評(píng)論