定时计数器的四种工作方式
plc定时器的工作原理

plc定时器的工作原理PLC定时器是工业自动化控制系统中常用的一种设备,它的工作原理是通过控制输入信号和运算逻辑来实现定时功能。
本文将从定时器的基本原理、工作方式和应用领域等方面进行详细介绍。
一、定时器的基本原理PLC定时器是一种基于时序控制的装置,它的主要功能是按照预设的时间参数进行计时,并在满足条件时输出控制信号。
定时器一般由计数器和比较器组成,其中计数器用于计时,比较器用于比较计数器的值与预设的时间参数。
定时器的计数器可以根据不同的需求选择不同的计时单位,常见的有毫秒、秒、分钟等。
比较器通常与计数器相连,当计数器的值与预设的时间参数相等时,比较器会输出一个信号,触发相应的操作。
二、定时器的工作方式PLC定时器可以分为两种工作方式:基于触发和基于间隔。
1. 基于触发的定时器基于触发的定时器是指在接收到触发信号后开始计时,当计时器的值达到预设的时间参数时,触发器会输出一个控制信号。
这种定时器常用于需要根据外部事件触发的应用场景,如按下按钮后延时启动某个设备。
2. 基于间隔的定时器基于间隔的定时器是指定时器按照设定的时间间隔进行计时,当计时器的值达到预设的时间参数时,触发器会输出一个控制信号。
这种定时器常用于需要定时执行某些任务的应用场景,如定时检测设备状态、定时采集数据等。
三、定时器的应用领域PLC定时器广泛应用于工业自动化控制系统中,其应用领域包括但不限于以下几个方面:1. 生产线控制在生产线控制中,定时器常用于控制机械设备的启停时间,以及产品在各个工位的停留时间。
通过合理设置定时器的参数,可以实现生产线的自动化控制,提高生产效率。
2. 温度控制在温度控制系统中,定时器常用于控制加热设备的工作时间。
通过定时器的计时功能,可以实现定时开启或关闭加热设备,从而控制温度在设定范围内波动,保持恒温效果。
3. 照明控制在照明控制系统中,定时器常用于控制灯光的开关时间。
通过定时器的计时功能,可以按照预设的时间参数自动开启或关闭灯光,实现节能环保的效果。
定时器计数器答案

定时器/计数器6·1 80C51单片机内部有几个定时器/计数器?它们就是由哪些专用寄存器组成? 答:80C51单片机内部设有两个16位的可编程定时器/计数器,简称为定时器0(T0)与定时器l(Tl)。
在定时器/计数器中的两个16位的计数器就是由两个8位专用寄存器TH0、TL0, THl、TLl组成。
6·2 80C51单片机的定时器/计数器有哪几种工作方式?各有什么特点?答:80C51单片机的定时器/计数器有4种工作方式。
下面介绍4种工作方式的特点。
方式0就是一个13位的定时器/计数器。
当TL0的低5位溢出时向TH0进位,而TH0溢出时向中断标志TF0进位(称硬件置位TF0),并申请中断。
定时器0计数溢出与否,可通过查询TF0就是否置位或产生定时器0中断。
在方式1中,定时器/计数器的结构与操作几乎与方式0完全相同,惟一的差别就是:定时器就是以全16位二进制数参与操作。
方式2就是能重置初值的8位定时器/计数器。
其具有自动恢复初值(初值自动再装人)功;能,非常适合用做较精确的定时脉冲信号发生器。
方式3 只适用于定时器T0。
定时器T0在方式3T被拆成两个独立的8位计数器TL0: 与TH0。
其中TL0用原T0的控制位、引脚与中断源,即:C/T、GATE、TR0、TF0与T0 (P3、4)引脚、INTO(P3、2)引脚。
除了仅用8位寄存器TL0外,其功能与操作与方式0、方式1完全相同,可定时亦可计数。
此时TH0只可用做简单的内部定时功能。
它占用原定时器Tl 的控制位TRl与TFl,同时占用Tl的中断源,其启动与关闭仅受TRl置1与清0控制。
6·3 定时器/计数器用做定时方式时,其定时时间与哪些因素有关?作计数时,对外界计数频率有何限制?答: 定时器/计数器用做定时方式时,其定时时间与时钟周期、计数器的长度(如8位、13位、16位等)、定时初值等因素有关。
作计数时,外部事件的最高计数频率为振荡频率(即时钟周期)的1/24。
定时器的四种工作模式

工作方式1
当M1=0,M0=1时,T0或T1工作在方式1 方式1的特点:T0或T1工作在方式1时是16位
的计数器。 16位计数器的组成:由THX作为高8位,由
TLX作为低8位。 当TLX溢出后,对THX进位,THX溢出后,
定时器/计数器的4种工作方式
方式0 (120页)
当M0=0,M1=0时,工作在方式0 方式0的特点:为13位的计数器 13位计数器的组成:由TLX的低5位和THX的
高8位组成。 计数器的进位及溢出:当TLX的低5位溢出时,
则向THX进位。当THX溢出时,则由硬件置 一TFX,从而发出中断请求。
C/T位控制T0和T1的工作模式
参考119页 TMOD寄存器和121页框图 以定时器/计数器T1举例说明: (1)TMOD寄存器高四位中的C/T=0时,T1
工作在定时器模式,计数信号来源于单片机 系统内部,即:系统时钟的12分频。 (2)TMOD寄存器高四位中的C/T=1时,T1 工作在计数器模式,计数信号来源于T1引脚, 即:P3.5引脚。
GATE位对T0和T1的控制
以T0做范例讲解 (1)当TMOD寄存器低四位中的GATE=0时,
则T0的启动与停止由TCON寄存器中的TR0 控制。 当TR0=0时,启动T0; 当TR0=1时,停止T0.
(2)当TMOD寄存器低四位中的GATE=1时, 则T0的启动就需要两个条件: 条件1:TR0=1; 条件2:外部中断0引脚上存在高电平。
定时器计数器标志位

