目录

一、定时器/计数器T0

1、定时器/计数器的相关寄存器

2、定时器/计数器控制寄存器TCON

3、定时器/计数器工作模式寄存器TMOD

二、配置相关寄存器

1、使用STC-ISP工具

2、配置寄存器

设置定时器模式(16位定时器)

设置定时器初值

清除TF0标志

定时器0开始计时

三、定时器控制LED

四、定时器中断方式控制

1、中断寄存器

​2、定时器中断控制LED


一、定时器/计数器T0

1、定时器/计数器的相关寄存器

2、定时器/计数器控制寄存器TCON

TCON格式如下:

3、定时器/计数器工作模式寄存器TMOD

模式选择:

二、配置相关寄存器

1、使用STC-ISP工具

2、配置寄存器

设置定时器模式(16位定时器)

配寄存器推荐使用按位操作:

需要清零的位与等于0,不清零的位与等于1

需要置1的位或等于1,不需要置一的位或等于0

 TMOD &= 0xF0;      //清零低四位、高四位不变TMOD |= 0x01;     //低四位的bit0置1

设置定时器初值

 TL0=0x00;            //低八位、需要计算TH0=0xDC;            //高八位、需要计算
89C52的晶振频率是 11.0592MHz
机器周期 = 12 x 时钟周期 =12 x ( 1 /  时钟频率  ) s   = 1.085us
在 TH0 和 TL0 寄存器中计数 , 最多能计数2^16= 65536 ,累计计时大约 71ms
如何算出 10ms 定时器的初值?
        10ms需要数 9216 下,就配置寄存器从 65536-9126=56320 ( 16 进制表示为 0xDC00)开始计数。这样TL0=0x00 ; TH0=0xDC

清除TF0标志

    TF0 = 0;

不使用中断时,必须软件清零

定时器0开始计时

    TRO = 1;

三、定时器控制LED

