<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 談?wù)?1單片機延時(shí)子程序

談?wù)?1單片機延時(shí)子程序

作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò ) 收藏

本文引用地址:http://dyxdggzs.com/article/201611/321877.htm

;*****************************************************************

;延時(shí)350uS

;*****************************************************************

time350us:movr5,#0afh;351us

time350us_1:djnzr5,time350us_1

ret

;*****************************************************************

;延時(shí)500uS

;*****************************************************************

time500us:movr5,#0fah;501us

time500us_1:djnzr5,time500us_1

ret

;*****************************************************************

;延時(shí)1mS

;*****************************************************************

time1ms:movr5,#0fah;1001us

time1ms_1:nop

nop

djnzr5,time1ms_1

ret

;*****************************************************************

;延時(shí)2.5mS

;*****************************************************************

time2_5ms:movr5,#05h;2.496ms

time2_5ms_1:movr6,#0f8h;497us

djnzr6,$

djnzr5,time2_5ms_1

ret

;*****************************************************************

;延時(shí)10mS

;*****************************************************************

time10ms:movr5,#14h;10.262ms

time10ms_1:movr6,#0ffh;511us

djnzr6,$

djnzr5,time10ms_1

ret

;*****************************************************************

;延時(shí)50mS

;*****************************************************************

time50ms:movr5,#63h;49.996ms

time50ms_1:movr6,#0fbh;503us

djnzr6,$

djnzr5,time50ms_1

ret

;*****************************************************************

;延時(shí)100mS

;*****************************************************************

time100ms:movr5,#0c3h;100.036ms

time100ms_1:movr6,#0ffh;511us

djnzr6,$

djnzr5,time100ms_1

ret

;*****************************************************************

;延時(shí)200mS

;*****************************************************************

time200ms:movr5,#02h;250.351ms

time200ms_1:movr6,#0f4h;125.173ms

time200ms_2:movr7,#0ffh;511us

djnzr7,$

djnzr6,time200ms_2

djnzr5,time200ms_1

ret

;*****************************************************************

;延時(shí)500mS

;*****************************************************************

time500ms:movr5,#04h;500.701ms

time500ms_1:movr6,#0f4h;125.173ms

time500ms_2:movr7,#0ffh;511us

djnzr7,$

djnzr6,time500ms_2

djnzr5,time500ms_1

ret

;*****************************************************************

;延時(shí)1S

;*****************************************************************

time1s:movr5,#08h;1001.401ms

time1s_1:movr6,#0f4h;125.173ms

time1s_2:movr7,#0ffh;511us

djnzr7,$

djnzr6,time1s_2

djnzr5,time1s_1

ret

12M晶振 機器周期為1US ?。危希袨閱沃芷谥噶睢。模剩危跒殡p周期指令.

3)

;;晶振12MHZ,延時(shí)1秒

DELAY:MOV72H,#100

LOOP3:MOV71H,#100

LOOP1:MOV70H,#47

LOOP0:DJNZ70H,LOOP0

NOP

DJNZ71H,LOOP1

MOV70H,#46

LOOP2:DJNZ70H,LOOP2

NOP

DJNZ72H,LOOP3

MOV70H,#48

LOOP4:DJNZ70H,LOOP4

4);延時(shí)1分鐘子程序,F=6MHz

;程序已測過(guò),延時(shí)時(shí)間60,000,000.0uS

delay60s:mov r3,#228

mov r2,#253

mov r1,#219

loop1:djnz r1,$

djnz r2,loop1

djnz r3,loop1

nop

ret

5)計算機反復執行一段程序以達到延時(shí)的目的稱(chēng)為軟件延時(shí),單片機程序中經(jīng)常需要短時(shí)間的延時(shí),但是相當一部分人對延時(shí)程序很模糊,對延時(shí)程序的算法不夠了解,在這里我以12MHz晶振和兩個(gè)經(jīng)典延時(shí)子程序為例,詳細分析單片機匯編延時(shí)程序。

何為時(shí)鐘周期、機器周期、和指令周期?

時(shí)鐘周期:也就是振蕩周期,以12MHz的時(shí)鐘脈沖為例,那時(shí)鐘周期就為(1/12000000)s=(1/12)us;

機器周期:1個(gè)機器周期=6個(gè)狀態(tài)周期=12個(gè)時(shí)鐘周期=1us;

指令周期:CPU執行一條指令所需要的時(shí)間稱(chēng)為指令周期,指令周期是以機器周期為單位的,不同的指令所需的機器周期不一定相同,可參考51單片機指令速查表。

由上可得:CPU執行一條單周期指令,需要1us;執行一條雙周期指令需要2us。

下面是具體的延時(shí)子程序分析:

0.1s延時(shí)子程序(12MHz晶振):

MOV R7,#200;單周期指令(1us)

D1:MOV R6,#250;單周期指令(1us)

DJNZ R6,$;雙周期指令(2us)//該指令自身執行R6次

DJNZ R7,D1;雙周期指令(2us)//D1執行R7次

RET;雙周期指令(2us)

T=1+(1+2*R6+2)*R7+2

=100603us

≈0.1s

0.5s延時(shí)子程序(12MHz晶振):

MOV R7,#5;單周期指令(1us)

D1:MOV R6,#200;單周期指令(1us)

D2:MOV R5,#250;單周期指令(1us

DJNZ R5,$;雙周期指令(2us)//該指令自身執行R5次

DJNZ R6,D2;雙周期指令(2us)//D2執行R6次

DJNZ R7,D1;雙周期指令(2us)//D1執行R7次

RET;雙周期指令(2us)

T=1+[1+(1+2*R5+2)*R6+2]*R7+2

=503018us

≈0.5s

6) 51單片機經(jīng)典流水燈程序,在51單片機的P2口接上8個(gè)發(fā)光二極管,產(chǎn)生流水燈的移動(dòng)效果。

ORG0;程序從0地址開(kāi)始

START:MOVA,#0FEH;讓ACC的內容為11111110

LOOP:MOVP2,A;讓P2口輸出ACC的內容

RRA;讓ACC的內容左移

CALLDELAY;調用延時(shí)子程序

LJMPLOOP;跳到LOOP處執行

;0.1秒延時(shí)子程序(12MHz晶振)===================

DELAY:MOVR7,#200;R7寄存器加載200次數

D1:MOVR6,#250;R6寄存器加載250次數

DJNZR6,$;本行執行R6次

DJNZR7,D1;D1循環(huán)執行R7次

RET;返回主程序

END;結束程序


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 51單片機延時(shí)子程

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>