TMOD 是定时/计数器的工作方式寄存器,确定工作方式和功能; TCON 是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。
工作方式寄存器TMOD工作方式寄存器TMOD 用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。
GATE :门控位。
GATE =0时,只要用软件使TCON 中的TR0或TR1为1,就可以启动定时/计数器工作;GATA =1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。
即此时定时器的启动多了一条件。
C/T :定时/计数模式选择位。
C/T=0为定时模式; C/T=1为计数模式。
M1M0:工作方式设置位。
定时/计数器有四种工作方式,由M1M0进行设置。
控制寄存器TCONTCON 的低4位用于控制外部中断,已在前面介绍。
TCON 的高4位用于控制定时/计数器的启动和中断申请。
▪ TF1(TCON.7):T1溢出中断请求标志位。
T1计数溢出时由硬件自动置TF1为1。
CPU响应中断后TF1由硬件自动清0。
T1工作时,CPU 可随时查询TF1的状态。
所以,TF1可用作查询测试的标志。
TF1也可以用软件置1或清0,同硬件置1或清0的效果一样。
▪ TR1(TCON.6):T1运行控制位。
TR1置1时,T1开始工作;TR1置0时,T1停止工作。
TR1由软件置1或清0。
所以,用软件可控制定时/计数器的启动与停止。
▪ TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。
▪ TR0(TCON.4):T0运行控制位,其功能与TR1类同。
方式2方式2为自动重装初值的8位计数方式。
计数个数与计数初值的关系为: 工作方式2特别适合于用作较精确的脉冲信号发生器8X=2-N初始化程序应完成如下工作:▪ 对TMOD 赋值,以确定T0和T1的工作方式。
▪ 计算初值,并将其写入TH0、TL0或TH1、TL1。
▪ 中断方式时,则对IE 赋值,开放中断。
MCS-51定时计数器的应用.

方案选择: (1)怎样实现较长时间的定时?
上一个实验已经讨论了单片机定时器的最大时间间 隔,采用定时器与计数器相结合的方法解决了较长时 间定时的问题
这里还可用另一种方法解决:用T1作定时器,用软件 对定时时间到计数,这样可节省一个定时器作其它用
如果设T1为定时方式0,定时间隔选为10ms,那么要想 达到2秒的定时,软件计数的次数应该是200次。
第四章 MCS-51定时/计数器的应用 定时/计数器是单片机应用中的重要部件,
其工作方式的灵活应用对提高编程技巧, 减轻CPU的负担和简化外围电路有很大益 处。本章通过两个实验说明定时/计数器的 基本用法,通过应用实例,使读者掌握定 时/计数器的软件设计技巧。
1
一、定时/计数器的基本用法
【实验1】利用T0定时,T1计数 二者复合的方法,实现较长 时间的定时间隔。 实验要求:如图所示,在 P1.7 端 接 有 一 个 发 光 二 极 管 , 要 利 用 定 时 控 制 使 LED 亮一秒停一秒,周而复始。
注意:T0与T1都是加1计数器,所以初值应按补码 计算。实际计算方法是:假定初值为X,若定时间隔 100ms,应该有
(216-X) ·2μ S=100ms ∴x=15536=3CB0H 3CH装入TH0,B0H装入TL0 T1 计 数 器 在 方 式 2 下 是 8 位 的 , 计 数 5 次 的 初 值 的 是 (256-5)=251=FBH,同时装入TH1与TL1。
=216·2μ S=131.07ms 3
而实验要求定时间隔为1秒,这三种方式都不能 满足。对于较长的定时间隔应采取复合的办法。 例如,可将T0设成定时间隔为100ms(只能用方式1), 当定时时间到,将P1.0的输出反相,再加到T1端作 计数脉冲,需要定时两次才构成一个完整的计数脉 冲,因此设T1计数5次,就能完成1秒的定时:
6.3 定时器计数器的四种模式及应用

(2)计算初值 ) T0工作在外部事件计数方式,当计数到 8时,再加 工作在外部事件计数方式, 工作在外部事件计数方式 当计数到2 1计数器就会溢出。设计数初值为 ,当再出现一次 计数器就会溢出。 计数器就会溢出 设计数初值为X, 外部事件时,计数器溢出。 外部事件时,计数器溢出。 则: X+1=28 X= 28 -1=11111111B=0FFH T0工作在定时工作方式,设晶振频率为 工作在定时工作方式, 工作在定时工作方式 设晶振频率为6MHz, , 500µs相当于 相当于250个机器周期。因此,初值 为 个机器周期。 相当于 个机器周期 因此,初值X为 (28-X)×2µs=500µs × X=6=06H
的工作模式0在 例2:利用 的工作模式 在P1.0引脚输出周期为 :利用T0的工作模式 引脚输出周期为 2ms的方波。设单片机晶振频率 的方波。 的方波 设单片机晶振频率fosc=12MHz。 。 分析:要在P1.0引脚输出周期为 引脚输出周期为2ms的方波,只要使 的方波, 分析:要在 引脚输出周期为 的方波 P1.0每隔 每隔1ms取反一次即可。 取反一次即可。 每隔 取反一次即可 (1)选择工作模式 ) T0的模式字为 的模式字为TMOD=00H,即 的模式字为 , M1M0=00,C/T=0,GATE=0,其余位为 。 , , ,其余位为0。 (2)计算1ms定时时 的初值 )计算 定时时T0的初值 定时时 (213-X)×1/12 × 10-6×12=1×10-3 s × × X=7192D=11100000 11000B T0的低 位:11000B=18H即 (TL0)=18H 的低5位 的低 即 T0的高 位:11100000B=E0H即 (TH0)=E0H 的高8位 的高 即
三、模式 3的应用举例 的应用举例 例1:设某用户系统已使用了两个外部中断源,并 :设某用户系统已使用了两个外部中断源, 置定时器T1工作在模式 工作在模式2, 置定时器 工作在模式 ,作串行口波特率发生器 现要求再增加一个外部中断源,并由P1.0引脚 用。现要求再增加一个外部中断源,并由 引脚 输出一个5kHz的方波。fosc=12MHz. 的方波。 输出一个 的方波
单片机原理习题与答案

