新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 定時(shí)器0延時(shí)程序

定時(shí)器0延時(shí)程序

作者: 時(shí)間:2016-11-11 來(lái)源:網(wǎng)絡(luò) 收藏
本程序主要實(shí)現(xiàn)的是用DA指令進(jìn)行10進(jìn)制調(diào)整,使得兩位數(shù)碼管循環(huán)顯示0-99,延時(shí)1s。

(1):工作方式0下延時(shí)1s

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

查詢方式:

ORG 0000H
JMP MAIN
ORG 30H
MAIN:
MOV TMOD,#00H ;設(shè)置TIMER0工作在MODE0
MOV R4,#00H ;設(shè)置數(shù)碼管顯示初值
;SETB EA
;SETB ET0

START:
MOV R2,#200;延時(shí)1s
MOV P2,R4 ;計(jì)數(shù)初值送P2顯示
LCALL DELAY
XCH A,R4
ADD A,#01H
DA A ;R4送A累加,并做十進(jìn)制調(diào)整
XCH A,R4 ;調(diào)整后回送R4

;CJNE R4,#60H,START ;若要顯示60進(jìn)制,需加判斷語(yǔ)句
;MOV R4,#00H
JMP START



DELAY:
SETB TR0
REINIT:
MOV TL0,#(8192-5000)%256
MOV TH0,#(8192-5000)/256 ;定時(shí)5ms
LOOP:JBC TF0,LOOP1 ;TF0是否為1,是則跳到LOOP1,并清除TF0
SJMP LOOP ;不是則跳到LOOP繼續(xù)查詢TF0溢出標(biāo)志位狀態(tài)
LOOP1:
DJNZ R2,REINIT ;R2不為0繼續(xù)裝入初值,繼續(xù)定時(shí)
CLR TR0
RET
END

中斷方式:

ORG 0000H
JMP MAIN
ORG 000BH;定時(shí)器0中斷的入口地址
JMP INT_0
ORG 30H
MAIN:
MOV TMOD,#00H
MOV R4,#00H
SETB EA
SETB ET0
MOV TL0,#(8192-5000)%256
MOV TH0,#(8192-5000)/256
SETB TR0
START:
MOV P2,R4
MOV R2,#200
CJNE R2,#0,$
MOV R2,#200
XCH A,R4
ADD A,#01H
DA A
XCH A,R4
JMP START

INT_0:
CLR TF0
MOV TL0,#(8192-5000)%256
MOV TH0,#(8192-5000)/256
DEC R2
RETI
END

如果采用方式1的話,只需要重設(shè)TMOD為#01H,TH0=0D8H,TL0=0F0H即可。

(2):定時(shí)器0工作方式2延時(shí)1s

由于工作方式2下一次定時(shí)的最大時(shí)間為256us,所以設(shè)定一次循環(huán)的話,寄存器中循環(huán)初值設(shè)置最大也達(dá)不到延時(shí)1s的目的,因此采用了用兩個(gè)寄存器來(lái)循環(huán)定時(shí)。

查詢方式:

ORG 0000H
JMP MAIN
ORG 30H
MAIN:
MOV TMOD,#02H ;工作方式2
MOV R4,#00H

START:
MOV R2,#200 ;延遲50ms
MOV R3,#20 ;延遲1s
COUNT:

MOV P2,R4
LCALL DELAY
DJNZ R3,COUNT;循環(huán)定時(shí)
XCH A,R4
ADD A,#01H
DA A
XCH A,R4
JMP START

DELAY:
SETB TR0

REINIT:
MOV TL0,#6
MOV TH0,#6 ;定時(shí)250us

LOOP:JBC TF0,LOOP1
SJMP LOOP

LOOP1:
DJNZ R2,REINIT
CLR TR0
RET
END

中斷方式:

ORG 0000H
JMP MAIN
ORG 000BH
JMP INT_0
ORG 30H
MAIN:
MOV TMOD,#02H
MOV R4,#00H
SETB EA
SETB ET0
MOV TL0,#6
MOV TH0,#6
SETB TR0
START:
MOV R3,#20
MOV R2,#200
LOOP:
MOV P2,R4
CJNE R2,#0,$
MOV R2,#200
DJNZ R3,LOOP ;循環(huán)定時(shí)
XCH A,R4
ADD A,#01H
DA A
XCH A,R4
JMP START

INT_0:
CLR TF0
MOV TL0,#6
MOV TH0,#6
DEC R2
RETI
END

附圖:



關(guān)鍵詞: 定時(shí)器0延時(shí)程

評(píng)論


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

關(guān)閉