
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB ET0
SETB EA
MOV P1,#00H
MOV R2,#23
MOV R0,#20H
MOV R3,#0
LOOP:
MOV A,@R0
JB ACC.7,LOOP1
SJMP LOOP2
LOOP1:
INC R3
LOOP2:
INC R0
DJNZ R2,LOOP
SETB TR0
MOV R2,#97
SJMP $
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
DJNZ R2,T0E
MOV A,R3
MOV P1,A
CLR TR0
T0E:
RETI
END
ORG3000H ;定义程序开始地址为3000HSTART:MOV TMOD,#01H ;设置定时器0工作方式为1即16位定时器 。START为标号
MOVTL0,#OCH ;设置定时器0计数初值低字节;
MOVTHO,#OFEH ;设置定时器0计数初值高字节;
SETB TR0 ;运行定时饥举器0
LOOP: JBC TFO,DONE ;如果定时器0溢出,就跳到DONE执行并清除TF0标志,LOOP为标号;
SJMPLOOP ;跳转执行LOOP
DONE: MOV TL0,#OCH ;设置橡敏定时器0计数初值低字节,DONE为标号;
MOV THO,#OFEH;设置定时器0计数烂如碧初值高字节;
CPL P1.0 ;P1.0取反
SJMP LOOP ;跳转执行LOOP
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)