习题1. 何为“准双向I/O接口”?在MCS-51单片机的四个并口中,哪些是“准双向I/O接口”?答:准双向I/O接口是能实现输入输出功能,但在使用时只能从输入和输出中选择一个。
MCS-51单片机的四个并口中P1、P2、P3是准双向I/O接口。
2. 80C51单片机内部有几个定时/计数器?它们由哪些功能寄存器组成?怎样实现定时功能和计数功能?答:80C51单片机内部有两个16位的可编程定时/计数器,由TH0,TL0,TH1,TL1,TMOD和TCON功能寄存器组成。
通过TMOD中的C/T位选择对机器周期计数实现计数功能,选择对外部脉冲计数实现计数功能。
3. 定时/计数器T0有几种工作方式?各自的特点是什么?答:有四种工作方式,特点见下表:M1 M0 工作方式方式说明0 0 0 13位定时/计数器0 1 1 16位定时/计数器1 02 8位自动重置定时/计数器1 1 3 两个8位定时/计数器(只有T0有)4. 定时/计数器的四种工作方式各自的计数范围是多少?如果要计10个单位,不同的方式初值应为多少?答:有四种方式。
方式0计数范围:1~8192;方式1计数范围:1~65536;方式2计数范围:1~256;方式3计数范围:1~256。
如果计10个单位,方式0初值为:8192-10=8182;方式1初值为:65536-10=65526;方式2初值为:256-10=246;方式2初值为:256-10=246。
5. 设振荡频率为12MHz,如果用定时/计数器T0产生周期为100ms的方波,可以选择哪几种方式,其初值分别设为多少?答:只能选择方式1,初值为65536-50000=15536。
6. 何为同步通信?何为异步通信?各自的特点是什么?答:异步通信方式的特点是数据在线路上传送时是以一个字符(字节)为单位,未传送时线路处于空闲状态,空闲线路约定为高电平“1”。
特点是对发送时钟和接收时钟的要求相对不高,线路简单,但传送速度较慢。
51单片机定时计数器的工作原理

51单片机定时计数器的工作原理
51单片机是一种常用的微控制器,它具有多个定时计数器,其中包括定时器0和定时器1。
这些定时计数器是通过内部时
钟源提供的脉冲进行计数的。
定时器0和定时器1是独立的计数器,它们可以用于不同
的应用。
这里我们将主要关注定时器0的工作原理。
定时器0
由一个八位计数器和一个控制寄存器组成。
当定时器0启动时,它会根据时钟源提供的脉冲进行计数,每个脉冲会使计数器的值增加1。
定时器0的计数范围为0-255,即八位二进制数。
通过控制寄存器,我们可以设置定时器0的工作模式、计
数器的初始值以及时钟源的频率。
定时器0可以以不同的方式工作,包括定时模式和计数模式。
在定时模式下,我们可以设置一个初始值,并在每次计数
器增加到该值时产生一个中断。
这样就可以实现精确的定时功能。
定时器0的中断服务程序可以完成各种操作,例如控制其他外设、延时等。
在计数模式下,定时器0将简单地计数外部触发信号的脉
冲次数。
这可以用于测量外部事件的时间间隔或频率。
需要注意的是,定时器0的工作需要通过编程来完成。
我
们可以使用汇编语言或C语言来配置定时器0的寄存器,并
设计相应的中断服务程序。
51单片机定时器的工作原理是通过定时器0和定时器1实
现计数功能。
定时器0可以在定时模式或计数模式下工作,通过设置计数值和时钟源频率,实现精确的定时功能或测量外部
事件的时间间隔或频率。
编程则是必不可少的,通过配置寄存器和编写中断服务程序来实现定时器的工作。
定时器计数器(TC)简介以及例子说明

能
TR2:T/C2 运行控制位
1——T/C2 启动
C/T2:计数器或定时器选择位
1——计数器
CP/RL:捕获/重载标志。
0——T/C2 停止
0——定时器
1——若 EXEN2=1,且 T2EX 端的信号负跳变时,发生捕获操 作。
0——若定时器 2 溢出,或在 EXEN2=1 条件下 T2EX 端信号负 跳变,都会造成自动重装载操作。
二、 定时器/计数器的工作方式
1.方式 0
当 TMOD 中 M1M0=00,T/C 工作在方式 0。
方式 0 为 13 位的 T/C,由 TH 提供高 8 位,TL 提供低 5 位的计 数值,满计数值 213,但启动前可以预置计数初值。
当 C/T=0 时,T/C 为定时器,振荡源 12 分频的信号作为计数脉
//
//程序设计:电子设计吧
//设计时间:2010.01.13
利用 PT0 采集方波的个数,并在 PB 口显示
//---------------------------------------------------------------------------//
#include <hidef.h>
CPU 转向中断服务程序时,TF 自动清 0。 2.方式 1 当 TMOD
例子
一.输入捕捉(IC)编程步骤:
初始化函数 TIOS---选择工作方式为 IC TCTLx---设置对应位输入捕捉的方式(x=3、4,高位是 3,低位是 4) TSCRx---控制寄存器设置,包括工作使能、确定工作方式(x=1)、中断允
冲;当 C/T=1 时,T/C 为计数器,对外部脉冲输入端 T0 或 T1 输入
的脉冲计数。计数脉冲能否加到计数器上,受到启动信号控制。当
单片机定时计数器工作方式

