單片機中1S延時程序的編寫
在單片機延時程序中應(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ā)展!
評論