




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章定时器及其应用,计量测试工程学院陆艺,计量测试工程学院陆艺,实现定时一般有三种方法:l利用软件实现(延时程序);优点:简单,控制方便;缺点:CPU效率低。l硬件实现,专门设计一个单稳态定时器:优点:CPU效率高;缺点:修改参数麻烦。l利用计数器实现,溢出,计算机一般利用第三种方法实现,1us,8位,256us,计量测试工程学院陆艺,6.1定时器结构与工作原理,一、定时器的结构,定时器/计数器的核心部件是两个16位的二进制加1计数器(TH0、TL0或TH1、TL1),TH0(84H)和TL0(8AH),TH1(8DH)和TL1(8BH),1、T0、T1工作模式,定时功能-计数输入信号是内部时钟脉冲,每个机器周期使计数器加1。计数频率是振荡频率的1/12。,计数功能-计数脉冲来自外部输入引脚,T0为P3.4、T1为P3.5,在TMOD中,各有一个控制位(CT),分别用于控制定时/计数器T0和T1是工作在定时器方式还是计数器方式。,计量测试工程学院陆艺,2.定时/计数器是一个二进制的加1计数器,当计数器计满回零时能自动产生溢出中断请求,表示定时时间已到或计数已终止。,T0、T1高8位和低8位,预置T0、T1的值。TMOD控制T0、T1工作方式。TCON控制T0、T1启动运行并记录溢出标记。,计量测试工程学院陆艺,二、工作原理,定时:计数输入信号来自内部振荡信号。注意这里的振荡信号是振荡频率的12分频。例如12MHz晶振,计数周期为?,计数:计数输入信号来自外部振荡信号。P3.4,P3.5引脚上的。外部来一个脉冲,T0、T1自增1.这里要注意对外部脉冲的要求:,脉冲的高电平及低电平均应保持一个机器周期以上。,计量测试工程学院陆艺,6.2定时器/计数器的方式寄存器和控制寄存器,1控制寄存器TCON,已讲过,见第5章,中断请求标志,触发方式选择,启动定时/计数器,0低电平1下降沿,0停止1启动,计量测试工程学院陆艺,2工作方式控制寄存器TMOD,T1控制,T0控制,M1M0工作方式选择:00:方式0,13位定时器/计数器01:方式1,16定时器/计数器10:方式2,8位自动重装定时器/计数器11:方式3,定时器T0分成2个8位计数器定时器T1停止计数,C/T:定时器/计数器选择:“0”:定时器“1”:计数器,计量测试工程学院陆艺,T1控制,T0控制,GATE:门控位:确定INT0是否参与对计数器T0的控制“1”:由TR0和引脚INT0共同控制启动“0”:仅由控制位TR0启动,GATE=1时,常用来测量INT0引脚上正脉冲的宽度。此时计数器同时受TR0、INT0控制,两者同时为1时,T0才计数。注意:这里INT0不再作为中断请求输入线。,计量测试工程学院陆艺,6.3定时器/计数器的4种工作方式,一、方式0,M1M0=00时为方式0,13位计数器,13位计数器,TH提供高8位,TL提供低5位。,计数脉冲输入,TH0TL0,8位,低5位,13位计数器,定时器,计数器,计量测试工程学院陆艺,TF0,T0,TR0,GATE,INT0,1,1,&,C/T=1,振荡器,1/12,C/T=0,TH0TL0,8位,低5位,13位计数器,TL中高3位弃之不用13位计数器,TL1低5位计数溢出后,向TH进位,计满为零时,置TF0为1,向CPU发出中断请求,进入定时中断子程序,若要再次计数,必须在中断中重装初值。,计量测试工程学院陆艺,二、方式1,M1M0=0116位计数器,高8位TH和低8位TL组成。,工作情况同方式0。最大定时/计数值是方式0的8倍。,计量测试工程学院陆艺,三、方式2,M1M0=10自动装载的8位计数器,常用作波特率发生器,例如对T0来说,T0被分拆位1个8位计数器TL0和一个赋值寄存器TH0,TL0假如计满以后,发出中断请求,同时从TH0中重新获得初值并启动计数。,注意:不同于前两种方式,软件为它们重装定时初值/计数初值,方式2自动装载。,计量测试工程学院陆艺,四、方式3,M1M0=112个8位计数器(仅限于T0),前三种工作方式下,T0和T1功能完全相同的。方式3中,T0和T1的功能不同,T0:TL0定时/计数都可以,TR0(启动),TF0溢出中断标志。TH0只能定时模式运行,借用T1的控制位TR1和TF1。,T1:已没有控制位可以用了,不产生中断请求,经常用在不要求中断控制的场合,串口的波特率发生器。,计量测试工程学院陆艺,值得注意的是:T1假如选择方式3,T1将停止工作,T0假如选择方式3,T1可工作在方式0、1、2,只是没有中断请求。,计量测试工程学院陆艺,6.4定时器/计数器应用,一、定时器/计数器的初始化,1.初始化步骤,(1)确定工作方式,即对方式寄存器TMOD赋值。(2)预置定时或计数初值,直接将初值写入TL0、TH0或TL1、TH1中。(3)根据需要对中断允许寄存器有关位赋值,以开放或禁止定时器/计数器溢出中断。(4)启动定时器/计数器,使TCON中的TR1或TR0置1,控制计数器按确定的工作方式和初值开始计数或定时。,2.计数器初值的计算。在一个数的基础上计数计数模式下:X=M计数值,计数初值,计数器模值,方式0:213,方式1:216,方式2:28,方式3:28,(最大计数值),计量测试工程学院陆艺,3.定时初值的计算:,(MX)*T=定时时间,故,X=M定时时间T,X预定初值T机器周期的长度,单片机时钟周期的12倍。,例6-1:若单片机晶振为6MHz,要求使用定时器T1产生200s定时,试计算定时的初值。,解:由于T=2s,产生200s定时,则需要加1共100次,定时器方能产生溢出。(1)采用方式0:X213(200*10-6/(2*10-6)819210080921F9CH1111110011100B由于在方式0中TL1高3位是不用的,可设为全0,X的低5位装入TL1的低5位,X的高8位装入TH1,即TL1=1CH,TH1=0FCH。,计量测试工程学院陆艺,(2)采用方式1:X216(200*10-6/(2*10-6)65536100654360FF9CH即:TH1=0FFH,TL1=9CH。采用方式1时,时间常数(初值)的处理要相对简单。(3)若采用方式2:X28(200*10-6/(2*10-6)2561001569CH在方式2时,TL1为计数初值,TH1为计数溢出时的自动装入初值,通常可实现连续定时工作,TH1=TL1=9CH。,注意:最大定时时间的问题。也就是X=0时,定时时间为最大。设晶振为12MHz,则最大定时时间为:方式0:Tmax=2131us=8.192ms方式1:Tmax=2161us=65.536ms方式2、3:Tmax=281us=0.256ms,计量测试工程学院陆艺,二、应用举例,例6-2:设8051系统中,主频为12MHz,要求利用定时器T1定时,使得P1.1引脚输出周期为4ms的方波。,解:利用P1.1引脚输出信号周期为4ms的方波,只要使P1.1每隔2ms改变一次电平,故定时值应为2ms。由于fosc=12MHz,所以计数间隔T=1s。(1)定时器T1工作在方式0,即13位计数器。定时初值:X=M计数次数2132*10-3/10-6=819220006192=1100000110000B。由于TL1的高3位不用,可得到:TH1初值为0C1H,TL1初值为10H。,方式字TMOD可设为00H,采用中断方式工作的源程序如下:,计量测试工程学院陆艺,ORG0000HLJMPMAINORG001BHLJMPTF1INTORG0030HMAIN:MOVTMOD,#00H;T1按方式0,定时器状态工作MOVTH1,#0C1H;给T1赋初值MOVTL1,#10HSETBET1;T1溢出中断允许SETBTR1;启动T1工作SETBEA;CPU开中断HERE:SJMPHERE;模拟主程序TF1INT:CLRTR1;T1中断入口MOVTH1,#0C1H;重装T1初值MOVTL1,#18HSETBTR1CPLP1.1;由P1.1输出方波RETI;中断返回,计量测试工程学院陆艺,(2)定时器T1工作在方式1,即16位计数器。定时初值:XM计数次数2162*10-3/10-665536200063536F830H。可得到:TH1初值为0F8H,TL1初值为30H。,方式字TMOD可设为10H,采用查询方式的源程序如下:,MAIN:MOVTMOD,#10H;T1按方式1,定时器状态工作LOOP:MOVTH1,#0F8H;T1赋初值MOVTL1,#30HSETBTR1;启动T1工作NOPWAIT:JNBTF1,WAIT;等待T1溢出CLRTF1;清零溢出标志位CPLP1.1;由P1.1输出方波CLRTR1SJMPLOOP,计量测试工程学院陆艺,(3)定时器T1工作在方式2,即8位计数器。由于T1工作在方式2时最大的计数次数为256次,而定时2ms需要计数2000次,因此,直接一次定时不能达到,可以采用每次定时0.2ms,定时10次来实现。定时初值:X=M计数次数282*10-4/10-6=56=38H。可得到:TH1和TL1初值均为38H。方式字TMOD可设为20H,采用查询方式的源程序如下:MAIN:MOVTMOD,#20H;T1按方式2,定时器状态工作MOVR3,#10;设置0.2ms定时10次MOVTH1,#38H;T1赋初值MOVTL1,#38HSETBTR1;启动T1工作NOPLOOP:JNBTF1,LOOP;等待T1溢出CLRTF1;清零溢出标志位DJNZR3,LOOP;2ms定时到MOVR3,#10CPLP1.1;由P1.1输出方波SJMPLOOP,试改成中断方式编程?,计量测试工程学院陆艺,例6-3:应用8051的定时器T0监测生产流水线的工件数量,每生产1个工件产生一个计数脉冲至P3.4(T0),每生产100个工件,由P1.0发出一个5ms的低电平脉冲,控制包装设备将其包装成一箱,8051的工作时钟为12MHz。,解:用T0作计数器,记录工件数量,用T1作定时器,当T0计数满100时在P1.0脚输出一个5ms低电平脉冲,控制包装设备打包。选择T0为计数器,工作方式2;选择T1为定时器,工作方式1。(1)方式字TMOD为00010110B=16H。(2)T0计数初值X0281009CH,因此T0初值为:TH0TL09CH。(3)T1定时初值X12165*10-3/10-6655365000605360EC78H,因此T1初值为:TH10ECH,TL078H。,计量测试工程学院陆艺,ORG0000HLJMPMAINORG000BHLJMPT0INTORG001BHLJMPT1INTMAIN:SETBP1.0;P1.0输出为高MOVTMOD,#16H;置T0、T1的工作方式MOVTH0,#9CHMOVTL0,#9CH;计数初值送计数器SETBEA;CPU开中断SETBET0;T0开中断SETBET1;T1开中断SETBTR0;启动T0HERE:SJMPHERE;模拟主程序T0INT:MOVTH1,#0ECH;置T1定时5ms初值MOVTL1,#78HCLRP1.0;P1.0输出低电平SETBTR1RETI;中断返回T1INT:SETBP1.0;定时5ms时间到,P1.0恢复为高电平CLRTR1;T1停止工作RETI;中断返回,计量测试工程学院陆艺,例6-4:用GATE控制位,测量(P3.3)引脚上正脉冲的宽度。假设晶振频率为12MHz,被测正脉冲宽度小于65ms。解:门控位GATE=1时,定时器T1的启动计数受到(P3.3)外部引脚输入电平的控制。如图6-6,测量(P3.3)引脚的正脉冲的宽度时,只要利用T1从脉冲的上升沿开始计数,下降沿停止计数,获得计数值乘以计数间隔即可得到脉冲宽度时间值。由fosc=12MHz,可得到计数间隔T=1s,因此,计数值即为脉冲宽度时间值,单位为s。选择T1为定时器模式,工作方式1,GATE=1,则TMOD=10010000B=90H。,图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽保安员考试题库及答案
- 标准化合同范本与审批流程工具
- 农贸市场管理软件采购合同
- 家庭农场综合经营承包合同
- 社区初级考试题库及答案
- 采购合同审查与验收标准流程表
- 钣金工技能考试题及答案
- 天津高铁安检考试题及答案
- 乌鲁木齐物理课标考试真题及答案
- 诏安中考模拟考试题目及答案
- 内蒙古自治区房屋修缮工程预算定额-附件2:第一册结构工程
- 五年级信息科技上全册教案 浙教版2023年
- 2024四川蜀道高速公路集团有限公司工程及安全人员社会招聘笔试参考题库附带答案详解
- 律师事务所投标管理办法
- 钢材压延加工成型工艺研究
- 体能训练课件
- 汽车新零售行业报告
- 传染病的病例溯源与传播链分析
- 乡村振兴志愿服务技能大赛参考试题库(含答案)
- 《全面质量管理》习题集(新时代全面质量管理知识普及教育全国指定教材)
- 合成木托盘检验报告
评论
0/150
提交评论