单片机定时计数器工作方式
单片机定时计数器的工作方式可以分为以下几种:
1. 定时器/计数器工作方式:在这种工作方式下,定时器/计数器会周期性地生成一个固定时间的定时中断。
可以通过设置计数器中的初始值、计数器溢出中断等参数来控制定时器的工作周期和精度。
2. 外部计数器工作方式:在这种工作方式下,定时器模块会使用外部输入引脚作为计数器的时钟输入,通过计数器的计数变化来判断时间的流逝。
可以通过设置计数器的计数位宽、外部时钟的频率等参数来控制计时的精度和范围。
3. PWM输出工作方式:在这种工作方式下,定时器模块会周期性地生成一个脉宽调制(PWM)信号。
可以通过设置定时器的计数周期和占空比参数来控制PWM信号的频率和脉宽,从而实现对输出信号的控制。
4. 输入捕获工作方式:在这种工作方式下,定时器模块会通过捕获外部信号引脚的电平变化来记录时间的流逝。
可以通过设置捕获寄存器、捕获锁存器等参数来获取输入信号的频率、脉宽等信息,实现对外部信号的测量和分析。
5. 输出比较工作方式:在这种工作方式下,定时器模块会周期性地将计数器的当前值与设定的比较值进行比较。
可以通过设置比较寄存器和比较结果的输出控制来实现对外部设备的控制,如产生特定的电平或触发特定的事件。
总的来说,单片机定时计数器工作方式的选择取决于具体的应用需求,可以灵活地利用定时器模块的各种功能和参数来实现各种定时、计数、测量和控制的应用。
第6章 定时器计数器

期间,计数器加1。由于确认一次负跳变要花 个机器周期, 确认一次负跳变要花2个机器周期 确认一次负跳变要花 因此外部输入的计数脉冲的最高频率为系统振荡器频率的 外部输入的计数脉冲的最高频率为系统振荡器频率的 外部输入的计数脉冲的最高频率 1/24。 例如,选用6MHz频率的晶体,允许输入的脉冲频率最高为 250kHz。如果选用12MHz频率的晶体,则可输入最高频 率为500kHz的外部脉冲。 对于外部输入信号的占空比并没有什么限制,但为了确保某 占空比并没有什么限制 占空比并没有什么限制 一给定电平在变化之前能被采样一次,则这一电平至少要 至少要 保持一个机器周期。 保持一个机器周期
T 、GATE、TR0、
22
TF0 ,而TH0被固定为一个 位定时器 固定为一个8位定时器 固定为一个 位定时器(不能作为外部计数 模式),并使用定时器T1的状态控制位TR1和TF1,同时 占用定时器T1的中断请求源TF1。 2.T0工作在方式 时T1的各种工作方式 . 工作在方式 工作在方式3时 的各种工作方式 一般情况下,当T1用作串行口的波特率发生器时,T0才工 当 用作串行口的波特率发生器时 用作串行口的波特率发生器时, 才工 作在方式3。 作在方式 。T0处于工作方式3时,T1可定为方式0、方式 1和方式2,用来作为串行口的波特率发生器,或不需要中 断的场合。
18
定时器/计数器的方式 为自动恢复初值 方式2为自动恢复初值 方式 为自动恢复初值(初值自动装入)的 8位定时器/计数器 位定时器 计数器 计数器。 TLx(x = 0,1)作为常数缓冲器,当TLx计数溢出时,在溢出 自动将THx中的初值送至 中的初值送至TLx, 标志TFx置“1”的同时,还自动将 自动将 中的初值送至 使TLx从初值开始重新计数。定时器/计数器的方式2工作 过程如图6-7所示。
第06章 MCS51单片机定时计数器

定时器/计数器的工作方式
1.定时/计数器工作方式0
工作方式0是13位计数结构的工作方式,其计数器由TH的全部8位和 TL的低5位构成,TL的高3位没有使用。当C/T=0时,多路开关接通振荡脉 冲的12分频输出,13位计数器以次进行计数。这就是定时工作方式。当 C/T=1时,多路开关接通计数引脚(To),外部计数脉冲由银南脚To输入。 当计数脉冲发生负跳变时,计数器加1,这就是我们常称的计数工作方式
ET0
TR0 HERE 0500H P1.0
;T0中断允许
;启动T0 ;等待中断 ;中断服务程序
RETI
END
4.工作方式3的应用
【例】假设有一个用户系统中已使用了两个外部中断源, 并 置定时器 T1 于方式 2, 作串行口波特率发生器用, 现要 求再增加一个外部中断源, 并由P1.0 口输出一个5 Hz的 方波(假设晶振频率为 6 MHz)。 在不增加其它硬件开销时,可把定时/计数器T0置于工作方 式3,利用外部引脚T0端作附加的外部中断输入端,把TL0 预置为0FFH,这样在T0端出现由1至0的负跳变时,TL0溢 出,申请中断,相当于边沿激活的外部中断源。在方式3 下,TH0总是作8位定时器用,可以靠它来控制由P1.0输出 的5kHz方波。 由P1.0输出5kHz的方波,即每隔100μ s使P1.0的电平发生一 次变化。则TH0中的初始值:X=M-N=256-100/2=206。 下面是有关的程序:
TL0 溢出中断服务程序(由 000BH单元转来):
TL0INT: MOV RETI TL0, #0FFH ; 外部引脚 T0 引起中断处理程序
TH0 溢出中断服务程序(由 001BH转来):
TH0INT: MOV
第6章 定时器计数器习题

