快速导航
STC12已封装好的函数库

宏定义系统时钟

#define MAIN_Fosc        11059200L   //宏定义主时钟HZ
//#define MAIN_Fosc     12000000L

timer0_ISR.c

#include "config.h"
#include "timer0_ISR.h"uint SetTime_us;//设置定时时间//当前定时器工作模式为1T工作模式
//注释掉这行则当前定时器工作模式为12T
#define MODE1T#ifdef MODE1T
#define T1MS (65536-MAIN_Fosc/SetTime_us)//1T模式下
#else
#define T1MS (65536-MAIN_Fosc/12/SetTime_us)//12T模式下
#endif/****************************************函数名称:void Timer0Init(uint8 time_us)*函数功能:定时器0初始化*输入    :uint8 time定时时间,单位us;        *返回    :无***************************************/
void Timer0Init(uint time_us)
{SetTime_us = time_us;#ifdef MODE1TAUXR |= 0x80;//定时器0速度是8051定时器的速度,即12分频//定时器0为1T模式
#endifTMOD |= 0x01;//定时器0设置为定时方式,工作模式为16位自动重装模式TL0 = T1MS;     TH0 = T1MS >> 8; TR0 = 1;                        //定时器0开始计时ET0 = 1;                        //使能定时器0的溢出中断允许位EA = 1;                            //使能总中断
}/**************************************
功能描述:定时器0中断服务程序
入口参数:无
返回值:无
***************************************/
void tm0_isr() interrupt 1 using 1
{TL0 = T1MS;TH0 = T1MS >> 8;//以下为用户处理程序
}

timer0_ISR.h

#ifndef _TIMER0_ISR_H
#define _TIMER0_ISR_Hextern uint SetTime_us;//设置定时时间//定时器0初始化
void Timer0Init(uint time_us);#endif

timer1.ISR.c

#include "config.h"
#include "timer1_ISR.h"uint SetTime_us;//设置定时时间//当前定时器工作模式为1T工作模式
//注释掉这行则当前定时器工作模式为12T
#define MODE1T#ifdef MODE1T
#define T1MS (65536-MAIN_Fosc/SetTime_us)//1T模式下
#else
#define T1MS (65536-MAIN_Fosc/12/SetTime_us)//12T模式下
#endif/****************************************函数名称:void Timer1Init(uint time_us)*函数功能:定时器1初始化*输入    :uint8 time定时时间,单位us;        *返回    :无***************************************/
void Timer1Init(uint time_us)
{SetTime_us = time_us;#ifdef MODE1TAUXR |= 0x40;//定时器1速度是8051定时器的速度,即12分频//定时器1为1T模式
#endifTMOD |= 0x01;//定时器0设置为定时方式,工作模式为16位自动重装模式TL0 = T1MS;     TH0 = T1MS >> 8; TR0 = 1;                        //定时器0开始计时ET0 = 1;                        //使能定时器0的溢出中断允许位EA = 1;                            //使能总中断
}/**************************************
功能描述:定时器1中断服务程序
入口参数:无
返回值:无
***************************************/
void tm0_isr() interrupt 3 using 1
{TL0 = T1MS;TH0 = T1MS >> 8;//以下为用户处理程序
}

timer1_ISR.h

#ifndef _TIMER1_ISR_H
#define _TIMER1_ISR_Hextern uint SetTime_us;//设置定时时间//定时器1初始化
void Timer1Init(uint time_us);#endif

还有一个便捷生成定时器代码的方法:可以使用单片机精灵自动生成你想要的定时器,STC-ISP也有定时器计算器

