使用定时器实现长时间的延时

嵌入式系统 时间:2011-02-25来源:网络

;知识要点:计数器的应用

;把定时器设置为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单片机 MCU 单片机视频教程 单片机开发 ARM单片机 AVR单片机 PIC单片机 Atmel stm32 单片机学习 单片机

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版