20
IT0P:
CLR
TR0
;T0中断服务程序,停止T0计数
;把T0引脚接收过负脉冲标志F0置1, ;即接收过负跳变
SETB F0
RETI IT1P: CPL RETI P1.0 ;T1中断服务程序,P1.0位取反
程序说明:当单片机复位时,从0000H跳向主程序 MAIN处执行程序。其中调用了对T0,T1初始化子程序 PT0M2。子程序返回后执行标号LOOP处指令,循环等待 T0引脚上负脉冲的到来。由于负脉冲到来的标志位F0的
;装初值的高8位
;允许T0中断 ;总中断允许 ;启动T0 ;中断子程序,T0重装初值 ;P1.0的状态取反
程序说明:当单片机复位时,从程序入口0000H跳向主 程序MAIN处执行。其中调用了T0初始化子程序PT0M0。
6
子程序返回后,程序执行“AJMP HERE”指令,则
循环等待。 当响应T0定时中断时,则跳向T0中断入口,再从T0中 断入口跳向IT0P标号处执行T0中断服务子程序。 当执行完中断返回的指令“RETI”后,又返回断点处 继续执行循环指令“AJMP HERE”。在实际的程序中, “AJMP HERE” 实际上是一段主程序。当下一次定时 器T0的1ms定时中断发生时,再跳向T0中断入口,从而重
基本思想:设为方式2(自动装入常数方式)计数模式,
TH0、TL0初值均为0FFH。当T0脚发生负跳变时,T0计 数溢出,TF0置“1”,单片机发出中断请求。
13
初始化程序:
ORG 0000H ;跳到初始化程序 ;跳到外中断处理程序 AJMP IINI
ORG
IINI: MOV
000BH
TMOD,#06H ;设置T0为方式2
复执行上述过程。
定时器 计数器的工作原理

定时器计数器的工作原理
定时器和计数器是电子设备中常见的两种功能模块。
它们可以分别完成精确计时和计数的任务。
定时器的工作原理是基于一个稳定的时钟源,通常是晶体振荡器。
时钟源会产生一个固定频率的周期性信号,这个信号频率可以根据系统需求进行调节。
定时器的主要组成部分是一个计数器和一些辅助逻辑电路。
计数器用于记录时钟脉冲的数量,根据计数值和时钟频率可以确定经过的时间。
辅助逻辑电路用于控制计数器的工作方式,例如开始计数、计数暂停、计数清零等。
当定时器启动后,时钟信号会连续地输入计数器。
每个时钟脉冲都会使计数器的计数值加1。
当计数器的计数值达到某个预先设置的目标值时,辅助逻辑电路会触发一个中断信号,以通知系统达到了设定的时间。
计数器的工作原理与定时器相似,但它主要用于计数任务,而不是计时。
计数器通常用于记录输入信号的脉冲数量,可以用来测量运动物体的速度、计算输入信号的频率等。
计数器也是由一个计数器和辅助逻辑电路组成。
计数器记录输入脉冲的数量,辅助逻辑电路用于控制计数器的工作方式,例如开始计数、计数暂停、计数清零等。
当计数器启动后,每个输入脉冲都会使计数器的计数值加1。
当计数器的计数值达到预先设置的目标值时,辅助逻辑电路会触发一个中断信号,通知系统完成了预定的计数任务。
总结起来,定时器和计数器都是基于时钟脉冲的工作,通过计数器记录时钟脉冲的数量来实现计时或计数的功能。
它们在很多电子设备中都有广泛的应用。
第6章 单片机的定时器计数器题解

第6章单片机的定时器/计数器习题1.MCS-51系列的8051单片机内有几个定时/计数器?每个定时/计数器有几种工作方式?如何选择?答:MCS-51系列的8051单片机内有2个定时/计数器,即T0和T1,每个都可以编程为定时器或计数器,T0有四种工作方式(方式0—13位、方式1—16位、方式2-可自动装入初值的8位、方式3-两个8位),T1有三种工作方式(与T0相同的前三种),通过对TMOD的设置选择,其高四位选择T1,低四位选择T0。
2.如果采用的晶振频率为3MHz,定时/计数器TO分别工作在方式0、1和2下,其最大的定时时间各为多少?答:如果采用的晶振频率为3MHz,机器周期为12×1/(3*106)=4us,由于定时/计数器TO工作在方式0、1和2时,其最大的计数次数为8192、65536和256所以,其最大定时时间分别是:方式0为8192×4us=32.768ms、方式1为65536×4us=262.144ms、方式2为256×4us=1024us。
3.定时/计数器TO作为计数器使用时,其计数频率不能超过晶振频率的多少?答:由于定时/计数器TO作为计数器使用时,是对外部引脚输入的脉冲进行计数,CPU在每个机器周期采样一次引脚,当前一次采样为高电平,后一次采样为低电平,则为一次有效计数脉冲,所以如果晶振频率为fosc,则其采样频率fosc/12,两次采样才能决定一次计数有效,所以计数频率不能超过fosc/24。
4.简单说明定时/计数器在不同工作模式下的特点。
答:方式0为13位的定时/计数器,由THx的8位和TLx的低5位构成、方式1为16位的定时/计数器,由THx的8位和TLx的8位构成,方式2为8位的定时/计数器,TLx为加1计数器,THx为计数初值寄存器。
方式3只能用于T0,是将T0的低8位用作一个独立的定时/计数器,而高8位的TH0用作一个独立的定时器,并借用T1的TR1和TF1作为高8位定时器的启停控制位和溢出标志位。
第5章 定时器计数器2(1)

