/**
TF2 定时器2 溢出标志。定时器2 溢出时置位,必须由软件清除。
当RCLK或TCLK=1 时,TF2 将不会置位。TR2 定时器2 启动/ 停止控制位。
置1 时启动定时器。C/T2 定时器/ 计数器选择。
(定时器2)
CP/RL2 捕获/ 重装标志。置位:EXEN2=1时,T2EX的负跳变产生捕获。
清 零:EXEN2=0 时,定时器2 溢出或T2EX 的负跳变都可使定时器自动重装
。当RCLK=1 或TCLK=1 时,该位无效且定时器强制为溢出时自动重装。
 RCAP2H,RCAP2L是定时器T2一个专门存放预置数的寄存器。
 定时器2 递增计数到0FFFFH,并在溢出后将TF2 置位,
 然后将RCAP2L 和RCAP2H 中的16 位值作为重新装载值装入定时器2。
 RCAP2L 和RCAP2H 的值是通过软件预设的。
 [T2CON=0x09;//必须将T2CON.7位置1才能进行外部捕获 /或者外部T2EX由1到0时产生中断]

T2CON     EQU     0C8H ; T2 控制寄存器,用以程控定时器2和外部中断操作格式
 T2CON.7   TF2 溢出中断标志位
T2CON.6   EXF2 外部中断标志位
T2CON.5   RCLK 串行接口接受时钟标志位
T2CON.4   TCLK 串行接口发送时钟标志位
T2CON.3   EXEN2   外部允许控制位
T2CON.2   TR2 运行控制为
T2CON.1   C/T2 定时器/计数器功能选择位
T2CON.0   CP/RL2 捕捉/重装载标志位

T2MOD EQU     0C9H ; T2 控制寄存器,用以定时器2在装入计数方式选择
; T2MOD.0   DCEN   向下计数允许位
; T2MOD.1   T2OE   T2输出允许位
TL2    EQU     0CCH    ; T2 计数寄存器低字节
TH2    EQU     0CDH    ; T2 计数寄存器高字节
TR2    EQU     0C8H.2 ; T2 启动位
RCAP2L EQU 0CAH     ; T2 计数重载寄存器低字节
RCAP2H EQU     0CBH ; T2 计数重载寄存器高字节
TF2    EQU     0C8H.7 ; 定时计数器2计满回零溢出中断请求标志位
ET2    EQU     IE.5        ; 定时器T2中断允许
;PT2    EQU     IP.       ; 定时器T2的中断优先级控制位,

或的书写方式 TMOD|=0x30;
 书写格式:
  void  Time2_Init(void) interrupt 5
{
      EA=1;          //开启总中断
      ET2=1;      //允许T2中断  .T2CON 师T2的控制寄存器
      EXEN2=0;       //定时器2 溢出或T2EX 的负跳变都可使定时器自动重装(也得软件清零溢出位,不然没法自动重装)
      C_T2=0;      // 定时器/ 计数器选择      0= 内部定时器(OSC/12 或OSC/6) 1= 外部事件计数器(下降沿触发)
      TF2=0;       //溢出位软件清零
      RCAP2L=(65535-18432)%256;     //捕获模式
      RCAP2H=(65535-18432)/256;

}
**/

#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit Led=P0^0; //定义LED位
void Timer2() interrupt 5 //调用定时器2,自动重装载模式(也得软件清零溢出位)
{
static uchar i=0; //定义静态变量i
TF2=0; //定时器2的中断标志要软件清0
i++; //计数标志自加1
if(i==16) //判断是否到1s
{
i=0; //将静态变量清0
Led=~Led; //LED位求反
}}
void main()
{
TH2=(65536-62500)/256; //重装载计数器赋初值
TL2=(65536-62500)%256;
ET2=1;//开定时器2中断
EA=1;//开总中断
TR2=1;//开启定时器,并设置为自动重装载模式
while(1);
}

完整资料打包(含仿真):

STC51单片机23-T2定时器的使用-单片机文档类资源-CSDN下载

