|
使用定時(shí)器0定時(shí)20ms,循環(huán)5次,移位控制led亮滅
但是有個(gè)BUG,速度比1s快多了,也就是那個(gè)5次沒(méi)起作用,求大神解惑
-
- ;流水燈例程,IO/定時(shí)器/
- ORG 0000H
- RESET: LJMP START
- ORG 000BH
- LJMP ITOP ;T0中斷服務(wù)函數(shù)
- ORG 1000H
-
- START:
- MOV SP,#06H ;設(shè)置堆棧指針
- MOV TMOD,#01H ;設(shè)置定時(shí)器模式,00H13位,01H16位,02H自動(dòng)重裝8位,03H(T0)兩個(gè)8位
- ;GATE|C/T|M1|M0,GATE|C/T|M1|M0
- ;裝入初值 ,要求設(shè)置定時(shí)20ms.
- ;X = M-((Fosc*20*10(-3次))/12) M=2的16次 X = 45536 1011 0001 1110 0000B
- MOV TL0,#0E0H
- MOV TH0,#0B1H
-
- ;定時(shí)器控制運(yùn)行
- SETB TR0 ;將t0運(yùn)行控制位置位
- ;中斷運(yùn)行控制
- SETB EA ;總中斷開(kāi)關(guān)
- SETB ET0 ;定時(shí)器中斷開(kāi)關(guān)置位
- MOV R5,#5
- MOV A,#01H
- MOV P1,A
- MAIN: AJMP MAIN ;動(dòng)態(tài)循環(huán)
- DELAYGO:
- RETI
- ITOP:
- MOV TL0,#0E0H
- MOV TH0,#0B1H
-
- DJNZ R5,DELAYGO;如果未滿(mǎn)循環(huán)5次,就繼續(xù)進(jìn)行定時(shí)中斷
- ;當(dāng)5次循環(huán)滿(mǎn)足時(shí),即定時(shí)1S
- LCALL LEDRUN
- MOV R5,#5
- RETI
- LEDRUN:
- RL A
- MOV P1,A
- RET
- END
-
-
-
復(fù)制代碼
里面有源代碼和仿真件
|
|