2、模式1模式1(M1M0=01)除了使用了THn和TLn全部16位外,其它与模式0相同。
(1)计数工作方式由于定时器/计数器以加1方式计数,假定计数值为X,则应装入定时器/计数器的初值为:初值=216-计数值【216=初值+计数值】所以方式1的计数值围是:1~65536(216=65536),最大值为:65536(2)定时工作方式定时时间t的计算公式为:【t的时间单位为微秒(µs)】计数值=216-初值定时时间t=计数值×机器周期=(216-初值)×(1/晶体振荡频率)×12在模式1下的情况下,如果fosc=12MHz,最大定时时间为:t=(65536-初值)×(1/12)×12=65536-0=65.536ms在模式1下的情况下,如果fosc=6MHz,最大定时时间为:t=(65536-初值)×(1/6)×12=(65536-0)×2=131.072 ms。
【例如】:若晶体振荡为12MHz,要定时2.5ms,计算初值。
要定时2.5ms,也可以用模式1。
2500=(216-初值)×(1/12)×12初值=65536-2500=63036=32768+16384+8192+4096+1024+512+32+16+8+4=1111 0110 0011 1100――> THn =0xF6 和 TLn=0x3C在fosc=12MHz时,如果定时时间大于65.536ms,这时用一个定时/计数器直接处理不能实现,这时可用:1、2个定时/计数器共同处理;2、1个定时/计数器配合软件计数方式处理。
3、模式2方式0和方式1的最大特点是计数溢出后,计数器为全0。
因此在循环定时或循环计数应用时就存在用指令反复装入计数初值的问题。
这不仅影响定时精度,也给程序设计带来麻烦。
方式2就是针对此问题而设置的。
该方式可省去用户软件中重装初值的指令执行时间,简化定时初值的计算方法,可以相当精确地确定定时时间。
定时器计数器工作原理

定时器计数器工作原理
定时器计数器基于时钟信号的工作原理如下:
定时器计数器是一种用于测量时间间隔或生成定时触发信号的电子器件。
在工作过程中,它接收外部时钟信号,并根据时钟信号的频率进行计数操作。
计数器中的计数值会随着每个时钟周期的到来而增加或减少。
具体来说,定时器计数器通过计数寄存器来存储计数值。
每当一个时钟脉冲到达时,计数值就会增加或减少一个单位。
计数器可以被预设为一个特定的计数值,并在到达该值时触发一个中断信号或其他事件。
为了实现不同时间间隔的测量,可以通过选择不同的时钟频率来调整定时器的工作速率。
较高的时钟频率会导致计数器计数得更快,因此时间间隔会更短。
相反,较低的时钟频率会导致计数器计数得更慢,时间间隔会更长。
定时器计数器还可以与其他电路和组件结合使用,例如比较器和触发器,来实现更复杂的功能,例如实时时钟、定时中断和脉冲生成等。
综上所述,定时器计数器是基于时钟信号的电子器件,利用时钟信号的频率来进行计数操作,并可根据计数值的变化来测量时间间隔或生成定时触发信号。
单片机原理与应用(盛珣华)习题和思考题答案

