蓝桥杯之单片机学习(八)——定时器的基本原理与应用

简介: 蓝桥杯之单片机学习(八)——定时器的基本原理与应用

一、训练任务


在CT107D单片机综合训练平台上,利用51单片机的定时/计数器T0的模式1实现间隔定时,每隔1秒L1指示灯闪烁一下, 也就是点亮0.5秒,熄灭0.5秒;每隔10秒L8指示灯闪烁一下, 即点亮5秒,熄灭5秒。


1.1 训练重点


0a2653c851af460fa595bd959398a8f1.png2d65d23f6d4748949b924e4057485923.png


二、基本概念


定时/计数器的最基本工作原理是进行计数,作为定时器时,计数信号的来源选择周期性的内部时钟脉冲,作为计数器时,计数信号的来源选择非周期性的外部输入信号


2.1 理解定时器的工作原理


4cebaac233b3433da32a72337a77fc60.png


2.2 51单片机的定时/计数器


51单片机有两个定时/计数器T0和T1,为16位加法计数器,由低八位TLx和高八位THx两个寄存器组成,最大计数值为65532个计数脉冲


计数信号可以由两个,一个是系统时钟脉冲(时间可以自己设定,作为定时作用),一个是外部事件信号(不固定,来一次才加一,用作计数)


0a2653c851af460fa595bd959398a8f1.png2d65d23f6d4748949b924e4057485923.png4cebaac233b3433da32a72337a77fc60.png


这里需要用到TCON寄存器两个位置

6de278e6d6694ce5bb08e7e842b7e74b.png

TMOD模式寄存器,不能进行位操作,只能字节操作


8ec4f2997fb246878c34ecd6d122b7c6.png


三、定时/计数器的编程思路


12c3b7f3f8814309a195c64f051d4445.png


四、代码展示


#include <reg52.h>
typedef unsigned int uint;
typedef unsigned char uchar;
sbit L1 = P0^0;
sbit L8 = P0^7;
//配置HC138
void SelectHC138(uchar channel)
{
  switch(channel)
  {
  case 4:
    P2 = (P2 & 0X1F) | 0X80;
  break;
  case 5:
    P2 = (P2 & 0X1F) | 0Xa0;
  break;
  case 6:
    P2 = (P2 & 0X1F) | 0Xc0;
  break;
  case 7:
    P2 = (P2 & 0X1F) | 0Xe0;
  break;
  }
}
//初始化系统
void Initsys()
{
  SelectHC138(5);
  P0 = 0X00;//关闭蜂鸣器和继电器
  SelectHC138(4);
  P0 = 0XFF;//关闭LED
}
//********************************
void InitTime0()
{
  TMOD = 0X01;
  TH0 = (65535 - 50000) / 256;
  TL0 = (65535 - 50000) % 256;
  ET0 = 1;
  EA = 1;
  TR0 = 1;
}
uchar count = 0;
void ServiceTime0() interrupt 1
{
  TH0 = (65535 - 50000) / 256;
  TL0 = (65535 - 50000) % 256;
  count++;
  if(count % 10 == 0)
  {
  L1 = ~L1;
  }
  if(count == 100)
  {
  L8 = ~L8;
  count = 0;
  }
}
//********************************
void main()
{
  SelectHC138(4);
  InitTime0();
  Initsys();
  while(1)
  {
  }
}


相关文章
|
2月前
|
传感器 存储 物联网
单片机的原理与应用
单片机是一种将计算机的CPU、存储器、输入输出接口等功能集成在一块芯片上的微型计算机,被广泛应用于各类控制系统和智能设备中。
92 5
|
4月前
【51单片机】通过定时器中断 在8位数码管显示时间
【51单片机】通过定时器中断 在8位数码管显示时间
|
4月前
|
算法
51单片机不用定时器的数码管倒计时
51单片机不用定时器的数码管倒计时
|
6月前
|
存储 算法 测试技术
第十五届蓝桥杯大赛 国赛 pb组F题【括号与字母】(15分) 栈的应用
第十五届蓝桥杯大赛 国赛 pb组F题【括号与字母】(15分) 栈的应用
41 1
|
6月前
|
Java
2023蓝桥杯大赛软件类省赛Java大学B组G题 买二增一 队列的简单应用
2023蓝桥杯大赛软件类省赛Java大学B组G题 买二增一 队列的简单应用
43 1
|
5月前
蓝桥杯之单片机学习(终)——关于之前文章的错误及更正(附:第十四届蓝桥杯单片机赛题)
蓝桥杯之单片机学习(终)——关于之前文章的错误及更正(附:第十四届蓝桥杯单片机赛题)
|
5月前
|
传感器 存储 程序员
《单片机原理与应用及C51编程技术》期末复习笔记
《单片机原理与应用及C51编程技术》期末复习笔记
|
7月前
|
芯片
AT89S52单片机的最小应用系统
AT89S52单片机的最小应用系统
120 0
|
7月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
110 0