第六章:定时计数器B讲解
- 格式:ppt
- 大小:924.00 KB
- 文档页数:51
51单⽚机定时器计数器详解第六章定时器/计数器6.1 定时器的结构及⼯作原理6.2 定时器的控制6.3 定时器的⼯作模式及其应⽤第六章定时器/计数器实现定时⼀般有多种⽅法:1. 利⽤软件实现(延时程序)优点:简单,控制⽅便;缺点:CPU效率低。
2. 外部硬件实现:单稳态定时器、计数定时器优点:CPU效率⾼;缺点:修改参数⿇烦。
3. 利⽤计数器实现输⼊脉冲定时器/计数器作⽤主要包括产⽣各种时标间隔、记录外部事件的数量等,是单⽚机中最常⽤、最基本的部件之⼀。
外来脉冲定时计数定时器/计数器功能⽰意图6.1 定时器/计数器的结构及⼯作原理6.1.1 定时器/计数器的基本结构MCS-51单⽚机有⼆个定时器/计数器,每个定时器/计数器由⼏个专⽤寄存器组成。
TMOD(89H )⾼四位TMOD(89H )低四位⽅式寄存器TCON(88H)TCON(88H)控制寄存器*8DH 8BH 8CH 8AH TH1 TL1TH0 TL0数据寄存器(16位)定时器T1定时器T0定时器/计数器的结构如下图所⽰。
定时器/计数器的基本结构框图申请P3.5or P3.4or 8DH 8BH8CH 8AH6.1.2 定时器/计数器的⼯作原理定时器/计数器结构原理图INTx P3.YGATE :门控制位:定时/计数控制位TC/x=0,1Y=2,3Z=4,5⼀. 对外部输⼊信号的计数功能当T0或T1设置为计数⼯作⽅式时,计数器对来⾃输⼊引脚P3.4(T0)和P3.5(T1)的外部信号计数。
若前⼀个机器周期采样值为1,后⼀个机器周期采样值为0,则计数器加1。
所以计数器计数的频率最⾼为fosc 的1/24。
BDEHT H >1个机器周期T L >1个机器周期L⼆. 定时功能:定时器/计数器的定时功能也是通过计数实现的,它的计数脉冲是由单⽚机的⽚内振荡器输出经12分频后产⽣的信号,即为对机器周期计数。
INTx P3.Y例如:晶振频率=12MHz 机器周期=1us ,计数1次=1us ,计数频为=1MHz 。
定时器计数器工作原理
定时器计数器工作原理是利用双色LED分别显示计数值的方法,实时记录时间。
定时器计数器通常由一个时钟信号源和一个计数寄存器组成。
首先,时钟信号源提供完整的周期性时钟信号,如晶振或外部脉冲源。
该信号被传输到计数寄存器中,开始计数。
计数寄存器是一个二进制寄存器,能够计数时钟信号的脉冲次数。
当计时器启动时,计数寄存器开始从初始值开始计数,然后每接收到一个时钟信号,计数值就会加一。
计数器通过一个高速时钟信号和一个除频器来控制计数频率。
除频器可以通过设置不同的分频比来改变计数频率,从而实现不同的计时精度。
双色LED用来显示计时值。
例如,一个红色LED用于表示小时位,一个绿色LED用于表示分钟位。
当计数器的值递增到下一个单位时,相应的LED会亮起,显示出当前的计数值。
通过以上步骤循环执行,定时器计数器可以实时记录时间,并在LED上显示出来。
这种设计简单、可靠,广泛应用于计时器、时钟等各种设备中。
单片机定时计数器原理
单片机定时计数器原理是通过利用单片机内部的定时/计数器
模块来实现定时功能。
具体原理如下:
1. 单片机内部定时/计数器模块:单片机内部集成了一个或多
个定时/计数器模块,该模块由寄存器、时钟源和控制电路组成。
2. 寄存器设置:通过对寄存器的设置,可以选择计数器的工作模式、时钟源和计数值。
3. 时钟源选择:单片机提供多种时钟源,如外部晶体振荡器、内部时钟振荡器等。
根据具体应用的需求,选择合适的时钟源。
4. 工作模式选择:单片机提供多种工作模式,如定时模式、计数模式等。
根据具体应用的需求,选择合适的工作模式。
5. 计数值设置:可以通过对寄存器的设置,来确定计数器的计数值。
计数值的大小决定了定时的时间长度。
6. 中断触发:当计数器达到设定的计数值时,会自动触发定时中断信号。
通过中断服务程序,可以实现相应的定时功能。
7. 中断处理:定时中断触发后,单片机会跳转到中断服务程序,执行相应的操作。
如更新显示屏、控制外部设备等。
通过以上原理,单片机定时计数器可以实现各种定时任务,如
延时、定时触发事件等。
通过合理设置寄存器的值和选择合适的工作模式,可以满足不同应用场景的需求。
单 片 机 的 定 时 / 计 数 器-定时/计数器工作方式12TLx THx (低8位) (高8位)TvFx 申请中断Tx端TRx位GATE位INTx端≥1&C/T=0C/T=1控制 =1开关接通或门与门振荡器定时模式▼ TLx计满溢出则向THx进位,THx计数溢出则把TCON中的溢出标志位TFx置“1”。
工作方式1:16位的定时/计数器(TLx为低8位,THx为高8位)定时器模式下计数初值的计算▼计数初值 = 最大计数值(216=65536) - 需要计的脉冲数计数初值的计算:12TLx THx (低8位) (高8位)TvFx 申请中断Tx端TRx位GATE位INTx端≥1&C/T=0C/T=1控制 =1开关接通或门与门振荡器计数模式工作方式1:16位的定时/计数器(TLx为低8位,THx为高8位)开始是否采用中断方式?开中断EA=1,ETx=1计算初值高8位送THx,低8位送TLxY写TMOD选择工作方式N 启动定时器TRx=1返回方式1初始化流程方式1应用实例用T1产生一个50Hz的对称方波,由P2.0输出,采用中断和程序查询两种方式实现。
假设晶振频率f osc =12MHz。
分析▼方波周期T=1/50=0.02s=20ms,用T1定时10ms,即每10ms,P2.0取反一次,即可输出频率为50Hz的方波。
▼晶振频率为12MHz,采用定时器方式1时,最大定时时间为65.536ms,10ms<65.536ms,可以用方式1实现。
▼计数初值为:机器周期为1µs,定10ms需要计10ms/1µs=10000个机器周期。
计数初值X1=216-10000=65536-10000=55536 即TH1=55536/256,TL1=55536%256。
▼定时器T1每溢出一次,需要重新装一次初值。
中断方式编程#include "at89x51.h"void main(void){TMOD=0x10;//将T1设置为方式1TH1=55536/256; //装入计数初值TL1=55536%256;ET1=1;//开T1中断EA=1;//开总中断TR1=1; //启动定时器while(1); //等待10ms时间到}void intt1(void) interrupt 3 //T1中断服务函数{TH1=55536/256;//重新装入计数初值TL1=55536%256;P2_0=~P2_0;//P2.0取反}查询方式编程#include "at89x51.h"void main( ){TMOD=0x10; //将T1设置为方式1TR1=1;//启动定时器while(1){TH1=55536/256; //装入计数初值TL1=55536%256;while(!TF1); //等待TF1溢出P2_0=~P2_0; //P2.0取反TF1=0;//软件清TF1标志位 }}20ms10ms 仿真运行效果振荡器÷12TLx (8位)TFx申请中断Tx端TRx位GATE位INTx端≥1&C/T=0C/T=1控制 =1开关接通或门与门THx (8位)▼ 8位定时/计数器,TLx为计数单元;▼可自动重装载计数初值(TLx溢出后, THx→TLx,初始化时, THx和TLx赋相同的初值);▼晶振为12MHz时,最大定时时间为:(28-0)* 1μs =256μs。