談?wù)?1單片機(jī)延時(shí)子程序
;*****************************************************************
;延時(shí)350uS
;*****************************************************************
time350us:
time350us_1:
;*****************************************************************
;延時(shí)500uS
;*****************************************************************
time500us:
time500us_1:
;*****************************************************************
;延時(shí)1mS
;*****************************************************************
time1ms:
time1ms_1:
;*****************************************************************
;延時(shí)2.5mS
;*****************************************************************
time2_5ms:
time2_5ms_1:
;*****************************************************************
;延時(shí)10mS
;*****************************************************************
time10ms:
time10ms_1:
;*****************************************************************
;延時(shí)50mS
;*****************************************************************
time50ms:
time50ms_1:
;*****************************************************************
;延時(shí)100mS
;*****************************************************************
time100ms:
time100ms_1:
;*****************************************************************
;延時(shí)200mS
;*****************************************************************
time200ms:
time200ms_1:
time200ms_2:
;*****************************************************************
;延時(shí)500mS
;*****************************************************************
time500ms:
time500ms_1:
time500ms_2:
;*****************************************************************
;延時(shí)1S
;*****************************************************************
time1s:
time1s_1:
time1s_2:
12M晶振 機(jī)器周期為1US ?。危希袨閱沃芷谥噶睢。模剩危跒殡p周期指令.
3)
;;晶振12MHZ,延時(shí)1秒
DELAY:MOV
LOOP3:MOV
LOOP1:MOV
LOOP0:DJNZ
LOOP2:DJNZ
LOOP4:DJNZ
4);延時(shí)1分鐘子程序,F(xiàn)=6MHz
;程序已測(cè)過(guò),延時(shí)時(shí)間60,000,000.0uS
delay60s:mov r3,#228
loop1:
5)計(jì)算機(jī)反復(fù)執(zhí)行一段程序以達(dá)到延時(shí)的目的稱(chēng)為軟件延時(shí),單片機(jī)程序中經(jīng)常需要短時(shí)間的延時(shí),但是相當(dāng)一部分人對(duì)延時(shí)程序很模糊,對(duì)延時(shí)程序的算法不夠了解,在這里我以12MHz晶振和兩個(gè)經(jīng)典延時(shí)子程序?yàn)槔?,詳?xì)分析單片機(jī)匯編延時(shí)程序。
何為時(shí)鐘周期、機(jī)器周期、和指令周期?
時(shí)鐘周期:也就是振蕩周期,以12MHz的時(shí)鐘脈沖為例,那時(shí)鐘周期就為(1/12000000)s=(1/12)us;
機(jī)器周期:1個(gè)機(jī)器周期=6個(gè)狀態(tài)周期=12個(gè)時(shí)鐘周期=1us;
指令周期:CPU執(zhí)行一條指令所需要的時(shí)間稱(chēng)為指令周期,指令周期是以機(jī)器周期為單位的,不同的指令所需的機(jī)器周期不一定相同,可參考51單片機(jī)指令速查表。
0.1s延時(shí)子程序(12MHz晶振):
D1:
T=1+(1+2*R6+2)*R7+2
0.5s延時(shí)子程序(12MHz晶振):
D1:
D2:
T=1+[1+(1+2*R5+2)*R6+2]*R7+2
6) 51單片機(jī)經(jīng)典流水燈程序,在51單片機(jī)的P2口接上8個(gè)發(fā)光二極管,產(chǎn)生流水燈的移動(dòng)效果。
START:
LOOP:
;0.1秒延時(shí)子程序(12MHz晶振)===================
DELAY:
D1:
評(píng)論