51的单片机学习——定时器

1、关于定时器

  • 定时器由高8位和低8位两个寄存器组成。
  • TMOD是定时器的工作方式寄存器,由它确定定时器的工作方式;
  • TCON是定时器的控制寄存器,用于控制定时器的启动和停止以及设置溢出标志。

2、对定时器的控制

  • 工作方式寄存器TMOD的设置:对TMOD的访问是按字节访问,所以对TMOD进行设置时需要8位;其工作方式有方式0~方式3四种工作方式,一般选用方式1,即设置TMOD=0x01;
  • 控制寄存器TCON的设置:若选用定时器T0,使用时,设置TR0=1;若选用定时器T1,使用时,设置TR1=1;

3、使用定时器的方法

  • 第一:设置TMOD,配置好工作模式;
  • 第二:设置TH0和TL0的初值;
  • 第三:设置TCON,通过TR0=1来让定时器T0开始计数;
  • 第四:判断TCON寄存器的TF0位,监测定时器溢出情况;

4、定时器在数码管静态显示中的应用

上次在做数码管静态显示时,是使用延时函数使数码管的显示更清晰。这次可以用定时器控制数码管显示两个不同数值之间的时间间隔。

程序:

#include <reg52.h>

sbit ADDR0=P1^0;  
sbit ADDR1=P1^1;
sbit ADDR2=P1^2;
sbit ADDR3=P1^3;
sbit ENLED=P1^4;

unsigned char code duan[]=//共阳极显示
{0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};  

void main()
{
	unsigned char i,n;
	
	ADDR0=0;  //按原理图对端口初始化
	ADDR1=0;
	ADDR2=0;
	ADDR3=1;
	ENLED=0;
	
	TMOD = 0x01;
	TH0 = 0xb8;
	TL0 = 0x00;
	TR0 = 1;
	
	
	while(1)
	{	
		if(TF0 == 1)
		{
			TF0 = 0;
			TH0 = 0xb8;
			TL0 = 0x00;
			n++;
			if(n>=50)    // 1s
			{
				n = 0;
				P0 = duan[i];
				i++;
				if(i>9) i=0;
			}
		}
	}
}

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值