第05-MCS-51单片机的定时器计数器课件.ppt_第1页
第05-MCS-51单片机的定时器计数器课件.ppt_第2页
第05-MCS-51单片机的定时器计数器课件.ppt_第3页
第05-MCS-51单片机的定时器计数器课件.ppt_第4页
第05-MCS-51单片机的定时器计数器课件.ppt_第5页
免费预览已结束,剩余38页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、西华大学电气信息学院 郑海春,1,第五章 MCS-51单片机的定时器/计数器,本章内容 了解定时/计数器的作用; 定时和计数两种方式的区别; 定时/计数器的结构与工作原理; 利用相关寄存器对定时计数器初始化及编程。,西华大学电气信息学院 郑海春,2,5.1 定时/计数器概述 5.2 定时/计数器工作方式与原理 5.3 定时/计数器的四种工作模式 5.4 定时/计数器的控制和状态寄存器 5.5 定时/计数器的初值计算 5.6 定时/计数器的应用,本 章 目 录,西华大学电气信息学院 郑海春,3,5.1 定时/计数器概述,定时、计数是计算机经常要处理的操作。如: 利用单片机产生某一频率的方波(定时

2、); 利用单片机作工业生产线上的产品数量统计、电机转速的测量(计数)等。,西华大学电气信息学院 郑海春,4,以定时为例:通常有两种方法实现。 软件延时法:利用指令(延时子程序)运行所消耗的时间实现所需的定时时间。 特点:由CPU控制,占用CPU的资源; 硬件法:利用一个硬件电路实现所需的时间定时,一旦时间到便产生一个标志信号通知CPU。特点:由CPU控制定时的启动,但定时过程由专用模块实现,CPU不参与其过程。所以提高了CPU的工作效率。,西华大学电气信息学院 郑海春,5,定时/计数器就是专用于产生延时和计数的外围模块,是单片机内部重要的组成部分。 作为一个嵌入式控制器,其内部所包含的定时/计

3、数器的数量已经成为衡量其功能的重要指标。,西华大学电气信息学院 郑海春,6,5.2 定时/计数器工作方式与原理,单片机的定时/计数器是硬件逻辑电路,它可以完成两种不同的工作方式 - “定时”、“计数”; 使用硬件电路,可以提高CPU的工作效率。,西华大学电气信息学院 郑海春,7,定时:产生一个标准的时间间隔;如20mS,100mS或1000mS等.单片机使用这种方式可以产生一个符合某一要求的脉冲方波(如下图)。,20mS,40mS,MCS-51 P x.y,输出波形,西华大学电气信息学院 郑海春,8,计数:对外部的事件(脉冲)进行统计。 外部事件的发生是随机的,单片机不可能预知外部事件何时发生

4、,但可以进行统计(计数)。当达到所要求的计数值时,单片机进行相应的操作。,MCS-51 T0 ( T1) 端口,外部脉冲,外部 设备,西华大学电气信息学院 郑海春,9,单片机检测产品数量示意图,P0口 MCS-51 T0,红外线 扫描 发射器,红外线 接收电路,产品包装 控制器,产品生产线,产品,传送带,西华大学电气信息学院 郑海春,10,定时/计数器 的基本模型,CY,计数脉冲 CP,溢出标志,8位的加一计数器,定时、计数器的核心部件是一个计数器。两种工作方式的区别在于计数脉冲来源;,西华大学电气信息学院 郑海春,11,MCS-51单片机 定时/计数器的工作原理,N位增量计数器,TF,N位初

