Tick equ 5000 ; 10000 x 100us = 1s
T100us equ 20 ; 100us时间常数(6M)
C100us equ 5h ; 100us记数单元
LEDBuf BIT 00H
LED BIT P1.1
org 0000H
ljmp Start
org 0030H
org 000bh
LJMP T0Int
ORG 0100H
T0Int:
push PSW
mov a, C100us+1
jnz Goon
dec C100us
Goon:
dec C100us+1
mov a, C100us
orl a, C100us+1
jnz Exit ; 100us 记数器不为0, 返回
mov C100us, #HIGH(TICK);#high(Tick)
mov C100us+1, #LOW(TICK);#low(Tick)
cpl LEDBuf ; 100us 记数器为0, 重置记数器
; 取反LED
Exit:
pop PSW
reti
Start:
mov TMOD, #02h ; 方式2, 定时器
mov TH0, #t100us
mov TL0, #t100us
mov IE, #10000010b ; EA=1, IT0 = 1
setb TR0 ; 开始定时
clr LEDBuf
clr P1.1
mov C100us, #high(Tick)
mov C100us+1, #low(Tick)
Loop:
mov c, LEDBuf
mov P1.1, c
ljmp Loop
end
解释下怎样定时一秒的,先谢谢了