使用定时器实现长时间的延时
;知识要点:计数器的应用
;把定时器设置为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
ORG 0000H;程序开始
LJMP MAIN
ORG 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点亮, 实现长时间的延时
51单片机相关文章:51单片机教程
尘埃粒子计数器相关文章:尘埃粒子计数器原理
评论