免费预览已结束,剩余48页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,7.1定时/计数器的基本结构和工作原理,7.2定时/计数器的控制实现,7.3定时/计数器的工作方式,主要内容,7.4定时/计数器的应用,本章学习目标与重点内容,【学习目标】,1掌握定时/计数器的工作原理2理解80C51定时/计数器的结构,【重点内容】,1定时/计数器的控制实现2掌握80C51定时/计数器的使用3、掌握定时/计数器的编程实现,7.1定时/计数器的基本结构和工作原理,7.2定时/计数器的控制实现,7.3定时/计数器的工作方式,主要内容,7.4定时/计数器的应用,7.1定时/计数器的基本结构和工作原理,7.1引言,定时器/计数器的应用场合:定时或延时控制、对外部事件的检测、计数等;MCS-51系列8031、8051单片机有两个16位定时器/计数器(即T0和T1);8032、8052单片机有3个16位定时器/计数器(即T0、T1和T2);,7.1定时/计数器的基本结构和工作原理,7.1引言,所谓定时器也是对脉冲进行计数完成的,计数的是MCS-51内部产生的标准脉冲,通过计数脉冲个数实现定时。定时器的功能:定时发出脉冲信号,向CPU申请中断,其定时间隔的长短及起始控制的时间均可由程序控制。,例如某机械零件的热处理工艺曲线为:,温度,开始定时,保温5分钟,淬火清洗,开始定时回火3小时,空冷,实际控制可以由单片机定时发出信号控制自动完成整个工艺过程。,7.1定时/计数器的基本结构和工作原理,7.1引言,所谓所谓计数器就是对外部输入脉冲的计数;计数器功能:对外界发生的事件计数(输入脉冲),当达到程序规定的计数值时,输出一脉冲信号,申请中断。例如一啤酒生产线,如下图所示:,7.1定时/计数器的基本结构和工作原理,7.1引言,7.1定时/计数器的基本结构和工作原理,7.1.2定时/计数器的结构,组成:两个16位的定时器T0和T1,以及他们的工作方式寄存器TMOD和控制寄存器TCON等组成。内部通过总线与CPU相连。定时器T0和T1各由两个8位特殊功能寄存器TH0、TL0、TH1、TL1构成,8051定时器内部结构框图,7.1定时/计数器的基本结构和工作原理,7.1.2定时/计数器的结构,工作方式寄存器TMOD:用于设置定时器的工作模式和工作方式;控制寄存器TCON:用于启动和停止定时器的计数,并控制定时器的状态;单片机复位时,两个寄存器的所有位都被清0。,8051定时器内部结构框图,7.1定时/计数器的基本结构和工作原理,7.1.3定时/计数器的工作原理,定时/计数器T0和T1的实质是加1计数器,每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时/计数器中断允许时)。根据输入的计数脉冲来源,把它们分为定时器和计数器两种功能。做定时时,脉冲来自内部时钟振荡器;做计数时,脉冲来自外部引脚。,7.1定时/计数器的基本结构和工作原理,CPU时序,振荡周期:是振荡脉冲的周期,也成为“拍”,用P表示。就是晶体振荡器的周期,或外部振荡脉冲的周期。是MCS-51单片机的最小时序单位。,时钟周期:是振荡源信号经二分频后形成的时钟脉冲信号,用S表示。每个时钟周期分成P1、P2两个节拍,又被称为一个状态。是MCS-51单片机的最基本的时序单位。,机器周期:通常将完成一个基本操作所需的时间称为机器周期,由6个状态(12拍)组成,所以一个机器周期可以依次表示为S1P1、S2P2S6P1、S6P2。通常算术逻辑操作发生在节拍P1期间,而内部寄存器到寄存器的传送发生在节拍P2期间。,指令周期:是指CPU执行一条指令所需要的时间。是MCS-51单片机的最大的时序单位,由若干个振荡周期组成。一个指令周期通常含有14个机器周期,MCS-51典型的指令周期为一个机器周期。,7.1定时/计数器的基本结构和工作原理,7.1.3定时/计数器的工作原理,定时器模式输入脉冲是由内部振荡器的12分频信号产生,即每过一个机器周期,计数器加1,直至计满溢出。定时器的定时时间与系统的时钟频率有关。因一个机器周期等于12个时钟周期,所以计数频率应为系统时钟频率的十二分之一。如果晶振频率为12MHz,则机器周期为1s。通过改变定时器的定时初值,并适当选择定时器的长度(8位、13位或16位),可以调整定时时间。,7.1定时/计数器的基本结构和工作原理,7.1.3定时/计数器的工作原理,计数器模式计数输入引脚T0(P3.4)和T1(P3.5)对外部信号计数,外部脉冲的下降沿将触发计数。计数器在每个机器周期的S5P2期间采样引脚输入电平,若一个机器周期S5P2期间采样值为1,下一个机器周期S5P2期间采样值为0,则计数器加1。因检测一个由1至0的跳变需要两个机器周期,故外部信号的最高计数频率为时钟频率的二十四分之一。如果晶振频率为12MHz,则最高计数频率为0.5MHz。虽然对外部输入信号的占空比无特殊要求,但为了确保给定电平在变化前至少被采样一次,外部计数脉冲的高电平与低电平保持时间均需在一个机器周期以上。,5.1定时器的结构及工作原理,在每个机器周期的S5P2期间采样检测引脚输入电平。若前一个机器周期采样值为“1”,后一个机器周期采样值为“0”,则计数器加1。新的计数值在检测到输入引脚电平发生“1”到“0”的负跳变(下降沿)后,于下一个机器周期的S3P1期间装入计数器中。由于CPU需要两个机器周期来识别一个“1”到“0”的跳变信号,所以最高的计数频率为振荡周期的1/24。,7.1定时/计数器的基本结构和工作原理,7.2定时/计数器的控制实现,7.3定时/计数器的工作方式,主要内容,7.4定时/计数器的应用,7.2定时/计数器的控制实现,定时/计数器的控制和实现由两个特殊功能寄存器TMOD和TCON完成,TMOD:设置定时器的工作方式;TCON:控制定时器的启动和停止;,7.2定时/计数器的控制实现,7.2.1工作方式寄存器TMOD,T1控制,T0控制,GATE门控位,M1M0工作方式选择,7.2定时/计数器的控制实现,7.2.1工作方式寄存器TMOD,(1)GATE门控位0:以TRX(X=0,1)来启动定时器/计数器运行。1:用外中断引脚(INT0*或INT1*)上的高电平和TRX来启动定时器/计数器运行。,7.2定时/计数器的控制实现,7.2.1工作方式寄存器TMOD,7.2定时/计数器的控制实现,7.2.1工作方式寄存器TMOD,M1、M0工作模式选择位。,M1、M0工作模式选择位。,7.2定时/计数器的控制实现,7.2.1工作方式寄存器TMOD,TMOD无位地址,不能位寻址。复位时,TMOD所有位均为“0”。,7.2定时/计数器的控制实现,7.2.2控制寄存器TCON,中断请求标志,触发方式选择,启动定时/计数器,0低电平1下降沿,0停止1启动,7.2定时/计数器的控制实现,7.2.2控制寄存器TCON,(1)TF1、TF0计数溢出标志位定时器T0或T1计数溢出时,由硬件自动将此位置“1”;TFx可以由程序查询,也是定时中断的请求源;(2)TR1、TR0计数运行控制位TRx=1:启动定时器/计数器工作TRx=0:停止定时器/计数器工作,7.2定时/计数器的控制实现,7.1定时/计数器的基本结构和工作原理,7.2定时/计数器的控制实现,7.3定时/计数器的工作方式,主要内容,7.4定时/计数器的应用,7.3定时/计数器的工作方式,MCS-51的定时器T0有4种工作方式:即:方式0,方式1,方式2,方式3。MCS-51的定时器T1有3种工作方式:即:方式0,方式1,方式2。,7.3定时/计数器的工作方式,7.3.1方式0,M1、M0设置为00,为13位计数器,以T1为例,其框图如下:,加1计数器,7.3定时/计数器的工作方式,7.3.1方式0,在这种方式下,16位寄存器TH1和TL1只用13位,由TH1的8位和TL1的低5位组成。TL1的高3位不定。当TL1的低5位计数溢出时,向TH1进位。而TH1计数溢出时,则向中断标志位TF1进位(即硬件将TF1置1),并请求中断。可通过查询TF1是否置“1”或考察中断是否发生来判定定时器T1的操作完成与否。,7.3定时/计数器的工作方式,7.3.1方式0,7.3定时/计数器的工作方式,7.3.1方式0,GATE控制定时器Tx(T1或T0)的条件:(1)当GATE=0时,“或门”输出恒为1,“与门”的输出信号K由TRx决定(即此时K=TRx),定时器不受INTx输入电平的影响,由TRx直接控制定时器的启动和停止。TRx=1;计数启动;TRx=0;计数停止;(2)当GATE=1时,“与门”的输出信号K由INTx输入电平和TRx位的状态一起决定(即此时K=TRxINTx),当且仅当TRx=1且INTx=1(高电平)时,计数启动;否则,计数停止。,7.3定时/计数器的工作方式,7.3.2方式1,M1、M0=01,为16位的计数器,除位数外,其他与方式0相同。其定时时间为:(216-初值)振荡周期12例如:若晶振频率为12MHz,则最长的定时时间为(216-0)(1/12)12us=65.536ms,7.3定时/计数器的工作方式,7.3.2方式2,M1、M0=10,为自动恢复初值的8位计数器,等效框图如下:TLx作为8位计数器,THx作为重置初值的缓冲器。,THx作为常数缓冲器,当TLx计数溢出时,在置“1”溢出标志TFx的同时,还自动的将THx中的初值送至TLx,使TLx从初值开始重新计数。定时器/计数器的方式2工作过程如图(x=0,1)。,7.3定时/计数器的工作方式,7.3.2方式2,7.3定时/计数器的工作方式,7.3.4方式3,只适用于定时器/计数器T0。T1不能工作在方式3。如果将T1置为方式3,则相当于TR1=0,停止计数(此时T1可用来作串行口波特率产生器)。1.工作方式3下的T0T0在方式3时被拆成两个独立的8位计数器:TH0和TL0。8位计数器TL0使用T0的状态控制位C/T*、GATE、TR0、INT0,它既可以工作在定时方式,也可以工作在计数方式。8位定时器TH0被固定为一个8位定时器(不能作外部计数模式),并使用定时器T1的状态控制位TR1,同时占用定时器T1的中断请求源TF1。此时,定时器TH0的启动或停止只受TR1控制。TR1=1时,启动TH0的计数;TR1=0时,停止TH0的计数,7.3定时/计数器的工作方式,7.3.4方式3,各引脚与T0的逻辑关系如图所示:,7.3定时/计数器的工作方式,7.3.4方式3,2.T0工作在方式3下T1的各种工作方式注意:当T0处于方式3时,T1仍可设置为方式0、方式1和方式2。当时由于TR1、TF1和T1的中断源都已被定时器T0(中的TH0)占用,所以定时器T1仅有控制位C/T来决定其工作在定时方式或计数方式。当计数器计满溢出时,不能置位“TF1”,而只能将输出送往串口。所以,此时定时器T1一般用作串口的波特率发生器,或不需要中断的场合。(1)T1工作在方式0,7.3定时/计数器的工作方式,7.3.4方式3,(2)T1工作在方式1,(3)T1工作在方式2,7.1定时/计数器的基本结构和工作原理,7.2定时/计数器的控制实现,7.3定时/计数器的工作方式,主要内容,7.4定时/计数器的应用,7.4定时/计数器的应用,7.4.1定时/计数器的初始化,MCS-51单片机的定时器/计数器是可编程的,但在进行定时或计数之前要对程序进行初始化,具体步骤如下:(1)对TMOD赋值,以确定定时器的工作模式;(2)置定时/计数器初值,直接将初值写入寄存器的TH0、TL0或TH1、TL1;(3)根据需要,对IE置初值,开放定时器中断;(4)对TCON寄存器中的TR0或TR1置位,启动定时/计数器,置位以后,计数器即按规定的工作模式和初值进行计数或开始定时。,7.4定时/计数器的应用,7.4.1定时/计数器的初始化,初值计算:设计数器的最大值为M,则置入的初值X为:计数方式:X=M-计数值定时方式:由(M-X)T=定时值,得X=M-定时值/TT为计数周期,是单片机的机器周期。(模式0:M为213,模式1:M为216,模式2和3:M为28),例如:机器周期为1s时,若工作在模式0,则最大定时值为:2131s=8.192ms若工作在模式1,则最大定时值为:2161s=65.536ms,7.4定时/计数器的应用,7.4.2定时/计数器的编程应用,例7-2要在P1.0上输出一个周期为2ms的方波,假设系统振荡频率采用12MHz。利用T0方式0产生1ms的定时方波的周期用T0来确定,让T0每隔1ms计数溢出1次,即TF0=1;查询到TF0=1则CPU对P1.0取反。,即要使P1.0每隔1ms取反一次。,7.4定时/计数器的应用,7.4.2定时/计数器的编程应用,第一步:确定工作方式字方式0(13位)最长可定时8.192ms;方式1(16位)最长可定时65.536ms;方式2(8位)最长可定时256s。T0为方式0,M1M0=00定时工作状态,C/T=0GATE=0,不受INT0控制,T1不用全部取“0”值。故TMOD=00H,7.4定时/计数器的应用,7.4.2定时/计数器的编程应用,第二步:计算1ms定时的初值X设初值为X,则有:(213-X)1210-61/12=110-3可求得:X=8192-1000=7192X化为16进制,即X=1C18H=1,1100,0001,1000B。所以,T0的初值为:TH0=E0HTL0=18H,7.4定时/计数器的应用,7.4.2定时/计数器的编程应用,第三步:开放定时/计数器中断ET0=1;EA=1;TR0=1;,7.4定时/计数器的应用,7.4.2定时/计数器的编程应用,C语言程序:#include/包含特殊功能寄存器库sbitP1_0=P10;/进行位定义voidmain()TMOD=0 x00;/T0做定时器,方式0TL1=0 x18;TH0=0 xE0;/设置定时器的初值ET0=1;/允许T1中断EA=1;/允许CPU中断TR1=1;/启动定时器while(1);/等待中断,7.4定时/计数器的应用,7.4.2定时/计数器的编程应用,C语言程序:,voidtime0_int(void)interrupt3/中断服务程序TL1=0 x18;TH0=0 xE0;/定时器重赋初值P1_0=P1_0;/P1.0取反,输出方波,7.4定时/计数器的应用,7.4.2定时/计数器的编程应用,例7-2将例7-1中的输出方波周期改为1秒。分析:周期为1s的方波要求500ms的定时。,(1)T0工作方式的确定因定时时间较长,采用哪一种工作方式?由各种工作方式的特性,可计算出:方式0(13位)最长可定时8.192ms;方式1(16位)最长可定时65.536ms;方式2(8位)最长可定时256s。所以采用定时器定时加软件计数的方法来实现延长定时。选方式1,定时50ms,软件计数10次。50ms10=500ms。所以,TMOD=01H,以上各方式都不满足要求,7.4定时/计数器的应用,7.4.2定时/计数器的编程应用,(2)计算计数初值因为:(216-X)1210-61/12=5010-3所以:X=65536-50000=15536=3CB0H因此:TH0=3CH,TL0=B0H(3)10次计数的实现设计一个软件计数器,初始值设为10。每隔50ms定时时间到,产生溢出标志TF0,程序查询到TF0=1,则软件计数器减1。这样减到0时就获得了500ms的定时。,7.4定时/计数器的应用,(4)参考程序Time0_Init()TMOD=0 x01;/定时器0,方式1TH1=0 x3c;TL1=0 xb0;/设置定时器的初值EA=1;ET0=1;/开定时器中断0TR0=1;/启动定时器voidtimer0_int(void)interrupt3Count+;TH1=0 x3c;TL1=0 xb0;,7.4定时/计数器的应用,(4)参考程序#include#defineucharunsignedchar#defineuintunsignedin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大二学期学习的自我鉴定范文
- 2023北京平谷高一(上)期末英语试卷含答案
- 基于系统动力学的电子商务发展动态仿真与策略优化研究
- 基于系统仿真的港口泊位分配优化策略研究
- 采购2025年农产品期货交易协议合同二篇
- 采购2025年农产品供应协议合同
- 2025年特许经营采购协议合同
- 2025年特许经营零售连锁合同协议合同
- 采购2025年农产品物流采购合同协议合同三篇
- 2025年数字营销咨询合同协议合同
- 2025汽车用多功能开关总成技术要求
- 《山地城市道路工程海绵城市设计指南(征求意见稿)》
- 2025医学细胞生物学案例解析
- 【MOOC答案】《中国文化传承与科技创新》(北京邮电大学)中国慕课章节作业网课答案
- 实验室安全管理工作汇报
- 交通运输工程学(第3版)课件 第十篇第4章-新一代航运系统
- 农村土地使用权转让协议书
- 中班社会活动求救电话
- 部编九年级上册语文第一单元教材知识点考点梳理 (共30张)+学案+验收卷(含答案)
- DB11T 1077-2020 建筑垃圾运输车辆标识、监控和密闭技术要求
- 星巴克2024年合作伙伴供应协议版
评论
0/150
提交评论