×
嵌入式 > 嵌入式开发 > 详情

利用定时器1延时1秒的程序

发布时间:2020-08-25 发布时间:
|
;利用定时器精确延时1秒
;循环点亮P1口接的八只发光二极管。
ORG 0000H
AJMP START
ORG001BH;T1中断入口地址
AJMP INT_T1
ORG0030H
START:
MOVSP,#60H
MOVTMOD,#10H;置T1为方式1
MOVTL1,#00H;延时50mS的时间常数
MOVTH1,#4CH
MOVR0,#00H
MOVR1,#20
SETB TR1;启动定时器1,开始定时
SETB ET1
SETB EA;开中断
SJMP $
INT_T1:;T1中断服务子程序
PUSH ACC;保护现场
PUSH PSW
PUSH DPL
PUSH DPH
CLRTR1;关闭定时器1,停止定时
MOVTL1,#00H;延时50mS常数
MOVTH1,#4CH
DJNZ R1,EXIT
MOVR1,#20;延时一秒的常数
MOVDPTR,#DATAb ;置常数表基址
MOVA,R0;置常数表偏移量
MOVC A,@A+DPTR;读常数表
MOVP1,A;送P1口显示
INCR0
ANLR0,#07H
EXIT:
SETB TR1;启动定时器1,开始定时
POPDPH;恢复现场
POPDPL
POPPSW
POPACC
RETI
;发光二极管显示常数表
DATAb:DB 55H,0AAH,05H,0AH,50H,0A0H,0FFH,0H
END


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
Recogni:将高端AI芯片推向自动驾驶边缘