#include "reg52.h"sbit led = P3^6;void delay10ms()
{//1. 配置定时器0工作模式为16位计数TMOD = 0x01;//2. 定10ms的初值TL0=0x00;TH0=0xDC;//3. 开始计时TR0 = 1;TF0 = 0;
}void main()
{int cnt = 0;led = 1;delay10ms();while(1){if(TF0 == 1)//当最高位产生溢出时,由硬件置1 {TF0 = 0;//不使用中断时,必须软件清零cnt++;  //统计溢出的次数//重新给初值TL0=0x00;TH0=0xDC;if(cnt == 100){//当溢出100次,经过了1scnt = 0;  //cnt重新计数led = !led;//每经过1s,翻转led的状态}}}
}

四、定时器中断方式控制

1、中断寄存器

EA  :总中断允许控制位。EA=1,CPU开放中断

ET0:T0的溢出中断允许位。ET0=1,允许T0中断

硬件内部设计逻辑如下图:

2、定时器中断控制LED

定时器中断控制LED1每秒亮灭一次,主函数里LED2每300ms亮灭一次

#include "reg52.h"sbit led1 = P3^6;
sbit led2 = P3^7;
int cnt = 0;void Time0Init()
{//1. 配置定时器0工作模式为16位TMOD = 0x01;//2. 定10ms的初值TL0 = 0x00;TH0 = 0xDC;//3. 开始计时TR0 = 1;TF0 = 0;//4. 打开定时器0中断ET0 = 1;//5. 打开总中断EAEA = 1;
}void Delay300ms()      //@11.0592MHz
{unsigned char i, j, k;i = 3;j = 26;k = 223;do{do{while (--k);} while (--j);} while (--i);
}void main()
{led1 = 1;Time0Init();while(1){led2 = 0;Delay300ms();led2 = 1;Delay300ms();}
}void Time0Handler() interrupt 1
{cnt++;                   //统计溢出的次数//重新给初值TL0=0x00;TH0=0xDC;if(cnt == 100){               //当溢出100次,经过了1scnt = 0;                 led1 = !led1;          //每经过1s,翻转led的状态}
}

【51单片机STC89C52】定时器(中断)控制LED相关推荐

  1. 51单片机学习--定时器--中断--串口通信

    51单片机学习–定时器–中断–串口通信 定时器–中断–串口通信 中断分类 定时器中断 外部中断 串口中断 基本概念 对于单片机来讲, 中断是指 CPU 在处理某一事件 A 时, 发生了另一事件 B, ...

  2. 51单片机红外通信及控制LED灯(LCD1602显示)

    51单片机红外通信及控制LED灯(LCD1602显示) 大家好,又和大家见面了,离上一次DS18B20传感器的文章已经过去了一个星期了,这期我将给大家带来,基于STC89C52芯片和HS0038红外接 ...

  3. 定时器中断控制LED闪烁(每隔1s)---普中科技开发仪

    定时器中断o,利用中断控制LED闪烁每隔1s闪烁一次(精确的1s) notes: (1)工作方式寄存器TMOD ,低四位用于To,高四位用于T1,(GATE,C/T- ,M1,M0) 一般让GATE ...

  4. 51单片机(STC89C52)的中断和定时器

    STC89C51/STC89C52 Timer 内部不带振荡源, 必须外接晶振 采用11.0592MHz,或22.1184MHz,可方便得到串口通讯的标准时钟. STC89和STC90系列为12T, ...

  5. STM32之定时器中断控制LED闪烁

    上篇博客我们是用延时函数实现了LED的闪烁,今天我们使用STM32的定时器来使LED闪烁. 关于32的定时器的种类,今天我在这先不做过多的说明,有时间我会再另写一篇博客来专门介绍32的定时器.今天我们 ...

  6. 51单片机STC89C52点亮一个LED(IO口的位操作)

    51单片机点亮一个LED(IO口的位操作)STC89C52 程序源码 /*-----------------------包含头文件区域-------------------------*/ #incl ...

  7. 定时器中断控制led灯闪烁

    定时器 stm32为我们提供了8个定时器,分为:通用是定时器(TIM2~TIM5),高级定时器(TIM1和TIM8),基本定时器(TIM6和TIM7).至于三者之间的区别可以参考以下博客:[https ...

  8. 51单片机实现独立按键控制LED灯

    本节博客主要实现以下效果: 3-1独立按键控制LED亮灭 本段代码主要使用了if...else...语句实现按下按下灯亮,松开按键时灯灭 #include <REGX51.H>void m ...

  9. 02讲 | 51单片机按键外部中断实现LED灯的亮灭

    前言 专栏内容持续补充更新,目前正在进行优惠活动! 目录 一.按键中断控制原理 二.外部中断实现 LED 灯亮灭功能代码

  10. 51单片机——电脑通过串口控制LED

    目录 1. 串口相关寄存器 1.1 串行控制寄存器SCON 1.2 电源控制寄存器PCON 1.3 与串行口中断相关的寄存器E和IPH.IP 2.源码 2.1 main.c 2.2 UART.c 2. ...

最新文章

  1. 深入学习JavaScript: apply call方法 详解(转)
  2. MySQL笔记1:考察内链接、左连接、右连接。
  3. java 内存泄露对象排查_记录一次 java内存泄漏的排查
  4. BugKuCTF WEB 你必须让他停下
  5. mysql group by 集合_MySQL高级查询之与Group By集合使用介绍
  6. array.unshift_Ruby中带有示例的Array.unshift()方法
  7. 干货!Python与MySQL数据库的交互实战
  8. C语言表达式5 0的结果是,c语言程序设计期末试题B(含答案)(5页).doc
  9. easyui下拉选项多怎么解决_作物根部病害多原因在哪?解决病害生根措施怎么做?...
  10. python导入selenium快捷键_python,_Selenium工具自动打开的浏览器和用快捷方式打开的样式不一样?,python - phpStudy...
  11. 【翻译】Siesta事件记录器入门
  12. libiconv android编译,编译cBPM-android-19—CodeBlocks—CentOS7— ndk10—编译libiconv和xerces-c...
  13. Telos 首份年报(中译版-下)
  14. jar文件打不开,用什么打开
  15. 【自动驾驶】浅谈自动驾驶在业界的发展
  16. ESP32-Ardunio 心知天气 hhtps 获取数据 +NTP对时
  17. 机器学习之降维方法总结
  18. 大富豪5.3全网首发,真正的5.3正版破解授权,不是高防端
  19. Xilinx HLS 导出IP失败的最新解决方案(2022.1.15)
  20. 少壮不努力,一生在内地

热门文章

  1. Unity基础篇:解决Asset Store资源商店点下载或导入没反应
  2. 理一理 OC/OD 门、开漏输出、推挽输出等一些相关概念
  3. office套件_OfficeSuite Premium 免费专业Office办公套件
  4. W800BT Plus耳机测评 【耳机测评】 【分贝测试】
  5. 机器学习实现了脑机语言翻译,那距离“意念交流”还有多远?
  6. 【天光学术】经济统计学论文:“三权分置”下土地经营权抵押贷款证券化研究(节选)
  7. msi文件替换修改cab文件
  8. Mac OS下的自带虚拟光驱
  9. flex4兼容flex3
  10. unity3D实践报告-忍者跑酷