1。初始化步骤
1〉确定T/C的工作方式------编程TMOD寄存器。
D7 D6 D5 D4 D3 D2 D1 D0
GATE1 C/-T1 M11 M01 GATE0 C/-T0 M10 M00
C/-T:1——〉计数器;0——〉定时器
GATE:1——〉T/C的启动受到双重控制,即要求TR和-INT同时为高;
0——〉仅受TR控制
M1和M0:工作方式选择位。 最大定时值(fosc=6MHz) 计数值
00:方式0,13位T/C,TL存低5位,TH 存高8位; 16.384ms 213=8192
01:方式1,16位T/C,TL存低8位,TH 存高8位; 131.072ms 65535
10:方式2,常数自动装入的8位T/C 512us 256
11:方式3,只用于T/C0, TL0可作T/C,TH0只能作定时器,而T/C1用作串行口的波特率发生器
2〉计算计数初值,装入TH,TL;
定时器方式下是对机器周期计数的, 一个机器周期为12/fosc
3〉T/C工作在中断方式时,须开CPU中断和源中断,即设置IE寄存器
4〉启动T/C——编程TCON中TR1或TR0位
D6:TR1 ;D4:TR0
关键字:计数器 定时器 C编程
引用地址:
计数器/定时器的C编程
推荐阅读最新更新时间:2024-03-16 13:54
mcs51单片机计数器工作方式0 定时时间的计算与编程举例
定T0或T1无论用作定时器或计数器都有4种工作方式:方式0、方式1、方式2和方式3。除方式3外,T0和T1有完全相同的工作状态。下面以T1为例,分述各种工作方式的特点和用法。 工作方式0: 13位方式由TL1的低5位和TH1的8位构成13位计数器(TL1的高3位无效)。工作方式0的结构见下图: 图中,C/T为定时/计数选择:C/T=0,T1为定时器,定时信号为振荡周期12分频后的脉冲;C/T=l,T1为计数器,计数信号来自引脚T1的外部信号。 定时器T1能否启动工作,还受到了R1、GATE和引脚信号INT1的控制。由图中的逻辑电路可知,当GATE=0时,只要TR1=1就可打开控制门,使定时器工作;当GATE=
[单片机]
STM32通用定时器详解
1. STM32定时器分类 STM32定时器可以分为3类: A)高级控制定时器TIM1和TIM8 高级定时器适合多种用途,包含输入捕获、输出比较、PWM、带死区控制的PWM等,所以可以用来做电机控制。 B)通用定时器TIM2、TIM3、TIM4、TIM5 通用定时器就是基本的定时器,同51单片机中定时器的概念。 C)基本定时器TIM6和TIM7 基本定时器可以为通用定时提供时间基准,可以为DAC提供时钟。 2. 通用定时器功能介绍 3. 通用定时器操作步骤 操作通用定时器时主要有如下几部: A)打开定时器的时钟 定时器的时钟控制寄存器为:APB1ENR,如下: 操作方式为RCC- APB1ENR |= (1 0); //打开T
[单片机]
51单片机的中断和定时器、计数器
中断使得高低速设备可以协调工作(低速设备完成工作后通过中断的方式通知高速设备一次处理一批数据),中断还可以根据不同的优先级实现嵌套执行。 定时器本质上是个 16 位的自增计数器,当发生溢出时,如果开启了溢出中断,单片机会自动向 CPU 报告这个溢出中断,处理相应的中断任务。 寄存器 TCON 定时器控制寄存器 TCON 的低 4 位用作外部中断,高 4 位用作定时控制。地址是 88H。 TCON 定时器控制寄存器各个位的意义如下: 所在位 bit 7 6 5 4 3 2 1 0 名称 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 IT0:外部中断0触发方式。1为低电平触发,0为下降沿触发
[单片机]
单片机C语言程序设计:用计数器中断实现100以内的按键计数
/* 名称:用计数器中断实现 100 以内的按键计数 说明:本例用 T0 计数器中断实现按键技术,由于计数寄存器初值为 1,因此 P3.4 引脚的每次负跳变都会触发 T0 中断,实现计数值累加。 计数器的清零用外部中断 0 控制。 */ #include reg51.h #define uchar unsigned char #define uint unsigned int //段码 uchar code DSY_CODE ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00}; uchar Count=0; //主程序 void main(
[单片机]
STM8S定时器概述及TIM1配置
20200831Add:TIM2,TIM3 configuration program. 其中:f CK_CNT为定时器计数频率;f CK_PSC为系统的时钟频率;PSCR 为预分频值。 Codes of configuration:
[单片机]
一分钟快速了解PLC编程算法
PLC中无非就是三大量:开关量、模拟量、脉冲量。搞清楚三者之间的关系,你就能熟练的掌握PLC了。 开关量也称逻辑量,指仅有两个取值,0或1、ON或OFF。它是最常用的控制,对它进行控制是PLC的优势,也是PLC最基本的应用。 开关量控制的目的是,根据开关量的当前输入组合与历史的输入顺序,使PLC产生相应的开关量输出,以使系统能按一定的顺序工作。所以,有时也称其为顺序控制。 而顺序控制又分为手动、半自动或自动。而采用的控制原则有分散、集中与混合控制三种。 模拟量是指一些连续变化的物理量,如电压、电流、压力、速度、流量等。 PLC是由继电控制引入微处理技术后发展而来的,可方便及可靠地用于开关量控制。由于模拟量可转换
[嵌入式]
STM32学习笔记——使用SysTick定时器做延时
开学了,无法再像假期一样能够一整天玩板了!好在这学期的课说少不少,说多也不多,每周也有十几大节。剩下的时间除去学生工作等一些七七八八的事情,间断着还是能看看教程玩玩板!越发发现《STM32菜鸟学习手册 啰嗦版》真是不错的入门教程,简单易懂。其他诸如《固件库手册》等等官方文件更是必不可少,可惜ST公司的网页找手册实在麻烦得很呐! 这两天一直在看有关于系统嘀嗒时钟SysTick的文件,但由于3.5版的固件库较2.0版的库,已经将SysTick相关的驱动函数移除,用户要使用SysTick就必须改为调用CMSIS中的函数,而网上大多数的例程(包括《菜鸟学习手册》)使用的都是2.0的库,以至于在学习中遇到许多问题,程序编译总会出现
[单片机]
使用STM32定时器PWM功能时的小问题
有人使用STM32定时器的PWM功能,遇到点小疑问,这里一起看看。 他先将STM32某定时器计数周期设为0xff,单向递增计数模式,OC比较值设为0x7F。在某时刻将新的计数周期0x7F与比较值0x3F加载到影子寄存器。当正在进行的一个周期结束后,经示波器测量确实可以看到其下一个周期发生变化,但其周期明显与预设值对应不上!再次经过一个周期,定时器才会按照预设值稳定输出。 以上是咨询者不算很清晰的描述【其实咨询TIMER问题最好配上时序图】,但可以了解到他要做的事情就是在ARR=0xff,ccr=0x7F的PWM输出状态下,于某时刻赋予ARR和CCR新值以改变输出波形。 事情不算复杂,疑点就是为什么需要2个周期延时后才能有基
[单片机]