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