第六章-定时器计数器_第1页
第六章-定时器计数器_第2页
第六章-定时器计数器_第3页
第六章-定时器计数器_第4页
第六章-定时器计数器_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、第六章 定时器/计数器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,并申请

2、中断。定时器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 完全相同,可定时亦可计数。

3、此时TH0只可用做简单的内部定时功能。它占用原定时器Tl的控制位TRl和TFl,同时占用Tl的中断源,其启动和关闭仅受TRl置1和清0控制。6·3 定时器/计数器用做定时方式时,其定时时间与哪些因素有关?作计数时,对外界计数频率有何限制?答: 定时器/计数器用做定时方式时,其定时时间与时钟周期、计数器的长度(如8位、13位、16位等)、定时初值等因素有关。作计数时,外部事件的最高计数频率为振荡频率(即时钟周期)的1/24。 6·4 当定时器T0用做方式3时,由于TR1位已被T0占用,如何控制定时器T1的开启和关闭?答:定时器T0用做方式3时,由于TRl位己被T0占用,此时通

4、过控制位C/T切换其定时器或计数器工作方式。当设置好工作方式时,定时器1自动开始运行;若要停止操作,只需送入一个设置定时器 1为方式 3的方式字。65 己知80C51单片机系统时钟频率为6 MHz,请利用定时器T0和Pl。2输出矩形脉冲 ,其波形如下 :答:设置 T0为方式 2定时,定时 50us,初值 X 为 :X=28(6× 106×50×10-8 ÷12= 231D= E7HTH0= TL0=E7H ,TMOD= 2H源程序如下:MOV TMOD,#02H ;设置T0为方式2定时MOV TH0,#E7H ;赋初值MOV TL0,#E7HSETB T

5、R0 ;启动T0工作LI: SETB Pl.2MOV R0,#7 ;低电平延时计数器致初值DEL:JBC TF0,REP ;查询计数溢出AJMP DELREP:CLR Pl.2DJNZ R0,DELAJMP L166 在80C51单片机中,己知时钟频率为12MHz,请偏程使Pl·0和Pl·1分别输出周期为2ms和500us的方波。答:方法1:选用定时器0定时,工作方式设为3,用TL0作为8位定时器,产生250us的定时,定时初值X为:X=28-(12×106×250×10-6÷12=6TH0=TL0=6H,TMOD=3H源程序如下MO

6、V TMOD,#3H ;设置T0为方式3定时MOV TL0,#6H ;赋初值SETB TR0 ;启动T0工作LP: MOV R0,#4 ;Pl·0延时计数器置初值DEL:JBC TF0,REP ;查询计数溢出AJMP DELREP: MOV TL0,#6H ;重新赋初值CPL Pl.1LI: DJNZ R0,DELCPL Pl.0AJMP LP方法2:选用定时器1定时250us,工作方式设为2,用TLl作为8位定时器,产生250us的定时,定时初值x为:X=28-(12×106×250×10-6-12=6TH1=TL1=6H,TMOD=20HMOV TM

7、OD,#20H ;设定时器1为方式2MOV THl,#06H ;赋250us初值MOV TLl,#06HSETB TR1EX6_RPTAMOV R2,#04HEX6_RPTB,JNB TFl,$CLR TF1CPL Pl.1 ;每250usPl.1反转一次DJNZ R2,EX6_RPTBCPL Pl.0 ;Pl.1反转4次,Pl.0反转一次LJMP EX6_RPTA ;循环6·7设系统时钟频率为6MHz,试用定时器T0作外部计数器,编程实现每计到1000个脉冲,使T1开始2ms定时,定时时间到后,T0又开始计数,这样反复循环不止。答:按题目要求编程如下:MOV TMOD,#15H ;

8、设定时器1为定时方式1;定时器0为外部计数方式1EX7.RPT:MOV TH0,#0FCH ;定时器0赋1000的计数初值MOV TL0,#018HSETB TR0 ;启动定时器。JNB TF0,$ ;查询计数溢出CLR TR0 ;关定时器。CLR TF0 ;清溢出标志MOV THl,#0FCH ;定时器1赋2mS初值MOV TLl,#018HSETB TRl ;启动定时器1JNB TFl,$ ;查询计数溢出CLR TR1 ;关定时器1CLR TF1 ;清溢出标志LJMP EX7_RPT ;循环6·8 利用80C51单片机定时器/计数器测量某正脉冲宽度,己知此脉冲宽度小于l0ms,主

9、 机频丰为12MHz。编程测量脉冲宽度,并把结果转换为BCD吗顺序存放在以片内 50H单元为首地址的内存单元中(50H单元存个位。答:按题目要求编程如下:MOV TMOD,#t09H ;设定时器0为带门控位方式1MOV TH0,#00H ;赋初值MOV TL0,#00HJNB INT0,$ ;等待INTO(P3.2变高SETB TR0 ;启动定时器0JB INT0,$ ;等待INTO(P3.2变低CLR TR0 ;停止计数CODE_CHANGE:MOV A,TH0 ;取计数结果MOV B,TL0MOV R0,#53H ;千位存储单元地址MOV R6,#03H ;除以1000,并保存千位MOV R5,#0E8HLCALL SUMMOV R6,#00H ;除以100,并保存百位MOV R5,#64HLCALL SUMMOV R6,#00H ;除以10,并保存十位MOV R5,#0AHLCALL SUMXCH A,B ;最后余数为个位,并保存MOV R0,ALJMP $;除法子程序;入口:ACC(高字节B(低字节除以R6(高字节R5(低字节;出口:商送人R0,余数高字节

温馨提示

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

评论

0/150

提交评论