使用定时器实现长时间的延时--手把手教你学单片机
详细内容
;知识要点:计数器的应用
;把定时器设置为50ms, 另外设置两个软件计数器20,60 总时间
;为50ms*20*60=60000ms=1分钟
;t1为方式1则m1m0=01h,使用定时器c/t=0 gate=0 TMOD=10H
;方式1为16位计数器,一共65535, 减去50000等于15536则计数器初值为3cb0h
0000H;程序开始
LJMP MAIN
030H
MAIN: MOV 30H,#20;30h,31h分别置常数20,60
MOV 31H,#60;
MOV TMOD,#10H;定时器方式1
MOV TH1,#03CH;置定时器初值
MOV TL1,#0B0H
MOV IE,#00H;禁止中断
SETB TR1;起动定时器
LOOP: JBC TF1,LOOP1;查询定时器时间到转loop1
AJMP LOOP
LOOP1: MOV TH1,#03CH;重置定时器
MOV TL1,#0B0H
DJNZ 30H,LOOP;定时是否到了20次
MOV 30H,#20
DJNZ 31H,LOOP;定时是否到了60次
MOV 31H,#60
CPL P1.0;取反p1.0
AJMP LOOP
END
运行的状态:程序运行后全灭
运行的状态:1分钟后p10点亮, 实现长时间的延时