;让LED灯每隔R1ms改变一次
COUNTEQU9217 ;关于11.0592的晶振来说,9217相当于10ms
LEDEQUP1.1
ORG0000H
MOVR0,#00H
DJNZR0,$
MOVR1,00H;用R1来作为全体计数时用
MOVSP,#60H
MOVR1,#00H
//MOVA,TMOD
//ANLA,#11110000B
//CLRACC.3
//CLRACC.2
//CLRACC.1
//SETBACC.0
//MOVTMOD,A
MOVTMOD,#00000001B ;上面的写法可以用这个替代,更简练一些
MOVTH0,#(65536-COUNT)/256
MOVTL0,#255
CLRTF0
SETBTR0
LOOP:JNBTF0,LOOP
;
OVER:CLRTF0
MOVTH0,#(65536-COUNT)/256
MOVTL0,#255
INCR1
MOVA,R1
CJNER1,#5,NEXT;没到达50ms,在进行累加守时
CPLLED
MOVR1,#00H ;从头给装初值
NEXT:AJMPLOOP;到达50ms后,灯取反后重新开端守时
END