服务分类
联系我们

长沙市华融劳务派遣有限公司 
电话:0731-88084518
传真:0731-88084518
手机:15111173115
联系人:陈先生
邮编:410200
网址:http://www.jsztjsgy.com
地址:长沙市望城县高塘岭镇郭亮南路49号

 

明仕国际娱乐
明仕国际娱乐_明仕国际娱乐平台_明仕国际娱乐官网
作者:admin  来源:未知 阅读: 次 时间:2017-02-08 21:29 字体:[  复制 打印 网址

第五章定时器计数器一、定时器计数器的功能:1.定时器的功能:定时发出脉冲信号,向CPU申请中断,其定时间隔的长短及起始控制的时间均可由程序控制。例如某机械零件的热处理工艺曲线为:温度开始定时保温5分钟淬火清洗开始定时回火3小时2.计数功能:对发生的事件计数,当达到程序的计数值时,输出一脉冲信号,申请中断。例如一啤酒生产线,如下图所示24瓶光电信号24瓶装完申请中断转入中断服务程序装箱输送带二.8031单片机的定时器计数器控制8031片内有两个16位定时器计数器,称为T0,T1,与其有关的特殊功能寄存器SFR有:1.方式控制字TMODT1T0GATEM1M0GATEM1M0字节地址89HGATE:门控位计数M1M0:00方式0定时01方式110方式211方式32.定时器控制寄存器TCON字节地址88H可位寻址TF1TR1TF0TR0IE1IT1IE0IT0对T1控制与中断有关下章介绍TR0置1则启动中断响应后自动清0T0溢出中断标志MOVTMOD#06H门控位为0T1方式0T0方式2定时功能计数功能只要用SETBTR0,SETBTR1即可启动T0T1开始工作。3.控制定时器计数器长度的寄存器TL0TH0TL1TH1用于存放计数初值,它是加1计数器,溢出中断。它们的字节地址TH1(8位)TL1(8位)TH0(8位)TL0(8位)8DH8BH8CH8AH控制定时器计数器时,计数长度可分别选择8位,16位,13位,与工作方式有关。注意它是加1计数器,例如选择8位计数器,最大可存255,如果置入初值250,则计数6次即溢出中断。三.8031单片机定时器计数器的四种工作方式:以T0为例1.方式013位计数器TH0高8位TL0低5位TL0高3位无用讨论定时方式选择T0方式0定时,TMOD的低4位为:例如:要求从P1.0脚发出周期为2ms的方波只要选T0定时间隔1ms求反P1.0即可满足。定时工作方式中令计数器加1的周期是每个机器周期加1,即每隔12/f高电平1ms低电平1ms设定时器时间为X则有X)(12/f)=1ms设f=6MHZ13-X)(12/610)=110-3X=8192500=76927692=1E0CH01100B01100TH0=F0HTL0=0CH即共加500次,每次耗费2μs,共耗费时间1ms讨论计数方式:例如前述的啤酒生产线,计数24瓶中断转入装箱程序。选T1方式0计数,TMOD的高4位为:=24X=819224=81688168=1FE8H01000B01000TH1=FFHTL1=08H加24次即溢出中断。程序如下:10ORG0000HAJMPMAINORG000BHAJMPIT0PORG001BHAJMPIT1PMAIN:MOVSP,#60HMOVTMOD,#40H;T0方式0定时,T1方式0计数MOVTH0,#0F0HMOVTL0,#0CH;T0定时1ms时间MOVTH1,#0FFHMOVTL1,#08H;T1计数24次初始11SETBTR0;启动T0开始定时SETBTR1;启动T1开始计数SETBEA;允许CPU中断SETBET0;允许T0中断SETBET1;允许T1中断HERE:AJMPHERE;等待IT0P:MOVTH0,#0F0H;重装时间MOVTL0,#0CHCPLP1.0;P1.0求反,输出方波RETIIT1P:122.方式116位计数器方式1与方式0唯一的区别是计数器是16位,即TL8位,TH8位,因此,计算时间的公式中13应改为216,上述程序如改用方式1,则计算为:定时16-X)(12/f)=110-3TH0=FEH,TL0=0CH计数X=FFE8H即TH1=FFH,TL0=E8H程序中的TMOD赋值相应改为方式1133.方式28位计数器,能自动重装时间,定时准确TL0作为8位计数器,当TL0计数溢出中断时,在置1溢出中断标志TF0的同时,自动将TH0中所装的原初始送TL0,使TL0从原初始开始重新计数。初始化时在TL0、TH0中装入同样的初始,TH0即记忆了该初始,因此在中断服务程序中不必重装时间,省去了重装时间的时间,因此定时准确。–X)12/f=定时间隔计数计数次数144.方式3三个8位定时器计数器方式3只适用于T0TL0作为8位定时器计数器,使用T0的C/T、GATE、TR0TF0,可定时亦可计数,外部计数脉冲从T0引脚输入,TR0置1启动。TH0可单独用作8位定时器,不能用作外部计数。置1TR1即可启动,溢出中断时将TF1置1,即它占用了T1的启动位和中断源。TH1TL1当定时器T0定义为工作方式3时,定时器T1常用作串行口的波特率发生器,T1仍可选择方式0、1、2,用TL1、TH1分别作为13、16、8位计数器,可以改变不同的波特率范围。此时的T1不能使用中断源。156MHZ分析:TMOD设定T0方式0计数,T1方式1定时T0计数初始00BTH0FAHTL000HT1定时初始50109E58HTH19EHTL158H16程序段如下:MOVSP,#60H;建立堆栈MOVTMOD,#14H;T0方式0计数,T1方式1定时MOVTL0,#00H;T0计数192次初始MOVTH0,#0FAHMOMOVTL1,#58H;T1定时50ms时间MOVTH1,#9EHSETBTR0;启动T0开始计数SETBTR1;启动T1开始定时SETBEA;以下3条指令与中断有关下章介绍SETBET0SETBET117四.关于定时器的小结与补充:1.关于定时计数两种功能:8031单片机具有T1、T0两个定时器计数器,并分别具有定时和计数两种功能。0选择定时功能,此时令计数器加1的脉冲信号是由机内提供的等间隔的信号,每隔一个机器周期加1,即每隔12/f1选择计数功能,此时令计数器加1的脉冲信号由外部输入,即从8031的T0和T1(8031的14脚和15脚)输入,当被计数的外部事件发生一次,则产生一个脉冲信号从T0或T1引脚输入,令计数器加1,该脉冲信号的速率决定与外部事件的发生速率,不一定等间隔。定时和计数的主要区别是令计数器加1的脉冲信号来源不同。18振荡器THTLTF1中断GATEINT1TR1控制12T1端与门192.初始X的计算公式:定时:定时间隔计数:=13、16、8、8203.定时间隔和计数的范围:以6MHZ晶振为例方式013位计数器最大定时间隔为:当X=0000H时13210-616.384ms最小定时间隔为:当13位计数器全1,即XFF1FH或FFFFH时1~8192方式116位计数器最大定时间隔为:当X=0000H时16210-6=65536210-6=131.072ms最小定时间隔为:当X=FFFFH1~65536方式2和方式38位计数器定时间隔为:2μs~512μs计数范围1~256214.扩大定时间隔的方法:可采用多次中断的方法。例:要求用一台单片机控制10台加热炉,每隔10秒钟进行一次温度测量。则需要定时10秒。设6MHZ分析:可选择定时100mS中断,当中断100次时,可达到10秒。计算定时100mS的时间X,选T0方式1定时。10-610-33CHTL0B0H程序如下:220000AJMPSTAR000BHLJMPIT0PSTAR:MOVSP#60HMOVTMOD#01H;T0方式1定时MOVTH0#3CHMOVTL0#0B0H;定时100mS时间MOVR0;中断次数计数单元清零SETBTR0;启动T0SETBEA;允许CPU中断SETBET0;允许T0中断23T0中断服务程序:IT0P:MOVTH0#3CHMOVTL0#0B0H;重装100mS时间INCR0;中断次数计数加1CJNER0#100,RETN;到10秒了吗?MOVR0;10秒已到,清中断计数LCALLCYPID;调温度控制程序RETN:RETI24P78页例3:测量正脉冲宽度分析:首先计数器清零,在正脉冲开始时,在正脉冲结束的下降准确启动计数器开始定时,则沿关闭计数器,此时,计数器每隔一个机器周期加1。计数器中的数为正脉冲的机器周期数。编程使GATE=1,则启动T0需要INT0=1和TR0=1两个条件,将待测正脉冲接在INT0引脚,在INT0低电平时用SETBTR0指令使TR0=1,则在INT0引脚上的正脉冲变高时T0立刻启动开始定时,在INT0引脚上的正脉冲变低时T0立刻关闭停止定时,此时,计数器中的数为正脉冲的机器周期数,正脉冲宽度可测。25xP(ewN*cuL%bsK!9rI#7pHY6nFW4mDV2kCT1iAS+hyQ-fxO(dvN&豆元欢迎您的阅读,如要下载,请按网站提示进行操作

版权所有:长沙市明仕国际娱乐劳务派遣有限公司 联系人:陈先生  电话:15111173115 传真:0731-88084518 
邮政编码:410200  地址:长沙市望城县高塘岭镇郭亮南路49号。 备案许可证编号为:湘ICP备11001510号