STC51单片机23——T2定时器的使用相关推荐

  1. STC51单片机中断与定时器配置参考

    *外中断INT0--------void intsvr0(void) interrupt 0 using 1 *定时/计数器T0-----void timer0(void) interrupt 1 u ...

  2. STC 51单片机42——汇编 定时器 舵机

    ORG 0000H        HighH EQU 30H; 定义变量,高电平高八位         TimerH EQU 31H; 定义变量,高电平高八位定时值        TimerL EQU ...

  3. 51单片机学习-5定时器与中断

    5 定时器与中断 [toc] 注:笔记主要参考B站江科大自化协教学视频"51单片机入门教程-2020版 程序全程纯手打 从零开始入门". 注:工程及代码文件放在了本人的Github ...

  4. STC51单片机35——五线四相步进电机驱动测试程序(2个步进电机)

    /*--------------------------------------------------------------------------------      MCU:         ...

  5. pic单片机内部时钟校准c语言,PIC系列单片机片内定时器实时时钟的实现(转)

    PIC系列单片机片内定时器实时时钟的实现(转) (2008-08-11 14:24:59) 标签: 杂谈 1. 1 振荡频率的考虑 工作频率为4MHz 的单片机, 选择32. 768kHz 的晶振显然 ...

  6. 单片机之魂——定时器、中断

    文章目录 一.中断是什么 (1)中断 (2)中断优先级 二.中断的使用 1.外部中断 (2)定时器中断 一.定时器中断使用 二.TMOD与TCON 2.中断服务程序写法 总结 一.中断是什么 中断的控 ...

  7. 串口中断和定时器中断_51单片机中断机制(定时器/计数器)

    单片机中断简介 52单片机一共有6个中断源,它们的符号,名称以及各产生的条件分别如下: INT0 - 外部中断0,由P3.2端口线引入,低电平或下降沿引起 INT1 - 外部中断1,由P3.3端口线引 ...

  8. 奥克斯空调红外遥控信号编码协议的分析,STC51单片机读红外程序

    2022.9 网上根本找不到资料,没人免费发布,有发布也是要钱的.哎.自己研究吧. 刚买的奥克斯清芯净空调,遥控器型号YKR-T/101,这样子的,手感不错: 用USB示波器抓了波形看了一下,和标准的 ...

  9. 创意发明: 基于STC51单片机超声波测距(精简设计只需三个元件)

    基于STC51单片机超声波测距精简设计只需三个元件(测距模块暂且算做是一个元件吧) 1.所需元件:STC单片机+超声波模块+4位共阳数码管 2.原理:单片机向测距模块trig脚发送20us的高电平触发 ...

最新文章

  1. Block的副本放置策略
  2. C++ 性能剖析 (四):Inheritance 对性能的影响
  3. 汉字转拼音(c#) -转载
  4. iccv2020论文汇总_ICCV2019 最佳论文出炉,附1987~2019历届ICCV最佳论文汇总( 提供下载)...
  5. 1的恢复出厂设置在哪里_无线路由器怎么恢复出厂设置
  6. Python之路----------内置函数
  7. 开源项目贡献者_我如何从一名贡献者转变为一个开源项目维护者
  8. [Java] webservice soap,wsdl 例子
  9. 微型计算机指令系统例题,微机原理复习题(指令系统)
  10. Python GIL
  11. 迷你世界远古机器人_迷你世界:第三款机器人即将上线,网友5000迷你币抽新坐骑,哭了...
  12. web版ppt制作插件impress.js源码注释翻译
  13. 十大排序算法(数据结构)
  14. 如何快速删除 Word 文档中的分节符
  15. OEM JDM ODM OBM的区别
  16. sudo: no tty present and no askpass program specified 处理
  17. 如何实现SQL中加减乘除等四则运算
  18. 入门51单片机(STC8952RC)定时器、有关中断原理简述、寄存器设置与程序示例(包括流水灯和计时器)
  19. spring 自己定义标签 学习二
  20. 如何查看python安装了哪些模块_Python模块如何安装 并确认模块已经安装好?

热门文章

  1. 【解决】json字符串解析失败json.decoder.JSONDecodeError
  2. LeetCode:Kth Smallest Element in a BST
  3. python编程语言可以做游戏吗_python合不合适用来写游戏
  4. 报错:ERROR yaml.scanner.ScannerError: while scanning a quoted sca 如何解决
  5. mysql 查询当月当天数据量
  6. 基于Python的银行信贷风险可视化与预警建模
  7. JD-FreeFuck 京东薅羊毛控制面板 后台命令执行漏洞
  8. 学无止境——给网友的公开信
  9. 软件测试工程师Linux笔试题及答案(三)
  10. Java爬虫爬取wallhaven的图片