第7章 定时器计数器
单片机原理及接口技术(C51编程)第7章 定时器计数器
图7-14 由外部计数输入信号控制LED的闪烁
(3)设置IE寄存器 本例由于采用T1中断,因此需将IE寄存器的EA、ET1位置1。
(4)启动和停止定时器T1 将寄存器TCON中TR1=1,则启动T1计数;TR1=0,则停止T1计数。
参考程序如下:
#include <reg51.h> void Delay(unsigned int i)
7.4 定时器/计数器的编程和应用 4种工作方式中,方式0与方式1基本相同,只是计数位数不同。方
式0为13位,方式1为16位。由于方式0是为兼容MCS-48而设,计数初 值计算复杂,所以在实际应用中,一般不用方式0,常采用方式1。
7.4.1 P1口控制8只LED每0.5s闪亮一次 【例7-1】在AT89S51的P1口上接有8只LED,原理电路见图7-
当TMOD的低2位为11时,T0被选为方式3,各引脚与T0的逻辑关系 见图7-8。
T0分为两个独立的8位计数器TL0和TH0,TL0使用T0的状态控制位 C/T* 、GATE、TR0 ,而TH0被固定为一个8位定时器(不能作为外部 计数模式),并使用定时器T1的状态控制位TR1,同时占用定时器T1的 中断请求源TF1。
13。采用T0方式1的定时中断方式,使P1口外接的8只LED每0.5s闪亮 一次。
23
图7-13 方式1定时中断控制LED闪亮
24
(1)设置TMOD寄存器 T0工作在方式1,应使TMOD寄存器的M1、M0=01;应设置C/T*=0,为定
时器模式;对T0的运行控制仅由TR0来控制,应使相应的GATE位为0。定时 器T1不使用,各相关位均设为0。所以,TMOD寄存器应初始化为0x01。 (2)计算定时器T0的计数初值
认识单片机的定时器计数器
void main(void) { TMOD=0x01;
TH0=-25000/256; TL0=-25000%256; TR0=1; ET0=1; EA=1; while(1); } void timer0(void) interrupt 1 { TH0=-25000/256;
TL0=-25000%256; P10=~P10; }
根据定时时间T,及公式(1)、(2)分别可以求出初 值N为:
方式1: N=216-T×fosc/12
(3)
方式2、方式3 :N=28-T×fosc/12 (4)
如果fosc=12MHZ,以上公式可简化为
方式1: N=216-T
方式2、方式3 :N=28-T
例如:系统的时钟频率是12MHz,在方式1下,如果希望定时 器/计数器T0的定时时间T为10ms,则初值N =216-T=6553610000=55536
任务一、认识单片机的定时器/计数器
一、定时器/计数器及其应用 在单片机应用系统中,定时或计数是必不可少的。例如: 测量一个脉冲信号的频率、周期,或者统计一段时间里 电机转动了多少圈等。常用的定时方法有:
1、软件定时 软件定时是依靠执行一段程序来实现的,这段程序本身 没有具体的意义,通过选择恰当的指令及循环次数实现 所需的定时,由于执行每条指令都需一定的时间,执行 这段程序所需总的时间就是定时时间。 软件定时的特点是无需硬件电路,但定时期间CPU被占 用,增加了CPU的开销,因此定时时间不宜过长,而且 定时期间如果发生中断,定时时间就会出现误差。
led=_crol_(led,1); 满10次变量led左移1位送P0口
P0=led;
}
}
[案例3] 用定时器的计数方式实现外部中断。如图 所示,P0口控制8只发光管轮流点亮,发光管点 亮时间为500ms,单脉冲电路控制发光管的移动 方向,按下单脉冲按钮,发光管左移,再按下发 光管右移 。
计数器与定时器教学课件PPT
CLK 2 GATE 2 OUT 2
引脚
D7~D0:8位、双向、三态数据线,直接和系统 数据总线相连。读/写16位数据则分两次进行。
CS:片选信号,低电平有效。 RD,WR:读信号,写信号,低电平时有效。 A1,A0:8253端口选择线。00~10分别选择计
《微机原理与接口》教学课件
方式5 硬件触发选通信号
-WR
写入 写入 方式5 4
写入 3
CLK
GATE
OUT
4321 0
3 2 13 2 10
▪ GATE:触发作用
触发
重触发:装计数值
《微机原理与接口》教学课件
6、方式5: 硬件触发选通信号
在这种方式下,设置了控制字后,输出为 高。在设置了计数值后,计数器并不立即 开始计数,而是由门控脉冲的上升沿触发 启动。当计数到0时,输出变低,经过一 个CLK脉冲,输出恢复为高,停止计数。 要等到下次门控脉冲的触发才能再计数
OUT端随着工作方式的不同和当前计数状态的 不同,一定有电平输出变化,而且输出变化均 发生在CLK的下降沿。OUT的输出波形在写控 制字之前为未定态,在写了控制字之后到计数 之前为计数初态,再之后有计数态、暂停态、 结束态等。
对于给定的工作方式,门控信号GATE的触发条 件是有具体规定的,或电平触发,或边沿触发, 或两者均可
《微机原理与接口》教学课件
各种工作方式的输出波形
方式 0 方式 1 方式 2 方式 3 方式 4 方式 5
0
N0
N
1 0/N
N0 10
N N/2 0/N N/2 0
N N 01
01 N 01
《微机原理与接口》教学课件
MCS-51单片机内部定时器计数器
二、 方式1
方式 1(16位计数器)
•MCS-51单片机内部定时器计数器
方式1和方式0的工作原理基本相同,唯一 不同是T0和T1工作在方式1时是16位的计数/定 时器。
方式1时的计数长度M是2的16次方。16位 的初值直接拆成高低字节,分别送入TH和TL 即可。
•MCS-51单片机内部定时器计数器
M1 M0:四种工作方式的选择位 工作方式选择表
M1 M0 方式
说明
0 0 0 13 位定时器(TH的 8 位和TL的低 5 位)
0 1 1 16 位定时器/计数器
1 0 2 自动重装入初值的 8 位计数器 T0 分成两个独立的 8 位计数器,
1 1 3 T1 在方式 3 时停止工作
定时 1 ms的初值:
因为 机器周期=12÷6 MHz= 2 μs
所以 1 ms内T0 需要计数N次:
•MCS-51单片机内部定时器计数器
N= 1 ms÷2 μs = 500
由此可知: 使用方式 0 的 13 位计数器即可, T0 的初值X为 X=M-N=8 192-500=7 692=1E0CH 但是, 因为 13 位计数器中, 低 8 位 TL0 只使用了 5 位, 其 余码均计入高 8 位TH0 的初值, 则 T0
0。TF产生的中断申请是否被接受, 还需要由中断计数器T1、 T0 的运行控制位,
通过软件置 1 后, 定时器 /计数器才开始工作, 在系统复位时
被清 0。
•MCS-51单片机内部定时器计数器
定时器的工作方式
一、 方式 0
方式 0(13位计数器)
•MCS-51单片机内部定时器计数器
•MCS-51单片机内部定时器计数器
定时计数器
T1端 TR1 GATE l
≥l
TF1
中断
C/T=1 &
控制
INT1端
2.工作方式1 ( M1M0=01 ,16位定时器/计数器) 由TH1和TL1构成16位加1计数器,其他特性与工作 方式0相同。
振荡器 ÷12 C/T=0 TL1 (8位) T1端 TR1 GATE INT1端 l ≥l TH1 (8位)
第6章
定时/计数器
P132
定时/计数器的结构及工作原理 定时/计数器的工作方式 定时/计数器方式和控制寄存器 定时/计数器的编程举例
6.1 概述
在测量控制系统中,常需要有实时时钟和计数器,以实现 定时(或延时)控制以及对外界事件进行计数。 一、常用的定时(或延时)方法: 软件延时:利用执行一个循环程序进行时间延迟。其特点是 定时时间精确,不需外加硬件电路,但占用CPU时间。因此软 件定时的时间不宜过长。 硬件定时:利用硬件电路实现定时。其特点是不占用CPU时 间,通过改变电路元器件参数来调节定时,但使用不够灵活方 便。对于时间较长的定时,常用硬件电路来实现。 可编程定时器/计数器(硬件+软件):通过专用的定时器/ 计数器芯片实现。其特点是通过对系统时钟脉冲进行计数实 现定时,定时时间可通过程序设定的方法改变,使用灵活方 便。也可实现对外部脉冲的计数功能。
TL0,#83H P1.0 TH0,#06H P1.1
;送方式字 ;送时间常数 ;送时间常数 ;送控制宇 ;送中断控制字
;等待中断
;重装时间常数 ;控制方波倒相 ;重装时间常数 ;控制方波倒相
RETI DONE2: MOV CPL RETI
【*例3】试用T1方式2编制程序,在P1.0引脚输出周 期为400S的脉冲方波,已知fosc=12MHZ。
STM8S系列单片机原理与应用(潘永雄)第6-11章章 (2)
第7章 STM8S系列MCU定时器
TIM1定时器功能完善,可实现下列操作: (1) 基本定时操作、计数操作。 (2) 利用输入捕获功能,测量脉冲信号时间参数(高、低 电平时间)。 (3) 利用输出比较功能,可产生单脉冲信号、PWM信号 等。 (4) 在PWM输出信号中,具有死区时间编程选择功能。 (5) 具有与其他定时器联动的功能。
第7章 STM8S系列MCU定时器
表7-1 STM8S定时器的主要功能
定时器 计数 计数 编号 方向 长度
分频系数
捕获 /比较 (CC) 通道数
向上
1~65 536 之间任意
TIM1
16
4
向下
整数
互 补
重 复 计
外部 刹车 与其他定时
计数脉冲可选
输 数 输入 器级联
出器
可选,有外部 3 8 位 1 TIM5、TIM6
第7章 STM8S系列MCU定时器 图7-1 高级控制定时器TIM1的内部结构
第7章 STM8S系列MCU定时器
7.2 TIM1时基单元
TIM1时基单元内部结构如图7-2所示。它由16位预分频 器TIM1_PSCR(TIM1_PSCRH, TIM1_PSCRL)、16位双向(向 上或向下)计数器TIM1_CNTR(TIM1_CNTRH, TIM1_CNTRL)、 16位自动重装寄存器TIM1_ARR(TIM1_ARRH,TIM1_ARRL) 及8位重复计数器TIM1_RCR组成。
单片机原理及接口技术(C51编程)(第2版)-习题答案 - 第7章习题解答
第7章思考题及习题7参考答案一、填空1.如果采用晶振的频率为3MHz,定时器/计数器T x(x=0,1)工作在方式0、1、2下,其方式0的最大定时时间为,方式1的最大定时时间为,方式2的最大定时时间为。
答:32.768ms,262.144ms,1024µs2.定时器/计数器用作计数器模式时,外部输入的计数脉冲的最高频率为系统时钟频率的。
答:1/243.定时器/计数器用作定时器模式时,其计数脉冲由提供,定时时间与有关。
答:系统时钟信号12分频后,定时器初值4.定时器/计数器T1测量某正单脉冲的宽度,采用方式可得到最大量程?若时钟频率为6MHz,求允许测量的最大脉冲宽度为。
答:方式1定时,131.072ms。
5. 定时器T2 有3种工作方式:、和,可通过对寄存器中的相关位进行软件设置来选择。
答:捕捉,重新装载(增计数或减计数),波特率发生器,T2CON6. AT89S52单片机的晶振为6MHz,若利用定时器T1的方式1定时2ms,则(TH1)= ,(TL1)= 。
答:FCH,18H。
二、单选1.定时器T0工作在方式3时,定时器T1有种工作方式。
A.1种B.2种 C.3种D.4种答:C2. 定时器T0、T1工作于方式1时,其计数器为位。
A.8位B.16位C.14位D.13位答:B3. 定时器T0、T1的GATE x=1时,其计数器是否计数的条件。
A. 仅取决于TR x状态B. 仅取决于GATE位状态C. 是由TR x和INT x两个条件来共同控制D. 仅取决于INT x的状态答:C4. 定时器T2工作在自动重装载方式时,其计数器为位。
A.8位B. 13位C.14位D. 16位答:D5. 要想测量INT0引脚上的正单脉冲的宽度,特殊功能寄存器TMOD的内容应为。
A.87HB. 09HC.80HD. 00H答:B三、判断对错1.下列关于T0、T1的哪些说法是正确的。
A.特殊功能寄存器SCON,与定时器/计数器的控制无关。
定时器与计数器
第7章定时器/计数器MCS-51单片机内部有两个16位可编程的定时器/计数器,即定时器T0和定时器T1(8052提供3个,这第三个称定时器T2)。
它们既可用作定时器方式,又可用作计数器方式。
7 . 1定时器/计数器结构定时器/计数器的基本部件是两个8位的计数器(其中TH1,TL1是T1的计数器,TH0,TL0是T0的计数器)拼装而成。
在作定时器使用时,输入的时钟脉冲是由晶体振荡器的输出经12分频后得到的,所以定时器也可看作是对计算机机器周期的计数器(因为每个机器周期包含12个振荡周期,故每一个机器周期定时器加1,可以把输入的时钟脉冲看成机器周期信号)。
故其频率为晶振频率的1/12。
如果晶振频率为12MH Z,则定时器每接收一个输入脉冲的时间为1us。
当它用作对外部事件计数时,接相应的外部输入引脚T0(P3.4)或T1(P3.5)。
在这种情况下,当检测到输入引脚上的电平由高跳变到低时,计数器就加1(它在每个机器周期的S5P2时采样外部输入,当采样值在这个机器周期为高,在下一个机器周期为低时,则计数器加1)。
加1操作发生在检测到这种跳变后的一个机器周期中的S3P1,因此需要两个机器周期来识别一个从“1”到“0”的跳变,故最高计数频率为晶振频率的1/24。
这就要求输入信号的电平要在跳变后至少应在一个机器周期内保持不变,以保证在给定的电平再次变化前至少被采样一次。
定时器/计数器有四种工作方式,其工作方式的选择及控制都由两个特殊功能寄存器(TMOD和TCON)的内容来决定。
用指令改变TMOD或TCON的内容后,则在下一条指令的第一个机器周期的S1P1时起作用。
1、定时器的方式寄存器TMOD图7-1 TMOD寄存器各位定义特殊功能寄存器TMOD为定时器的方式控制寄存器,寄存器中每位的定义如图7-1所示。
高4位用于定时器1,低4位用于定时器0。
其中M1,M0用来确定所选的工作方式,如表7-1所示。
①M1 M0 定时器/计数器四种工作方式选择,见表7-1所示。
微机原理与接口技术_第7章8253
§7-1 8253的工作原理 ——8253的内部结构和引脚信号
然后,开始递减计数。即每输入一个时钟脉冲,计数
器的值减1,当计数器的值减为0时,便从OUT引脚输出 一个信号。输出信号的波形主要由工作方式决定,同 时还受到从外部加到GATE引脚上的门控信号控制,它 决定是否允许计数。 当用8253作外部事件计数器时,在CLK脚上所加的计 数脉冲是由外部事件产生的,这些脉冲的间隔可以是 不相等的。 如果要用它作定时器,则CLK引脚上应输入精确的时 钟脉冲。这时,8253所能实现的定时时间,决定于计 数脉冲的频率和计数器的初值,即 定时时间=时钟脉冲周期tc×预臵的计数初值n
16
§7-1 8253的工作原理 ——8253的内部结构和引脚信号 ③引脚 8253的3个计数器都各有3个引脚,它们是:
CLK0~CLK2:计数器0~2的输入时钟脉冲从这里输
入。频率不能大于2MHz。
OUT0~OUT2:计数器0~2的输出端。
GATE0~GATE2:计数器0~2的门控脉冲输入端。
4
第七章 可编程计数器/定时器8253及其应用 ——概述 2. 不可编程的硬件定时 555芯片是一种常用的不可编程器件,加上外接电阻和电 容就能构成定时电路。这种定时电路结构简单,价格 便宜,通过改变电阻或电容值,可以在一定的定时范 围内改变定时时间。但这种电路在硬件已连接好的情 况下,定时时间和范围就不能由程序来控制和改变, 而且定时精度也不高。 3. 可编程的硬件定时 ①可编程定时器/计数器电路利用硬件电路和中断 方法控制定时,定时时间和范围完全由软件来确 定和改变,并由微处理器的时钟信号提供时间基 准,这种时钟信号由晶体振荡器产生,故计时精
12
§7-1 8253的工作原理 ——8253的内部结构和引脚信号 8253输入信号组合的功能表
第7章习题解答
第7章思考题及习题71.如果采用的晶振的频率为24MHz,定时器/计数器工作在方式0、1、2下,其最大定时时间各为多少?答:晶振的频率为24MHz, 机器周期为0.5µs。
方式0最大定时时间=0.5µs×213=0.5µs×8192=4096µs方式1最大定时时间=0.5µs×216=0.5µs×65536=327686µs方式2最大定时时间=0.5µs×28=0.5µs×256=128µs2.定时器/计数器用作计数器模式时,对外界计数频率有何限制?答:外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。
3.定时器/计数器的工作方式2有什么特点?适用于哪些应用场合?答:方式2为初值自动装入的8位定时器/计数器,克服了在循环定时或循环计数应用时就存在用指令反复装入计数初值影响定时精度的问题。
4.TH x与TL x(x= 0,1)是普通寄存器还是计数器?其内容可以随时用指令更改吗?更改后的新值是立即刷新还是等当前计数器计满后才能刷新?答:THx与TLx(x = 0,1)是计数器,其内容可以随时用指令更改,但是更改后的新值要等当前计数器计满后才能刷新。
5.Proteus虚拟仿真使用定时器T0,采用方式2定时,在P1.0脚输出周期为400µs,占空比为4:1的矩形脉冲,要求在P1.0脚接有虚拟示波器,观察P1.0脚输出的矩形脉冲波形。
答:略6.Proteus虚拟仿真利用定时器T1的中断来使P1.7控制蜂鸣器发出1kHz的音频信号,假设系统时钟频率为12MHz。
答:利用定时器T1的中断控制P1.7引脚输出频率为1kHz的方波音频信号,驱动蜂鸣器发声。
系统时钟为12MHz。
方波音频信号的周期为1ms,因此T1的定时中断时间为0.5 ms,进入中断服务程序后,对P1.7求反。
《单片机原理及应用》第7章 51及定时器计数器应用基础
中断,并在中断服务程序中对P1.0和P1.1取反。由于 采用了6MHz晶振,因此单片机的机器周期为2μs。因 此可计算TL0的初值X=156=9CH,TH0的初值X=56=38H。
【例7-3】P1.1输出周期1s的方波
• 由于定时时间较长,一个定时器不能直接实现(一个 定时器最长定时时间为65536us),可以有以下两种方 法。
• 方法1:硬件定时*软件计数 • 如硬件定时50ms,软件计数器设定为20即可。
方法2:硬件定时器*硬件计数器
• (1)T0定时器,定时器50ms,定时时间到,P1.0取反 ;
• (2)T1计数器, • 计数脉冲位P1.0, • 计数10次; • (3)计数次数到 • P1.1取反。
【例7-4】不同占空比的输出)
• 7.1.1 结构 • 7.1.2 控制寄存器 •
7.1.1 结构
• 计数功能:
• 是指对外部事件进行计数:计数信号来自T0(P3.4)、 T1(P3.5)引脚。
• 定时功能:
• 也是通过计数器的计数功能来完成的,不过此时的计 数脉冲来自单片机内部:机器周期。
7.1.2 控制寄存器
• 与定时器/计数器应用有关的控制寄存器有2个,分别 为TCON、TMOD、TH、TL。
• 1、计数器控制寄存器(TCON)
2、工作方式控制寄存器(TMOD)
• 3、TH、TL • 4、如果是中断方式,还与IE、IP寄存器有关。
7.1.3 串行通信的检错与纠错
• 1、奇偶校验 • 2、代码和校验 • 3、循环冗余校验(CRC校验)
总结:
• 7.1.4(1串)并行行接与口串芯行片;UART和USART
中职教育-《89C51单片机实用教程》课件:第7章 89C51单片机中断系统和定时器(4).ppt
SJMP LOOP
END
例7.9 工作模式1的应用 利用定时器 T1 工作模式1, 在引脚 P1.1 上输出
7.4 89C51单片机中定时器/计数器的应用
在定时器/计数器应用时,进行如下工作: 1. 设定TMOD来选择定时器T0,T1的工作方式:
按照实际需要,选择定时方式还是计数方式; 按照定时长短,选择工作模式0、1、2或 3 ; 按照具体要求,选择是否受INT0 (INT1) 控制。 2.根据定时时间长短和工作模式计算计数初值: 根据工作模式,计算出定时时间的计数初值 ;
将计数初值送入定时器中(TH1,TL1,TH0、TL0) 3. 对TCON的设定来启动定时器/计数器工作。 4. 正确选择用程序查询方法或程序中断方式来进
行定时时间到(计数溢出)后的处理操作。
7.4.1 定时器工作方式的设置和计数初值计算
对定时器的工作模式寄存器TMOD进行设定:
l. 定时方式和计数方式选择。
解: ⑴ 如图在引脚 P1.0 上输出周期为 2ms 连续方波,
需要定时器 T0 产生 1ms 的定时。 每隔1ms时间 P1.0 引脚的输出取反即可。
解:
⑵. T0工作于模式0,计数器为13位的加1计数器, fosc=6MHz,则1个振荡周期为1/6μs 定时时间为1ms,根据公式: t =(213-T0初值)×振荡周期×12 1×10-3=(213-T0初值) ×( 1/6×10-6 ) ×12 T0初值= 7692 = 1111000001100B
多为:213=8192个。
例7.5 定时器T0工作在模式0, CPU主频 fosc=6MHz 定时1ms, T0的初值为多少?计算最长定时时间?
解:T0工作于模式0时, 为13位的加1计数器 ①. 定时1ms,根据公式:
定时器计数器的定时实验
定时器计数器的定时实验简介本文将介绍定时器计数器的定时实验,主要涉及定时器计数器的原理、使用方法以及实验步骤。
定时器计数器是一种常用的计时设备,广泛应用于各种计时场景。
定时器计数器的原理定时器计数器是一种能够精确计时的设备,它通常由一个可编程的时钟和一个计数器组成。
计数器根据时钟的脉冲信号进行计数,从而实现计时的功能。
定时器计数器的工作原理如下:1.初始化计数器:将计数器的初始值设置为0。
2.启动计数器:通过控制信号将时钟输入到计数器中,开始计数。
3.计数过程:计数器根据时钟的脉冲信号进行计数,每接收到一个时钟脉冲,计数器的值加1。
4.判断定时完成:当计数器的值等于设定的定时值时,表示定时完成。
5.停止计数器:定时完成后,停止时钟信号的输入,计数器停止计数。
定时器计数器的使用方法定时器计数器通常由软件通过编程的方式进行使用,具体方法如下:1.初始化定时器计数器:首先,需要将计数器的初始值设置为0,并且设定定时的时间。
2.启动计数器:通过控制信号将时钟输入到计数器中,开始计数。
3.监测计数器的值:在计数的过程中,可以通过查询计数器的值来获取当前的计时结果。
4.判断定时完成:当计数器的值等于设定的定时值时,表示定时完成。
5.停止计数器:定时完成后,停止时钟信号的输入,计数器停止计数。
实验步骤以下是一个简单的实验步骤,用于演示定时器计数器的定时功能:1.准备硬件:–打开开发板,并确保定时器计数器的引脚与外部设备连接正常。
–连接调试器,以便在实验过程中监测计数器的值。
2.编写代码:–在开发环境中,编写一段代码,完成实验的需求,包括初始化计数器、设定定时值等。
3.烧录程序:–将编写好的程序烧录到开发板中。
4.启动实验:–启动开发板,开始实验。
5.监测计数器的值:–在实验过程中,通过调试器监测计数器的值,以便实时了解计时结果。
6.判断定时完成:–当计数器的值等于设定的定时值时,表示定时完成,可以进行相关操作,如触发其他事件、输出提示信息等。
llxPLC-7定时器计数器
STL指令
图3-25 加计数器
2. 递减计数器CTD(Count Down) 装载输入(LD)为ON时,计数器位被复位, 并把设定值装入当前值。减至0时,停止计数,计 数器位被置1。
3. 加减计数器CTUD
图3-26 减计数器
图3-27 加减计数器
习 题
(1) 接通延时定时器(TON)的输入(IN)电路 时开 始定时,当前值大于等于设定值时其定时器位变 为 ,其常开触点 ,常闭触点 , (2) 接通延时定时器(TON)的输入(IN)电路 时被 复位,复位后其常开触点 ,常闭触点 ,当前值 等于 。 (3) 若加计数器的计数输入电路 (CU) 、复位输入电路(R) , 计数器的当前值加1。当前值大于等于设定值(PV)时, 其常开触点 ,常闭触点 。 复位输入电路 时,计数器被复位,复位后其常开触 点 ,常闭触点 ,当前值为 。 (4) 输出指令(=)不能用于 过程映像寄存器。 (5) SM 在首次扫描时为ON,SM0.0一直为 。
Байду номын сангаас
保持型通电延时定时器TONR (Retentive On-Delay Timer)
图3-23 保持型接通延时定时器
4 分辨率对定时器的影响
(1) 1ms定时器
定时器和当前值每隔1ms刷新一次,不与扫描周 期同步。
(2) 10ms定时器 执行定时器指令时开始定时,在每一个扫描周 期开始时刷新定时器,每个扫描周期只刷新一次。 (3) 100ms定时器 只有在执行定时器指令时,才对100ms定时器的 当前值进行刷新。
3.4.2 计数器指令
计数器指令
计数器主要用于累计输入脉冲的次数。S7-200系列 PLC有三种计数器:递增计数器CTU、递减计数器CTD、 增减计数器CTUD。三种计数器共有256个。
单片机原理及智能仪表技术第7章
计数状态:X=M-N
定时状态:X=M-定时时间/T,T为机器周期
2、TMOD定时器方式设置寄存器(89H):
TMOD主要用于 选择定时器的工作 模式(C/T)、启动方 式(GATE)和工作方 式等。该寄存器的 格式如图所示。
2、TMOD定时器方式设置寄存器(89H):
TMOD,#方式字 THx,#XH TLx,#XL EA ETx TRx
;选择方式 ;装入Tx时间常数 ;开Tx中断
;启动Tx定时器
需考虑:1. 按实际需要选择定时/计数功能; 2. 按时间或计数长度选择工作方式; 3. 计算时间常数:
二、定时/计数器初值的计算
(1)定时器初值的计算
在定时器模式下,计数器由单片机主脉冲经 12 分频后 计数。因此,定时器定时时间T的公式:T=(M-TC)×T计数, 上式也可写成:TC=M-T/T计数 式中,M为模值,和定时器的工作方式有关,在方式0时 M为213,在方式1时M为216,在方式2和方式3时M为28;T计数是 单片机振荡周期TCLK的12倍;TC为定时器的定时初值。 例:单片机时钟频率12MHz,定时器工作在方式1下,定 时100us,初值为多少? 解:时钟频率Ф CLK=12MHz,所以振荡周期TCLK=1/12us T计数=12×TCLK=1us,M=216=65536,T=100us 所以,TC=65536-100/1=65436,0xFF9C
定时器工作方式:当选择定时器方式时(C/T=0),TR1=1,定时器对系统的机器周 期计数,每过一个机器周期,计数器TH1,TH0加1,直至计满规定个数回零,置 位定时器中断标志(TF1)产生溢出中断。根据机器周期和设定的计数初值,可以定 时产生各种精确的时间。 计数器工作方式:当选择计数器方式时(C/T=1),外部脉冲通过引脚T1(P3.5)引入, 计数器对此外部脉冲的下降沿进行加1计数,直至计满规定值回零,置位定时器中 断标志(TF1)产生溢出中断。根据规定的时间内的计数个数,可以得到信号的频率。 计数最高频率不得超过振荡频率的1/24。
定时器计数器结构及使用方法
延时100us 延时50ms
100次计数 各种方式均可以 50000us延时 50000次计数
方式1
任意定时及计数的方法
当现实生活中有少于65536这个计数值的要求时,如包 装线上,一打为12瓶,一瓶药片为100粒,怎样来满足这个要 求呢?
如果是一个空的盆要1万滴水滴进去才会满,那么在开始 滴水之前就先放入一勺水,还需要10000滴吗?所以采用预置 数的方法,如果要计数100,就先放进65436,再来100个脉 冲,不就到了65536了吗?
MOV IE,#00H
;禁止中断
SETB TR0
;启动定时
LOOP:JBC TF0,LOOP1 ;查询计数溢出
AJMP LOOP
LOOP1:CPL P1.0 AJMP LOOP
;输出方波,初值自动装入
动物检疫的起源
➢动物检疫源于300多年前的欧洲。 ➢中国动物检疫始于1903年,目前已形成了较完善的动物检疫体系。 ➢国家质检总局和设在各地的出入境检验检疫机构承担着进出境动物的检验检疫工
饲养 ; 检验检疫机构对入场的动物进行临床检查和观察,按
规定进行采样和实验室检验; 对经检验检疫合格的动物签发《动物卫生证书》,并
根据需要加施检验检疫封识。
运输监管
出境动物,经产地检验检疫机构检验检疫合格的,从产地运往出 境口岸时,交通、铁路、民航等运输部门和邮电部门凭检验检疫 机构签发的单证办理承运和邮递手续;途中,国内其他部门不再
化程序又改如何。
解析:分析要求,确定并设置工作方式
定时器1 100ms 100000us延时 100000次计数
超出所有工作方式M值
采用计数循环 循环次数为2次
每次实际需要延时时间为100000/2-50000us 50000
定时计数器
这一讲我们了解定时/计数器的作用和原理我先讲一下什么是定时器单片机就是"放在一个芯片里的计算机" ,所以光有CPU还不算单片机,还需要有内存,外存,输入输出接口和外部设备,这个芯片里就有一台完整的小电脑了.所以叫"单个芯片的计算机" 简称单片机内存,外存,输入输出我们都好理解,外部设备有哪些呢?主要就是串行通信控制器(串口)和定时/计数器今天这课就是讲定时/计数器定时/计数器是即能定时,又能计数的器件单片机不能完全靠人来控制比如你按什么键它就执行什么事,那么你不按呢?它就傻等着,这可不行,那么我们给单片机制定了工作日程表,总不能一直用人盯着提醒它做什么吧。
这样我们给它提供了一个闹钟,就是这个定时器,我们把要做的时安排好时间,然后定时器到了时间就提醒CPU做该做的事,这样就自动化了再说计数器如果用单片机来计数,一般可以通过用CPU来计算,可是这样一来,CPU就不能集中精力做事了比如它想知道生产线上一共传送了多少个产品,那么有一个办法就是让它一直等,有一个产品它就计数加1,可是它也不知道下一个产品什么时候来,所以只好一直等,那它就没办法专心做别的事了,开发人员想了,干脆给它派个助手吧,专门在那等着计数,然后CPU 也不管它计了多少,什么时候想知道了就到计数器那里去问一下。
定时器和计数器其实是一回事!!!只不过定时器是对系统的时钟信号进行计数。
我们通常用用电是200V 50HZ 我想前面那个我不用解释了吧。
后面那个的意思就是一秒钟有50次的频率。
也就是50HZ。
那么6M也就是6MHZ也就是600万次的频率。
也就是说一秒钟600万次。
比如我们用6M的晶振,那么12个时钟周期执行一条指令。
就是一个指令周期。
我们用计数器对指令周期计数。
6M=600万600万/12=500K (k是指千)就是一秒钟有500K个指令周期。
一个指令周期就是1秒/500K=2微秒那么我们想定时1毫秒500*2微秒=1000微秒=1毫秒就设定计数器记录500个时钟周期就行了那么要得到1秒呢?就是1000个1毫秒,无非就是改变计数的值现在我们来总结一下这个定时/计数器,其实就是个计数器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
行计数(见图7-1);
定时器模式是对系统时钟信号经12分频后的内部脉冲信号(机器周期) 计数。由于系统时钟频率是定值,可根据计数值计算出定时时间。两个定
时器/计数器属于增1计数器,即每计一个脉冲,计数器增1。
7.2.2 方式1 当M1、M0=01时,工作于方式1,等效电路逻辑结构见图7-5。
图7-5
方式1的逻辑结构框图
方式1和方式0差别仅仅在于计数器的位数不同,方式1为16位计数器,由 THx高8位和TLx低8位构成(x = 0,1),方式0则为13位计数器,有关控制 状态位含义(GATE、C/T* 、TFx、TRx)与方式0相同。
30
图7-14 由外部计数输入信号控制LED的闪烁
(3)设置IE寄存器
本例由于采用T1中断,因此需将IE寄存器的EA、ET1位置1。 (4)启动和停止定时器T1 将寄存器TCON中TR1=1,则启动T1计数;TR1=0,则停止T1计数。 参考程序如下:
#include <reg51.h> void Delay(unsigned int i) //定义延时函数Delay( ),i是形 //式参数,不能赋初值
图7Байду номын сангаас3 TCON格式
7
第6章已介绍与外中断有关的低4位。这里仅介绍高4位功能。
(1)TF1、TF0—计数溢出标志位 当计数器计数溢出时,该位置“1”。使用查询方式时,此位可供CPU
查询,但应注意查询后,用软件及时将该位清“0”。使用中断方式时,作
为中断请求标志位,进入中断服务程序后由硬件自动清“0”。 (2)TR1、TR0—计数运行控制位
图7-4 定时器/计数器方式0的逻辑结构框图
9
方式0为13位计数器,由TLx(x = 0,1)的低5位和THx的高8位构成
。TLx低5位溢出则向THx进位,THx计数溢出则把TCON中的溢出标志位 TFx置“1”。
图7-2中,C/T*位控制电子开关决定2种工作模式。
(1)C/T*=0,电子开关打在上面,T1(或T0)为定时器工作模式,系 统时钟12分频后的脉冲作为计数信号。
15
7.2.4 方式3 方式3是为增加一个附加的8位定时器/计数器而设置的,从而使 AT89S51具有3个定时器/计数器。方式3只适用于T0,T1不能工作在方 式3。T1方式3时相当于TR1 = 0,停止计数(此时T1可作为串口波特率 产生器)。 1.工作方式3下的T0 当TMOD的低2位为11时,T0被选为方式3,各引脚与T0的逻辑关系 见图7-8。 T0分为两个独立的8位计数器TL0和TH0,TL0使用T0的状态控制位 C/T* 、GATE、TR0 ,而TH0被固定为一个8位定时器(不能作为外部 计数模式),并使用定时器T1的状态控制位TR1,同时占用定时器T1的 中断请求源TF1。
P1=0x00;
EA=1; ET0=1; TR0=1; while(1); { ;
//P1口8个LED点亮
//总中断开 //开T0中断 //启动T0 //循环等待
}
} void timer0() interrupt 1 { TH0=0xee; TL0=0x00; //重新赋初值 //T0中断程序
i--;
TLx(x=0,1)作为常数缓冲器,当TLx计数溢出时,在溢出标志TFx置 “1”的同时,还自动将THx中的初值送至TLx,使TLx从初值开始重新
计数。定时器/计数器方式2工作过程见图7-7。
13
图7-6
方式2逻辑结构框图
14
图7-7 方式2工作过程
方式2可省去用户软件中重装初值的指令执行时间,简化定时初值的计 算方法,可相当精确地定时。
图7-11
T0方式3时T1为方式2工作示意图
20
(4)T1设置在方式3
T0方式3时,再把T1也设置成方式3,此时T1停止计数。 7.3 对外部输入的计数信号的要求 计数器模式时,计数脉冲来自外部输入引脚T0或T1。当输入信号产生 负跳变时,计数值增1。每个机器周期S5P2期间,都对外部输入引脚T0或 T1进行采样。如在第1个机器周期中采得值为1,而在下一个机器周期中采 得的值为0,则在紧跟着的再下一个机器周期S3P1期间,计数器加1。由于 确认一次负跳变要花2个机器周期,即24个振荡周期,因此外部输入的计数 脉冲的最高频率为系统振荡器频率1/24。
25
定时时间=(216−X)×12/晶振频率
则 5 000=(216 −X) ×12/11.059 2 得 X = 60 928 转换成十六进制:0xee00,其中0xee装入TH0,0x00装入TL0。 (3)设置IE寄存器
本例由于采用定时器T0中断,因此需将IE寄存器中的EA、ET0位置1。
(4)启动和停止定时器T0
if(i<=0) { P1=~P1; i=100; } }
//循环次数减1
//P1口按位取反 //重置循环次数
7.4.2 计数器的应用 【例7-2】如图7-14,T1采用计数模式,方式1中断,计数输入引脚T1(
P3.5)上外接按钮开关,作为计数信号输入。按4次按钮开关后,P1口的8只
LED闪烁不停。 (1)设置TMOD寄存器
T0、T1具有4种工作方式(方式0、1、2和3)。
图 7-1特殊功能寄存器TMOD用于选择定时器/计数器T0、T1的工作模式
和工作方式。特殊功能寄存器TCON用于控制T0、T1的启动和停止计数, 同时包含了T0、T1状态。
计数器起始计数从初值开始。单片机复位时计数器初值为0,也可给计数
器装入1个新的初值。
7.4 定时器/计数器的编程和应用
4种工作方式中,方式0与方式1基本相同,只是计数位数不同。方式0 为13位,方式1为16位。由于方式0是为兼容MCS-48而设,计数初值计 算复杂,所以在实际应用中,一般不用方式0,常采用方式1。 7.4.1 P1口控制8只LED每0.5s闪亮一次 【例7-1】在AT89S51的P1口上接有8只LED,原理电路见图7-13。 采用T0方式1的定时中断方式,使P1口外接的8只LED每0.5s闪亮一次。
16
2.T0工作在方式3时T1的各种工作方式 一般情况下,当T1用作串口波特率发生器时,T0才工作在方式3。T0 方式3时,T1可为方式0、1、2,作为串口波特率发生器,或不需要中断的 场合。
17
图7-8
T0方式3的逻辑结构框图
(1)T1工作在方式0
T1的控制字中M1、M0 = 00时,T1工作在方式0,工作示意图如图79所示。
图7-9 (2)T1工作在方式1
T0方式3时T1为方式0工作示意图
当T1的控制字中M1、M0 = 01时,T1工作在方式1,工作示意见图710。
19
图7-10 T0方式3时T1为方式1工作示意图 (3)T1工作在方式2 当T1控制字中M1、M0 = 10时,T1为方式2,工作示意如图7-11所示。
(2)C/T*=1,电子开关打在下面,T1(或T0)为计数器工作模式,对
P3.5(或P3.4)引脚上的外部输入脉冲计数,当引脚上发生负跳变时,计 数器加1。
GATE位状态决定定时器/计数器运行控制取决于TRx一个条件,还是
取决于TRx和INTx*引脚状态两个条件。
10
(1) GATE=0时,A点(见图7-4)电位恒为1,B点电位仅取决于TRx状 态。TRx=1,B点为高电平,控制端控制电子开关闭合,允许T1(或T0) 对脉冲计数。TRx=0,B点为低电平,电子开关断开,禁止T1(或T0)计 数。 (2) GATE=1时,B点电位由INTx*(x = 0,1)的电平和TRx的状态两 个条件来确定。当TRx=1,且INTx* =1时,B点才为1,电子开关闭合,允 许T1(或T0)计数。故这种情况下计数器是否计数是由TRx和INTx*两个 条件来共同控制的。
将定时器控制寄存器TCON中的TR0=1,则启动定时器T0;TR0=0,则 停止定时器T0定时。
参考程序:
#include<reg51.h> char i=100;
void main ()
{ TMOD=0x01; TH0=0xee; TL0=0x00; //定时器T0为方式1 //设置定时器初值
27
第7章
定时器/计数器的工 作原理及应用
1
7.1 定时器/计数器的结构
AT89S51定时器/计数器结构见图 7-1,定时器/计数器T0由特殊功能寄存器 TH0、TL0构成,T1由特殊功能寄存器TH1、TL1构成。
图7-1 定时器/计数器结构框图
2
T0、T1都有定时器和计数器两种工作模式,两种模式实质都是对脉冲信
7.1.1 工作方式控制寄存器TMOD
TMOD用于选择定时器/计数器的工作模式和工作方式,字节地址为89H ,不能位寻址,格式见图7-2。
图7-2 寄存器TMOD格式
8位分两组,高4位控制T1,低4位控制T0。 TMOD各位说明如下。
(1)GATE—门控位
GATE=0,定时器是否计数,由控制位TRx(x = 0,1)来控制。
23
图7-13 方式1定时中断控制LED闪亮
24
(1)设置TMOD寄存器
T0工作在方式1,应使TMOD寄存器的M1、M0=01;应设置C/T*=0,为定 时器模式;对T0的运行控制仅由TR0来控制,应使相应的GATE位为0。定时 器T1不使用,各相关位均设为0。所以,TMOD寄存器应初始化为0x01。 (2)计算定时器T0的计数初值 设定时时间5ms(即5 000µs),设T0计数初值为X,假设晶振的频率为 11.059 2MHz,则定时时间为:
5
GATE=1,定时器是否计数,由外中断引脚INTx* 上的电平与运行控