STC12C5A60S2定时器配置相关推荐

  1. 【Arduino学习笔记】系列1 - 定时器配置

    目录 一.Arduino定时器简介 二.定时器基本概念 定时器速度(HZ) = Arduino时钟速度(16MHz) / 预分频器系数 中断频率(Hz)=(Arduino时钟速度16MHz)/(预分频 ...

  2. arduino定时器函数如何使用_Arduino定时器配置(Timer0,Timer1,Timer2)

    定时器基本概念: 定时器速度(HZ) = Arduino时钟速度(16MHz) / 预分频器系数 中断频率(Hz)=(Arduino时钟速度16MHz)/(预分频器*(比较匹配寄存器+ 1) 比较匹配 ...

  3. 【转载】外设使用Tips之MPC574xP系列汽车级MCU的SWT看门狗定时器配置与使用

    外设使用Tips之MPC574xP系列汽车级MCU的SWT看门狗定时器配置与使用 原创 2017-09-13 胡恩伟 汽车电子expert成长之路 内容提要 引言 1. SWT的功能概述 2. SWT ...

  4. java定时执行bat_windows定时器配置执行java jar文件的方法详解

    ##创建测试类 新建Java工程创建测试类如下代码:(创建文件验证定时器是否执行) package makeFile; import java.io.File; import java.io.IOEx ...

  5. STM32定时器配置(TIM1、TIM2、TIM3、TIM4、TIM5、TIM8)高级定时器+普通定时器,定时计数模式下总结

    STM32定时器配置(TIM1.TIM2.TIM3.TIM4.TIM5.TIM8)高级定时器+普通定时器,定时计数模式下总结 文章结构: --> 一.定时器基本介绍 --> 二.普通定时器 ...

  6. 瑞萨e2studio(15)----外部中断定时器配置输入捕获测量频率

    瑞萨e2studio.15--外部中断&定时器配置输入捕获测量频率 概述 视频教学 csdn课程 完整代码下载 样品申请 硬件准备 开发板 新建工程 工程模板 保存工程路径 芯片配置 工程模板 ...

  7. STM32CubeMX——定时器配置

    基于STM32CubeMX的定时器配置 说明 定时器简介 基本定时器功能(TIM6.TIM7): 通用定时器(TIM2~TIM5)的主要功能: 高级定时器(TIM1,TIM8)的主要功能: STM32 ...

  8. 增量式编码器定时器配置和速度计算的处理方法

    MCU定时器的CNT寄存器一般是16位的,使用定时器的编码器正交接口功能,计数周期有两种配置方法: 1.计数周期与编码器脉冲数相等 TIM_TimeBaseStructure.TIM_Period = ...

  9. 【STM32】【STM32CubeMX】STM32CubeMX的使用之六:定时器配置输出PWM,实现变色呼吸灯

    文章目录 0.前言 1.硬件设计 2.CubeMX配置 3.软件设计   下载工程文件:   https://gitee.com/Joseph_Cooper/stm32-cube-mx-stm32-l ...

  10. 【STM32】高级定时器、通用定时器和基本定时器---配置寄存器产生PWM

    文章目录 1.高级定时器和通用定时器 2.配置产生PWM 1.高级定时器和通用定时器   高级定时器:TIM1.TIM8   Tips:黄色词条为高级定时器相对于通用定时器的功能.   通用定时器:T ...

最新文章

  1. Servlet Mapping 中/ 和 /*的区别
  2. 三座”大山“或让谷歌无人机送货项目被冻结
  3. 热议:这样的开源项目,你会支持吗?
  4. 编写一程序,有2个文本框,在第一个文本框中输入一个整数,当焦点从第一个文本框离开时,第二个文本框将显示这个数的绝对值(使用FocusListener)。
  5. 第三次学JAVA再学不好就吃翔(part30)--继承
  6. python时间序列数据分析统计服_python数据分析之:时间序列二
  7. C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 基于数据库资源的多语言实现...
  8. 多种方式99.9%解决从PDF复制文字后乱码问题
  9. 有道翻译API接口的服务开通与使用Python进行接口调用实例演示,有道智云·AI开放平台
  10. 【SCI】【计算机视觉】【图像处理】一二三四区期刊推荐(自用版本)
  11. execl表格同时打开多个独立窗口编辑
  12. 关于百度云订阅无法正常查看订阅者分享的解决办法
  13. 远程控制 - 手机完全控制电脑之TeamViewer
  14. 掘金chrome插件安装失败怎么办?
  15. 关于ttyS与ttySAC
  16. 计算机入门模拟试卷c卷,《计算机入门》模拟卷C答案-华东师范大学.doc
  17. 让理科生沉默,让文科生落泪的题
  18. 【MySQL综合练习1】
  19. 华为手机 绑定MAC 无法上网
  20. 车易加:今日油价|油价上涨10元/吨,油价又要重新上涨?

热门文章

  1. 关于sql server中isnull(值,值)是什么意思
  2. java 将海外时区转换为北京时区
  3. 自动驾驶-YOLOV5目标检测
  4. cmake出错:Building inplace are not allowed. You should create a separate directory for Building.
  5. N4110解决WIN10黑屏问题
  6. python学完基础后实践练习:阿拉伯数字金额转人名币大写
  7. OA项目之我的审批(会议查询会议签字)
  8. STM32个人笔记--GPIO框图
  9. 学员心声--元气少女缘结华为
  10. Cisco ASA 的telnet设置