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

下载本文档

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

文档简介

,第5章定时/计数器5.1定时/计数器0和15.2定时/计数器25.3定时/计数器的应用,在控制系统中,通常需要定时、延时、计数的功能,可以采用下面三种方法:1、软件定时:软件定时不占用硬件资源,但占用了CPU时间,降低了CPU的利用率。2、采用时基电路定时:例如采用555电路,外接必要的元器件(电阻和电容),即可构成硬件定时电路。但在硬件连接好以后,定时值与定时范围不能由软件进行控制和修改,即不可编程。3、采用可编程定时器定时:这种定时器的定时值及定时范围很容易用软件来确定和修改,定时功能强,使用灵活。MCS-51系列单片机定时器:T0T1MCS-52系列单片机定时器:T0T1T2,图5-1定时/计数器的结构,5.1定时/计数器0和15.1.1定时/计数器的结构及功能1、定时/计数器的结构定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。,图5-1定时/计数器的结构,2、T0和T1的功能选择(1)计数功能就是对外部事件进行计数。计数脉冲来自相应的外部输入引脚T0(P3.4)或T1(P3.5)。当输入信号发生由1至0的负跳变时,计数器(TH0,TL0或TH1,TL1)的值增1。计数的最高频率一般为振荡频率的1/24。(2)定时功能也是通过计数实现的。计数脉冲来自内部时钟脉冲,每个机器周期计数值增1,每个机器周期=12个振荡周期,因此计数频率为振荡频率的1/12。所以计数值乘以机器周期就是定时时间。,5.1.2定时/计数器0和1的控制状态寄存器MCS-51系列单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD:定时/计数器的工作方式控制寄存器,确定工作方式和功能;TCON:定时/计数器的控制寄存器,控制T0、T1的启动和停止及设置溢出标志。1、工作方式寄存器TMOD工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。TMOD寄存器的单元地址为89H,不能位寻址。其格式如下:,控制T1,控制T0,(1)GATE位:门控位。GATE=1,定时器的计数受到外部引脚输入电平的控制(INTO控制T0,INT1控制T1),只有INTO(P3.2)或INT1(P3.3)为高电平且TR0或TR1置1时,相应的定时/计数器才被选通工作,称为外部控制;GATE=0,则只要TR0和TR1置1,定时/计数器就被选通,称为内部控制。(2)C/T位:计数/定时功能选择位。C/T=0,设置位定时器方式,计数器的输入是内部时钟脉冲,其周期等于机器周期。C/T=1,设置为计数器方式,计数器输入来自T0(P3.4)或T1(P3.5)端外部脉冲。,模式1。TLX与THX构成16位计数器。计满溢出时,16位计数器回零。,模式2。8位自动重装载的定时/计数器,每当计数器TLX溢出时,THX中的内容重新装载到TLX。,(3)M1、M0位:工作模式选择位。2位形成4种编码,对应4种工作模式。见表5-1。,TF1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU可随时查询TF1的状态。所以,TF1可用作查询测试的标志。(TF1也可以用软件置1或清0)TR1(TCON.6):T1运行控制位。TR1置1时,T1开始工作;TR1置0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/计数器的启动与停止。TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。TR0(TCON.4):T0运行控制位,其功能与TR1类同。,2、控制寄存器TCONTCON的低4位用于控制外部中断,高4位用于控制定时/计数器的启动和中断申请。字节地址为88H,位地址为88H8FH。格式如下:,3、定时/计数器的初始化1)对TMOD赋值,以确定定时器的工作模式;2)置定时/计数器初值,直接将初值写入寄存器的TH0、TL0或TH1、TL1;3)根据需要,对IE置初值,开放定时器中断;4)对TCON寄存器中的TR0或TR1置位,启动定时/计数器,置位以后,计数器即按规定的工作模式和初值进行计数或开始定时。,初值计算:设计数器的最大值为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,图5-3定时/计数器1工作模式0(13位计数器),5.1.3T0和T1的4种工作模式1、模式0方式0为13位计数,由TL0的低5位(高3位未用)和TH0的8位组成。TL0的低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求。计数个数与计数初值的关系为:X=213-N,2、模式1方式1的计数位数是16位,由TL0作为低8位、TH0作为高8位,组成了16位加1计数器。计数个数与计数初值的关系为:X=216-N,计数个数与计数初值的关系为:X=28-N工作方式2特别适合于用作较精确的脉冲信号发生器。,3、模式2方式2为自动重装初值的8位计数方式。,TL0(8位),1,T0引脚,振荡器,12,TR0,GATE,控制,1/12fOSC,1/12fOSC,4、模式3方式3只适用于T0,T0分成为两个独立的8位计数器TL0和TH0。定时/计数器T1处于方式3时相当于TR1=0,停止计数。,5.3定时/计数器的应用5.3.1定时/计数器模式0的应用【例5-1】试利用T0产生周期为1ms、宽度为一个机器周期的负脉冲串,并由P1.0送出。设系统晶振为12MHz,则计数频率为1MHz。设计数初值为X,则由(M-X)T=定时值即(213-X)10-6=110-3得:X=7192=1110000011000B。高8位给TH0,低5位给TL0,则TH0=0E0H,TL0=18H。,采用查询方式,编程如下:MOVTMOD,00H;设置定时器0模式0MOVTH0,0E0H;设置计数初值MOVTL0,18HSETBTR0;启动定时器0T0INT:JNBTF0,T0INTCLRTF0CLRP1.0SETBP1.0MOVTH0,0E0H;用软件重新装载T0MOVTL0,18HSJMPT0INT,5.3.2定时/计数器模式1的应用【例5-2】利用T0模式1产生一个50Hz的方波,由P1.0输出。设系统晶振为12MHZ,则计数频率为1MHZ,计数器初值为X,由(M-X)T=定时值(216-X)10-6=1/(502)得:X=55536=0D8F0H。高8位0D8H给TH0,低8位0F0H给TL0。,采用查询方式,编程如下:MOVTMOD,01H;设置定时器0模式1SETBTR0;启动定时器0LOOP:MOVTH0,0D8H;设置计数初值MOVTL0,0F0HJNBTF0,CLRTF0CPLP1.0SJMPLOOP,5.3.3定时/计数器模式2的应用【例5-3】利用T1模式2进行计数,每计200次进行累加器加1操作。计数初值:X=M-计数值=28-200=56D=38H采用查询方式,编程如下:MOVTMOD,60H;设置T1模式2计数功能MOVTH1,38H;保存计数初值MOVTL1,38H;设置计数初值SETBTR1;启动计数DEL:JBCTF1,LOOP;查询是否计数溢出AJMPDELLOOP:INCAAJMPDEL,5.3.4定时/计数器门控位GATE的应用【例5-4】利用T0的门控位GATE,编程实现检测外部输入脉冲的宽度。解:外部脉冲由INT0(P3.2)输入,其宽度为TP,如图5-8。T0工作于定时方式,模式1。测试时,当INT0=0时,TR0=1;当INT0=1时,启动计数;当INT0=0时,停止计数。使TR0=0,读出TH0、TL0的计数值,用计数值乘以定时脉冲周期即得被检测正脉冲的宽度TP。,图5-8利用GATE功能来检测脉冲的宽度,编程如下:MOVTMOD,09H;设T0为模式1,定时方式,GATE=1MO

温馨提示

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

评论

0/150

提交评论