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

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

一、训练任务


在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)
  {
  }
}


相关文章
|
1月前
|
传感器 存储 物联网
单片机的原理与应用
单片机是一种将计算机的CPU、存储器、输入输出接口等功能集成在一块芯片上的微型计算机,被广泛应用于各类控制系统和智能设备中。
58 5
|
4月前
蓝桥杯之单片机学习(终)——关于之前文章的错误及更正(附:第十四届蓝桥杯单片机赛题)
蓝桥杯之单片机学习(终)——关于之前文章的错误及更正(附:第十四届蓝桥杯单片机赛题)
|
4月前
|
传感器 存储 程序员
《单片机原理与应用及C51编程技术》期末复习笔记
《单片机原理与应用及C51编程技术》期末复习笔记
|
6月前
|
传感器
51单片机循迹小车原理介绍和代码示例
51单片机循迹小车原理介绍和代码示例
51单片机循迹小车原理介绍和代码示例
|
5月前
|
物联网 Linux 芯片
学习嵌入式是选择单片机还是Linux?
单片机通常指的是一种集成了处理器、存储器和各种外设接口的微控制器芯片,常见的有STC、51系列、AVR、ARM Cortex-M等。单片机具有低成本、低功耗、实时性强等特点,适用于对资源要求较低、功耗要求较低、实时性要求较高的嵌入式系统。学习单片机开发可以让您深入了解嵌入式系统的底层原理和硬件编程,对于对嵌入式系统底层开发感兴趣的人来说,是一个很好的选择。
132 4
【51单片机】利用【时间延迟】的原理规避【按键抖动问题】
【51单片机】利用【时间延迟】的原理规避【按键抖动问题】
【51单片机】自定义动态数码管显示(设计思路&原理&代码演示)
【51单片机】自定义动态数码管显示(设计思路&原理&代码演示)
|
6月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
106 0
|
6月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
82 0
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
82 0