微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 利用定时器1延时1秒的程序

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

时间:11-26 来源:互联网 点击:
;利用定时器精确延时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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top