5、值寄存器,系统内部 时钟fosc,启动控制 TR,外部脉冲 T0或T1引脚,定时/计数 控制C/*T,计数器溢出 中断信号,计数脉冲CP,C/*T=0,C/*T=1,定时、计数时间到标志,(1):何时控制启动计数器? 问题: (2):如何控制是定时还是计数? (3):如何控制定时/计数的长短?,西华大学电气信息学院 郑海春,12,TR.定时计数器的启动控制开关。 TR=1:计数器开始计数; TR=0:计数器停止计数。 C/T. 计数器输入脉冲选择开关,决定着计数器的 “定时” 或“计数”的两种工作方式。 C/T=0:计数器接收内部时钟信号fosc- 定时方式; C/T=1:计数器接收引脚上的外

6、部信号-计数方式。 TF. 计数器溢出标志。 TF=1 :定时或计数时间到,可以采用查询或中断方 式处理; 初值寄存器:预装用来决定计数器产生溢出周期的参数,此参数决定着定时或计数的周期。通常要预算并送入初值寄存器中。,西华大学电气信息学院 郑海春,13,5.3 定时/计数器的四种工作模式,在MCS-51单片机内部,具有两个完全相同的定时计数器T0、T1。 它们都具有两种工作方式:定时和计数; 无论是定时或计数方式,又都具备四种工作模式,以根据实际要求达到最佳的工作状态。 定时计数器的工作方式、工作模式是由SFR中的TMOD内容来决定的。因此对其方式、模式的设定是靠对TMOD的初始化编程实现的

7、。,西华大学电气信息学院 郑海春,14,模式0:13位计数器模式,TH1,TL1,震荡器,1/12,(8位),(低5位),TF1,中断,启动控制,T1 引脚,TR1,GATE,INT1,高三位弃用,C/*T=0,C/*T=1,13位加1计数器,在某一个初值的基础上加1计数,当计数器计满为全“1”,再来一个计数脉冲时,就产生一个“溢出中断信号”TF1=1。 由于低8位计数器中的高三位没有参与工作,故填装初值时应“避开”此三位。,西华大学电气信息学院 郑海春,15,类同于模式0。由于两个计数器为完整的8位,故将计算好的16位初值可直接填装到TH、TL中。,TL1,TH1,震荡器,1/12,(8位)

8、,(8位),TF1,中断,启动控制,T1 引脚,TR1,GATE,INT1,C/*T=0,C/*T=1,模式1 :16位计数器模式,16位加1计数器,西华大学电气信息学院 郑海春,16,模式0、1的特点,13位和16位的计数器模式。 启动后,从某一个初值的基础上进行“加一”计数。当计到“全”时再来一个计数脉冲,计数器就会产生一个“溢出”即TF=1,此时计数器本身为“全零”。 如果需要重复性的完成某一值的定时或计数,需要在每一次计数前不断的重新预装初值,称之为“软件重装初值”。,西华大学电气信息学院 郑海春,17,TL做计数器,TH做初值寄存器,工作前TL1,TH1分别预置相同的初值。 TL1计

9、数时, 产生溢出的同时, 将TH1中的初值自动重装TL1。TL1继续计数。,TL1(8位),TH1(8位),震荡器,1/12,TF1,中断,控制,T1 引脚,TR1,GATE,INT1,C/*T=1,C/*T=0,模式2 : 8位自动重装初值模式,8位加1计数器,8位初值寄存器,西华大学电气信息学院 郑海春,18,模式2的特点及应用,8位计数器的模式,定时或计数的范围远远小于模式0和模式1; 具备初值“硬件自动重装”功能,非常适合进行重复性定时的场合,如产生连续方波信号等。编成中省去了软件重装初值的麻烦 ; 在MCS-51单片机中,T1设定成此模式用于做串行口波特率发生器。,西华大学电气信息学

10、院 郑海春,19,将T0和T1重新进行“拆分、组合”。将T0变为由TH0,TL0组成的两个独立的8位定时/计数器。,TL0,震荡器,1/12,TF0,中断,控制,T0 引脚,TR0,GATE,INT0,C/*T=0,C/*T=1,TH0,TF1,中断,控制,TR1,Fosc/12,模式3 组合扩展模式(仅适用于T0),西华大学电气信息学院 郑海春,20,【注意】:TH0,TL0及T1的各自特点: 1, TH0计数脉冲来自内部fosc,所以它只能处于”定时”方式; 2, TH0分别借用了定时器T1的TR1和TF1为自己服务,使TH0能象TL0那样用TR1启动定时,并用TF1来作为TH0的溢出中断

11、的标志; 3, 此时,由于T1缺少了启动控制信号TR1和溢出标志TF1,那么在模式3时,T1是如何启动和工作? 4, 模式3就是将单片机原有的T0、T1两个计数器变成三个独立的计数器。其中T1要事先设定为模式2(串行口的波特率发生器)并启动起来。,西华大学电气信息学院 郑海春,21,在模式3时T0,T1的电路结构图,TL0八位定时/计数器,TH0八位定时器,TL1,TF0,TF1,将T0分解为两个计数器 TL0:8位定时/计数器; TH0:8位定时器(借用TR1和TF1),T1(模式2)做波特率发生器。 此种方式不用反复启动和查询标志,TH1,西华大学电气信息学院 郑海春,22,GATE 信号

12、的作用,GATE=0时:当TR1=1时,启动定时/计数工作。 一种定时计数器通常的工作方式; GATE=1且TR=1时: INT=1时,开始工作; INT=0时,计数器停止计数。 此方式用于测量INT脚上输入的正脉冲的脉宽。,TR0=1,GATE=1,/ INT0,0,1,1,0,0,启动计数器,西华大学电气信息学院 郑海春,23,定时/计数器4种模式比较(计数方式),西华大学电气信息学院 郑海春,24,定时/计数器4种模式比较(定时方式),T=(M-TC)t 其中,T: 定时时间,M: 计数器的模,TC:计数初值, t:计数器计数脉冲的周期(t = fosc/12)。,西华大学电气信息学院

13、郑海春,25,5.4 定时/计数器的控制和状态寄存器,GATE 选通门: GATE=0时,只要TR=1,计数器就开始工作; GATE=1时,只有INT=TR=“1”时,计数器工作 (用来测量INT脚高电平脉冲的宽度)。 C/T 计数、定时方式选择位: C/T=1时,计数方式。 C/T=0时:定时方式。 M1 、M0 模式选择:确定四种工作模式.,定时/计数器1,定时/计数器0,1.模式控制寄存器TMOD (SFR的地址:89H),西华大学电气信息学院 郑海春,26,TF0 定时器T0的溢出标志: 计数器溢出时硬件自动置位,即TF0=1。进入中断后再由硬件自动清除(TF0=0); TR0 计数器

14、T0的控制位: 由软件设定: TR0=1计数器开始工作; TR0=0计数器停止计数。 TF1、TR1同上。,2.控制寄存器TCON (SFR地址:88H),西华大学电气信息学院 郑海春,27,IE1,IE0 外部中断*INT1,*INT0的请求标志: 当单片机检测到INT引脚上有下降沿(或低电平)时,IE=1申请中断.进入中断服务程序时,硬件自动清除IE标志. IT1,IT0 外中断触发类型控制: IT=1时,外中断信号的下降沿触发IE标志; IT=0时,外中断信号的低电平触发IE标志。,控制寄存器TCON (SFR地址:88H),西华大学电气信息学院 郑海春,28,5.5 定时/计数器的初值

15、计算,计数器TH、TL中的初值TC决定着计数器溢出的时间。 根据具体的实际应用的需要,计算出对应的TC值是对定时/计数器初始化的重要步骤; 初值TC的大小与系统的工作频率fosc和定时计数器的工作模式有关。,西华大学电气信息学院 郑海春,29,(一)计数器工作方式下的TC计算,TC=M-C 其中:M-计数器的模 模式0: M=213=8192 模式1: M=216=65536 模式2,3:M=28=256 C - 要求的计数值,西华大学电气信息学院 郑海春,30,(二)定时工作方式下的TC计算,TC=M-T/ T计数 其中: M-计数器的模 模式0: M=213=8192 模式1: M=216

16、=65536 模式2,3: M=28=256 T计数 -计数周期(即机器周期)=(1/fosc)12 T - 要求的定时时间值,西华大学电气信息学院 郑海春,31,TC 计算举例(一),计数方式:要求每计100个脉冲定时器产生一次溢出。 【解1】选择模式2。TC=256-100=156=9CH MOVTH0,#9CH MOVTL0,#9CH 【解2】选择模式1。TC=65536-100=65436=FF9CH MOVTH0,#0FFH MOVTL0,#9CH 【思考题】若选用模式0,TC=?,如何编写指令?,西华大学电气信息学院 郑海春,32,TC 计算举例(二),定时方式:要求T0产生50m

17、S的定式。 【解1】选择模式1。 TC=M-T/ T计数 TC =65536 (50mS*1000)/1S =65536 50000 =15536=3CB0H MOVTH0,#3CH MOVTL0,#0B0H 【思考题】为什么选择模式1?,西华大学电气信息学院 郑海春,33,5.6 定时/计数器的应用,学习定时/计数器的编程方法: 首先,根据实际应用,确定: 工作方式的选择(定时或计数?); 工作模式的确定(取决于定时或计数的范围); 计算初值并装载TH、TL寄存器中; 启动定时器开始工作。 上述操作主要体现在对TMOD、TCON的初始化。,西华大学电气信息学院 郑海春,34,(一)定时器方式

18、1应用举例,利用单片机的P1.0产生一个频率为100HZ的对称方波。 【解】:使用T0。确定工作方式、工作模式和定时初值。 1.选择定时方式(C/T=0); 2.选择模式1(M1 、M0=01) , 3.计算初值TC 。TC= 65536 - 5ms /1us=60536=EC78H 即TH=0ECH,TL=78H。 4.试编程。,10ms,5 ms,5 ms,西华大学电气信息学院 郑海春,35,用单片机设计一个方波发生器示意图,MCS-51 P1.0,TMOD 0000 0001,TCON,西华大学电气信息学院 郑海春,36,ORG 0030H STRAT:MOV TMOD,#01H ;设定

19、时器为定时,模式1 SETB TR0 ;启动定时器T0 LOOP:MOV TH0,# 0ECH ;设定时初值 MOV TL0,# 78H JNB TF0,$ ;定时时间到? CLR TF0 ;清T0标志 CPL P1.0 ;P1.0取反 SJMP LOOP ;循环继续 END,程序清单(查询法),西华大学电气信息学院 郑海春,37,程序流程图(查询法),设定T0的模式,启动T0,设定定时初值,TF0=0,清标志,CPL P1.0,Y,N,西华大学电气信息学院 郑海春,38,思考题:若采用模式0如何编程?,模式0时(13位模式): TC= 8192 - 5ms /1us=3193=0C78H =

20、0000 1100 0111 1000 B =01100 01111000 B,高8位TH0 低5位TL0,MOVTH0,#63H MOVTL0,#18H 【注意】低8位中的高三位用0来填充,即00011000,西华大学电气信息学院 郑海春,39,(二)定时器方式1应用举例,利用P1.0口线输出周期为2S的方波。 【解】如何产生1S(1000ms)的定时? 1000ms的定时由50ms累计20次。 1, 选择T0且设定为定时方式,模式1。 2, TC=65535-50ms/1us=3CB0H 3, TMOD控制字为:00000001B=01H 4, T0采用中断方式,既每50ms产生一次 中断

21、,中断20次便是1S。,软件重装初值,R0=0?,N,Y,CPL P1.0,2 S,1S,1S,P1.0,20 R0,R0-1R0,RETI,BRT0,中断服务程序,西华大学电气信息学院 郑海春,40,ORG 0000H LJMP START ORG 0030H START:MOV TMOD, #01H;设T0为定时方式,模式1 MOV TH0 , #3CH;50mS定时初值 MOV TL0 , #0B0H SETB TR0;启动定时器T0 MOV R0 , #14H;计数器R0赋初值20 LOOP:JNB TF0, $;等待50mS定时 BRT0:DJNZ R0, NEXT; 定时到计数器R0减一,R00,转NEXT CPL P1.0;P1.0输出取反 MOV R0, #14H;计数器R0重赋初值20 NEXT:MOV TH0, #3CH;软件重装初值 MOV TL0, #0B0H SJMP LOOP;返回LOOP继续 END,查询方式编程,西华大学电气信息学院 郑海春,41,(三)定时器门控位GATE的应用,如果GATE=1, TR=1时电路是否计数取决于/INT0: /INT0=1 时开始计数;/INT0=0,电路停止计数。 利用这一特点,可以实现测量外部脉冲的宽度。,计数器,震荡器,1/12,T

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论