51单片机之喝水提醒器

本文详细介绍了嵌入式系统中的定时器工作原理,包括晶振的作用、时钟周期和机械周期的概念,以及定时器在51单片机中的应用。同时,讨论了LCD1602液晶显示器的使用,包括初始化、显示字符和行的操作。此外,还提到了超声波测距技术及其在监测水杯放置状态的应用,以实现喝水提醒功能。

定时器

定时器介绍

晶振

晶体震荡器,又称数字电路的“心脏”,是各种电子产品里面必不可少的频率元器件。数字电路的所有工作都离不开时钟,晶振的好坏、晶振电路设计的好坏,会影响到整个系统的稳定性。

时钟周期

时钟周期也称为振荡周期,定义为时钟频率的倒数。时钟周期是计算机中最基本的、最小的时间单 位。在一个时钟周期内,CPU仅完成一个最基本的动作。时钟周期是一个时间的量。更小的时钟周 期就意味着更高的工作频率。

机械周期

机器周期也称为CPU周期。在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶 段(如取指、译码、执行等),每一阶段完成一个基本操作。完成一个基本操作所需要的时间称为 机器周期。一般情况下,一个机器周期由若干个时钟周期组成。

每经过一个机械周期经过多长时间

以晶振频率11.0592MHZ为例,时钟周期为晶振的倒数,即1/1105920000秒。

  • 如果是12T模式,机械周期 = 12 X 时钟周期,即12/11059200000秒 = 1.085微秒

  • 如果是6T模式,机械周期 = 6 X 时钟周期,即6/11059200000秒 = 0.5425微秒

定时器和计数器的区别

51单片机中的定时器和计数器使用同一个硬件电路,通过修改寄存器的配置来将该硬件电路变成定时器或者计数器。

  • 当配置成定时器时,每经过一个机械周期,计数存储器的值加1,C51有两个定时器T0和T1。

  • 当配置成计数器时,每来一个负跳变信号(高电平跳到低电平),计数存储器的值加1。

定时器相关寄存器

定时器计时寄存器(TH和TL寄存器)

当定时器的TH寄存器和TL寄存器都用起来,即一共有16位,那么该定时器最多数2^16 = 65536下,即大概65536*1.085微秒 = 71毫秒,也就是说定时器T0或者定时器T1最多定时71毫秒。

例如现在需要使用定时器0定时10毫秒,怎么配置寄存器TH0和TL0,只需要配置TH0 = 0xDC , TL0 = 0x00。

定时器控制寄存器(TCON寄存器)

以定时器0和外部中断0为例
  • TF标志位:当定时器0爆表后(即定时结束后),TF标志位,TF0会置1(TF0 = 1),此时会向CPU请求中断,如果中断条件允许的话就执行外部中断0,执行完中断后,TF0会硬件置0(TF = 0),当我们不想它执行中断就可以软件置0,即手动将TF0置0(TF =0)。

  • TR标志位:当TR0 =1 时,定时器0才1会允许计数,即开始计时,当TR0 = 0时,不允许定时器0进行计数。

  • IE标志位:当IE0 = 1时,会向CPU请求外部中断0,当CPU响应外部中断0后会将IE0硬件置零(IE0 = 0)。

  • IT标志位:当IT0 = 1时,低电平触发外部中断0;当IT0 = 0时,下降沿触发外部中断0。

定时器模式寄存器(TMOD寄存器)

以定时器0为例
  • GATE标志位:一般为0,GATE = 0时,当TR0 = 0时,定时器0开始计数。

  • C/T标志位:一般为0,C/T为0时,让定时器0作为定时器

  • M1、M0标志位:一般为0、1,16位定时器,TL0和TH0两个寄存器都使用。

通过定时器0,让蜂鸣器叫一秒,不叫一秒,定时器0爆表后,不执行中断

#include"reg52.h"

sbit buzzer = P1^2;

voidmain(){
	int cnt = 0;
	buzzer = 1;
	
	TMOD = 0x01; //设置定时器0为16为计时模式
	
	//设置定时器0定时时间为10ms
	TH0 = 0xDC;
	TL0 = 0x00;

	TR0 = 1; //定时器0开始计时
	TF0 = 0; //外部中断0标志位置0,不进行定时器0产生的中断

	while(1){
		//当定时器0爆表时
		if(TF0 == 1){ 
			TF0 = 0; //外部中断0标志位置0,不进行定时器0产生的中断
			cnt++;
			TH0 = 0xDC;
			TL0 = 0x00;
			if(cnt == 100){
				cnt = 0;
				buzzer = !buzzer;
			}
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值