习题和思考题答案第一章单片机概述1. 第一台电子数字计算机发明的年代和名称。
1946年、ENIAC。
2. 根据冯·诺依曼提出的经典结构,计算机由哪几部分组成?运算器、控制器、存储器、输入设备和输出设备组成。
3. 微型计算机机从20世纪70年代初问世以来,经历了哪四代的变化?经历了4位、8位、16位、32位四代的变化。
4. 微型计算机有哪些应用形式?系统机、单板机、单片机。
5. 什么叫单片机?其主要特点有哪些?单片机就是在一片半导体硅片上,集成了中央处理单元(CPU)、存储器(RAM、ROM)、并行I/O、串行I/O、定时器/计数器、中断系统、系统时钟电路及系统总线的用于测控领域的微型计算机,简称单片机。
单片机技术易于掌握和普及、功能齐全,应用广泛、发展迅速,前景广阔、嵌入容易,可靠性高。
6. 举例说明单片机的应用?略7. 当前单片机的主要产品有哪些?各自有何特点?MCS是Intel公司生产的单片机的系列符号,MCS-51系列单片机是Intel公司在MCS-48系列的基础上于20世纪80年代初发展起来的,是最早进入我国,并在我国应用最为广泛的单片机机型之一,也是单片机应用的主流品种。
其它型号的单片机:PIC单片机、TI公司单片机、A VR系列单片机。
8. 简述单片机应用系统的开发过程。
(1)根据应用系统的要求进行总体设计总体设计的目标是明确任务、需求分析和拟定设计方案,确定软硬件各自完成的任务等。
总体设计对应用系统是否能顺利完成起着重要的作用。
(2)硬件设计根据总体设计要求设计并制作硬件电路板(即目标系统),制作前可先用仿真软件(如Proteus软件)进行仿真,仿真通过后再用硬件实现并进行功能检测。
(3)软件设计软件编程并调试,目前一般用keil软件进行设计调试。
调试成功后将程序写入目标单片机芯片中。
(4)综合调试进行硬软件综合调试,检测应用系统是否达到设计的功能。
9. 说明单片机开发中仿真仪的作用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD和TCON。
顺便说一下,T MOD和TCON是名称,我们在写程序时就能直接用这个名称来指定它们,当然也能直接用它们的地址89H和88H来指定它们(其实用名称也就是直接用地址,汇编软件帮你翻译一下而已)。
从图1中我们能看出,TMOD被分成两部份,每部份4位。
分别用于控制T1和T0,至于这里面是什么意思,我们下面介绍。
从图2中我们能看出,TCON也被分成两部份,高4位用于定时/计数器,低4位则用于中断(我们暂不管)。
而TF1(0)我们上节课已提到了,当计数溢出后TF1(0)就由0变为1。
原来TF 1(0)在这儿!那么TR0、TR1又是什么呢?看上节课的图。
希望大家常来本站学习单片机相关知识计数脉冲要进入计数器还真不不难,有层层关要通过,最起码,就是TR0(1)要为1,开关才能合上,脉冲才能过来。
因此,TR0(1)称之为运行控制位,可用指令SETB来置位以启动计数器/定时器运行,用指令CLR来关闭定时/计数器的工作,一切尽在自已的掌握中。
<单片机定时器/计数器结构>定时/计数器的四种工作方式工作方式0定时器/计数器的工作方式0称之为13位定时/计数方式。
它由TL(1/0)的低5位和TH(0/1)的8位组成13位的计数器,此时TL(1/0)的高3位未用。
我们用这个图来讨论几个问题:M1M0:定时/计数器一共有四种工作方式,就是用M1M0来控制的,2位正好是四种组合。
C/T:前面我们说过,定时/计数器即可作定时用也可用计数用,到底作什么用,由我们根据需要自行决定,也说是决定权在我们��编程者。
如果C/T为0就是用作定时器(开关往上打),如果C/T为1就是用作计数器(开关往下打)。
顺便提一下:一个定时/计数器同一时刻要么作定时用,要么作计数用,不能同时用的,这是个极普通的常识,几乎没有教材会提这一点,但很多开始学习者却会有此困惑。
GATE:看图,当我们选择了定时或计数工作方式后,定时/计数脉冲却不一定能到达计数器端,中间还有一个开关,显然这个开关不合上,计数脉冲就没法过去,那么开关什么时候过去呢?有两种情况GATE=0,分析一下逻辑,GATE非后是1,进入或门,或门总是输出1,和或门的另一个输入端I NT1无关,在这种情况下,开关的打开、合上只取决于TR1,只要TR1是1,开关就合上,计数脉冲得以畅通无阻,而如果TR1等于0则开关打开,计数脉冲无法通过,因此定时/计数是否工作,只取决于TR1。
GATE=1,在此种情况下,计数脉冲通路上的开关不仅要由TR1来控制,而且还要受到INT1管脚的控制,只有TR1为1,且INT1管脚也是高电平,开关才合上,计数脉冲才得以通过。
这个特性能用来测量一个信号的高电平的宽度,想想看,怎么测?为什么在这种模式下只用13位呢?干吗不用16位,这是为了和51机的前辈48系列兼容而设的一种工作式,如果你觉得用得不顺手,那就干脆用第二种工作方式。
工作方式1工作方式1是16位的定时/计数方式,将M1M0设为01即可,其它特性与工作方式0相同。
工作方式2在介绍这种式方式之前先让我们思考一个问题:上一次课我们提到过任意计数及任意定时的问题,比如我要计1000个数,可是16位的计数器要计到65536才满,怎么办呢?我们讨论后得出的办法是用预置数,先在计数器里放上64536,再来1000个脉冲,不就行了吗?是的,但是计满了之后我们又该怎么办呢?要知道,计数总是持续重复的,流水线上计满后马上又要开始下一次计数,下一次的计数还是1000吗?当计满并溢出后,计数器里面的值变成了0(为什么,能参考前面课程的说明),因此下一次将要计满65536后才会溢出,这可不符合要求,怎么办?当然办法很简单,就是每次一溢出时执行一段程序(这常常是需要的,要不然要溢出干吗?)能在这段程序中做把预置数64536送入计数器中的事情。
所以采用工作方式0或1都要在溢出后做一个重置预置数的工作,做工作当然就得要时间,一般来说这点时间不算什么,可是有一些场合我们还是要计较的,所以就有了第三种工作方式��自动再装入预置数的工作方式。
既然要自动得新装入预置数,那么预置数就得放在一个地方,要不然装什么呢?那么预置数放在什么地方呢?它放在T(0/1)的高8位,那么这样高8位不就不能参与计数了吗?是的,在工作方式2,只有低8位参与计数,而高8位不参与计数,用作预置数的存放,这样计数范围就小多了,当然做任可事总有代价的,关键是看值不值,如果我根本不需要计那么多数,那么就能用这种方式。
看图4,每当计数溢出,就会打开T(0/1)的高、低8位之间的开关,计预置数进入低8位。
这是由硬件自动完成的,不需要由人工干预。
常常这种式作方式用于波特率发生器(我们将在串行接口中讲解),用于这种用途时,定时器就是为了供给一个时间基准。
计数溢出后不需要做事情,要做的仅仅只有一件,就是重新装入预置数,再开始计数,而且中间不要任何延迟,可见这个任务用工作方式2来完成是最妙不过了。
工作方式3这种式作方式之下,定时/计数器0被拆成2个独立的定时/计数器来用。
其中,TL0能组成8位的定时器或计数器的工作方式,而TH0则只能作为定时器来用。
我们知道作定时、计数器来用,需要控制,计满后溢出需要有溢出标记,T0被分成两个来用,那就要两套控制及、溢出标记了,从何而来呢?TL0还是用原来的T0的标记,而TH0则借用T1的标记。
如此T1不是无标记、控制可用了吗?是的。
一般情况处,只有在T1以工作方式2运行(当波特率发生器用)时,才让T0工作于方式3的。
定时器/计数器的定时/计数范围工作方式0:13位定时/计数方式,因此,最多能计到2的13次方,也就是8192次。
工作方式1:16位定时/计数方式,因此,最多能计到2的16次方,也就是65536次。
工作方式2和工作方式3,都是8位的定时/计数方式,因此,最多能计到2的8次方,也说是2 56次。
预置值计算:用最大计数量减去需要的计数次数即可。
例:流水线上一个包装是12盒,要求每到12盒就产生一个动作,用单片机的工作方式0来控制,应当预置多大的值呢?对了,就是8192-12=8180。
以上是计数,明白了这个道理,定时也是一样。
这在前面的课程已提到,我们不再重复,请参考前面的例程。
1.中断允许寄存器--IEIE在特殊功能寄存器中,字节地址为A8H,位地址(由低位到高位)分别是A8H-AFH。
IE用来打开或关断各中断源的中断请求,基本格式如下图二所示:EA:全局中断允许位。
EA=0,关闭全部中断;EA=1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断的打开或关闭。
×:无效位。
ES:串行I/O中断允许位。
ES=1,打开串行I/O中断;ES=0,关闭串行I/O中断。
ETl;定时器/计数器1中断允许位。
ETl=1,打开T1中断;ETl=O,关闭T1中断。
EXl:外部中断l中断允许位。
EXl=1,打开INT1;EXl=0,关闭INT1。
ET0:定时器/计数器0中断允许位。
ET0=1,打开T0中断;ET0=0,关闭TO中断。
EXO:外部中断0中断允许位。
Ex0=1,打开INT0;EX0=0,关闭INT0.中断优先寄存器--IP:IP在特殊功能寄存器中,字节地址为B8H,位地址(由低位到高位)分别是B8H一BFH,IP用来设定各个中断源属于两级中断中的哪一级,IP的基本格式如下图三所示:×:无效位。
PS:串行I/O中断优先级控制位。
PS=1,高优先级;PS=0,低优先级。
PTl:定时器/计数器1中断优先级控制位。
PTl=1,高优先级;PTl=0,低优先级。
Pxl:外部中断1中断优先级控制位。
Pxl=1,高优先级;PXl=O,低优先级。
PT0:定时器/计数器o中断优先级控制位。
PT0=1,高优先级;PTO=0,低优先级。
Px0:外部中断0中断优先级控制位。
Px0=1,高优先级;Px0=0,伤优先级。
在MCS-51单片机系列中,高级中断能够打断低级中断以形成中断嵌套;同级中断之间,或低级对高级中断则不能形成中断嵌套。
若几个同级中断同时向CPU请求中断响应,则CPU按如下顺序确定响应的先后顺序:INT0一T0---INT1一T1一RI/T1.中断的响应过程若某个中断源通过编程设置,处于被打开的状态,并满足中断响应的条件,而且①当前正在执行的那条指令已被执行完1、当前末响应同级或高级中断2、不是在操作IE,IP中断控制寄存器或执行REH指令则单片机响应此中断。
在正常的情况下,从中断请求信号有效开始,到中断得到响应,通常需要3个机器周期到8个机器周期。
中断得到响应后,自动清除中断请求标志(对串行I/O端口的中断标志,要用软件清除),将断点即程序计数器之值(PC)压入堆栈(以备恢复用);然后把相应的中断入口地址装入PC,使程序转入到相应的中断服务程序中去执行。
各个中断源在程序存储器中的中断入口地址如下:中断源入口地址INT0(外部中断0) 0003HTF0(TO中断) 000BHINT1(外部中断1) 0013HTFl(T1中断) 001BHRI/TI(串行口中断) 0023H由于各个中断入口地址相隔甚近,不便于存放各个较长的中断服务程序,故通常在中断入口地址开始的二三个单元中,安排一条转移类指令,以转入到安排在那儿的中断服务程序。
以T1中断为例,其过程下如图四所示。
由于5个中断源各有其中断请求标志0,TF0,IEl,TFl以及RI/TI,在中断源满足中断请求的条件下,各标志自动置1,以向CPU请求中断。
如果某一中断源提出中断请求后,CPU不能立即响应,只要该中断请求标志不被软件人为清除,中断请求的状态就将一直保持,直到CPU响应了中断为止,对串行口中断而言,这一过程与其它4个中断的不同之处在于;即使CPU响应了中断,其中断标志RI/TI也不会自动清零,必须在中断服务程序中设置清除RI/TI的指令后,才会再一次地提出中断请求。
CPU的现场保护和恢复必须由被响应的相应中断服务程序去完成,当执行RETI中断返回指令后,断点值自动从栈顶2字节弹出,并装入PC寄存器,使CPU继续执行被打断了的程序。
下面给出一个应用定时器中断的实例。
现要求编制一段程序,使P1.0端口线上输出周期为2ms的方波脉冲。
设单片机晶振频率Fosc=6MHZ.1、方法:利用定时器T0作1ms定时,达到定时值后引起中断,在中断服务程序中,使P1.0的状态取一次反,并再次定时1ms。
2、定时初值:机器周期MC=12/fosc=2us。
所以定时lms所需的机器周期个数为500D,亦即0 lF4H。