第五章定时计数器.学习教案_第1页
第五章定时计数器.学习教案_第2页
第五章定时计数器.学习教案_第3页
第五章定时计数器.学习教案_第4页
第五章定时计数器.学习教案_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、会计学1第五章定时第五章定时(dn sh)计数器计数器.第一页,共39页。l单片机的单片机的51子系列有两个子系列有两个(lin )16位的定时位的定时/计数器:定计数器:定时器时器0和定时器和定时器1。 l均可用作定时器或事件计数均可用作定时器或事件计数(j sh)器,为单片机器,为单片机系统提供计数系统提供计数(j sh)和定时功能。以实现控制系统和定时功能。以实现控制系统中所要求的定时或延时控制、外部事件计数中所要求的定时或延时控制、外部事件计数(j sh)。 l52子系列单片机子系列单片机(8032/8052)除了有上述除了有上述2个定时个定时/计数器外,计数器外,还有一个还有一个(y

2、 )定时计数器定时计数器2,后者的功能比前两者强。,后者的功能比前两者强。 5.1 定时定时/计数器的结构及工作原理计数器的结构及工作原理 第1页/共39页第二页,共39页。l定时定时(dn sh)/计数器的核心部件是一个加计数器的核心部件是一个加1计数器计数器,其脉冲有两个来源:外部脉冲源、系统的时钟振荡,其脉冲有两个来源:外部脉冲源、系统的时钟振荡器。器。 l计数器对两个脉冲源之一进行输入计数,每输入一计数器对两个脉冲源之一进行输入计数,每输入一个脉冲,计数值加个脉冲,计数值加1。当计数到计数值为全。当计数到计数值为全1时,再输时,再输入一个脉冲就使计数值回零,同时从最高位溢出一个入一个脉

3、冲就使计数值回零,同时从最高位溢出一个脉冲使特殊功能寄存器脉冲使特殊功能寄存器TCON(定时器控制寄存器定时器控制寄存器)的的某一位某一位TFx置置1,作为计数器的溢出中断,作为计数器的溢出中断(zhngdun)标志。标志。 定时(dn sh)/计数器的结构框图振荡器振荡器1212 加加1 1计数器计数器TFxTFx中断中断TXTX端端C/T=0C/T=0C/T=1C/T=1控制信号控制信号TRxTRx第2页/共39页第三页,共39页。l若工作于定时状态,则表示若工作于定时状态,则表示(biosh)定时时间到;若工定时时间到;若工作于计数状态,则表示作于计数状态,则表示(biosh)计数回零。

4、所以,加计数回零。所以,加1计数计数器的基本功能是对输入脉冲进行计数。器的基本功能是对输入脉冲进行计数。 l用作定时器时用作定时器时,在每个机器周期计数器加在每个机器周期计数器加1,所以所以(suy)可以把它看作累加机器周期可以把它看作累加机器周期,1个机器周期包括个机器周期包括12个振荡个振荡周期周期,则计数频率为振荡频率的十二分之一。则计数频率为振荡频率的十二分之一。 l工作于何种方式,取决于脉冲源,当脉冲源为时钟振荡器工作于何种方式,取决于脉冲源,当脉冲源为时钟振荡器(等间隔脉冲序列等间隔脉冲序列)时,由于计数脉冲为一时间基准时,由于计数脉冲为一时间基准(jzhn),脉冲数乘以脉冲间隔就

5、是定时时间,表现为定时功能;,脉冲数乘以脉冲间隔就是定时时间,表现为定时功能;当脉冲源为间隔不等的外部脉冲发生器时,就是外部事件当脉冲源为间隔不等的外部脉冲发生器时,就是外部事件的计数器,表现为计数功能。的计数器,表现为计数功能。 第3页/共39页第四页,共39页。l用作计数器时,计数脉冲来自外部输入引脚用作计数器时,计数脉冲来自外部输入引脚T0或或T1,当输入信号当输入信号(xnho)发生一个由发生一个由1到到0的跳变时,计数器的跳变时,计数器加加1。在每个机器周期的。在每个机器周期的S5P2期间采样外部输入信号期间采样外部输入信号(xnho),当一个周期的采样值为高电平、下一个周期,当一个

6、周期的采样值为高电平、下一个周期的采样值为低电平时,计数器加的采样值为低电平时,计数器加1。新的计数值在紧接。新的计数值在紧接着检测到一个跳变后的下一个周期的着检测到一个跳变后的下一个周期的S3P1期间在寄存器期间在寄存器中出现。即在第一个机器周期的中出现。即在第一个机器周期的S5P2检测到高电平,在检测到高电平,在第二个机器周期的第二个机器周期的S5P2检测到低电平,在第三个机器周检测到低电平,在第三个机器周期的期的S3P1改变计数值。由于识别一个从改变计数值。由于识别一个从1到到0的跳变要用的跳变要用两个机器周期,所以最快的计数频率是振荡器频率的二两个机器周期,所以最快的计数频率是振荡器频

7、率的二十四分之一。对外部输入信号十四分之一。对外部输入信号(xnho)的占空比没有限的占空比没有限制,为确保某一给定的电平在变化之前至少被采样一次制,为确保某一给定的电平在变化之前至少被采样一次,该信号,该信号(xnho)至少保持一个完整的机器周期。至少保持一个完整的机器周期。 第4页/共39页第五页,共39页。l图中的两个模拟开关,前者图中的两个模拟开关,前者(qin zh)决定定时决定定时/计数器工作计数器工作状态:计数还是定时;后者受控制信号的控制,决定脉冲源状态:计数还是定时;后者受控制信号的控制,决定脉冲源是否加到计数器输入端,即决定了加是否加到计数器输入端,即决定了加1计数器的开启

8、与运行。计数器的开启与运行。 对输入信号的基本(jbn)要求 Tp Tp Tp TpTpTp为机器周期为机器周期l在实际线路中,这两个模拟开关在实际线路中,这两个模拟开关(kigun)由由TMOD与与TCON的相应位控制。用户可通过对的相应位控制。用户可通过对TMOD和和TCON的各的各位进行写入或更改操作,从而选择不同的工作状态或启动位进行写入或更改操作,从而选择不同的工作状态或启动工作,并可设置相应的控制条件,即定时工作,并可设置相应的控制条件,即定时/计数器是可编计数器是可编程的。程的。 第5页/共39页第六页,共39页。l16位的加位的加1计数器由两个计数器由两个(lin )8位的特殊

9、功能寄存器位的特殊功能寄存器THx和和TLx组成组成(x=0或或1)。 l由特殊功能寄存器由特殊功能寄存器TMOD控制,可被程控为不同控制,可被程控为不同(b tn)的组合状态,从而形成定时的组合状态,从而形成定时/计数器的四种工作方式。计数器的四种工作方式。 TMOD、TCON与T0、T1结构(jigu)框图微微处处理理器器PPTH1TH1TL1TL1TH0TH0TL0TL0TCONTCONTMODTMOD工作工作方式方式工作工作方式方式第6页/共39页第七页,共39页。5.2 定时定时(dn sh)/计数器方式和控制寄存器计数器方式和控制寄存器 l由结构框图可以看到,特殊功能寄存器由结构框

10、图可以看到,特殊功能寄存器TMOD和和TCON用来确用来确定定时定定时/计数器的工作方式计数器的工作方式(fngsh),并控制其功能。,并控制其功能。 l每当执行一条改变每当执行一条改变TMOD和和TCON内容的指令时,所改变的值内容的指令时,所改变的值在下一条指令的第一个机器周期在下一条指令的第一个机器周期(zhuq)的的S1P1期间进入特殊功期间进入特殊功能寄存器,并立即产生效果。能寄存器,并立即产生效果。 lTMOD控制定时控制定时/计数器的工作方式;计数器的工作方式; lTCON控制定时器控制定时器T0、T1的启动和停止计数,并包含了定的启动和停止计数,并包含了定时器的状态。时器的状态

11、。 定时器工作方式控制寄存器定时器工作方式控制寄存器TMOD的格式的格式 位位 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 GATE C/T M1 M0 GATE C/T M1 M0GATE C/T M1 M0 GATE C/T M1 M0 定时器定时器1 1 定时器定时器0 0第7页/共39页第八页,共39页。lGATE:选通控制。当选通控制。当GATE=1时,同时时,同时INTx为高电平为高电平,且,且TRx置位时,选通定时器置位时,选通定时器x。当。当GATE=0时,每当时,每当TRx置位时,就选通定时器置位时,就选通定时器x。 lC/T:选择定时器功能还是计数器功能

12、。该位置位时选择选择定时器功能还是计数器功能。该位置位时选择计数器功能计数器功能(计数出现在计数出现在T0或或T1引脚上的负跳变引脚上的负跳变);该位;该位清零时选择定时器功能清零时选择定时器功能(计机器周期计机器周期)。 lM1M0:这两位指定定时这两位指定定时/计数器的工作方式计数器的工作方式,可形成四种编码可形成四种编码(bin m),对应四种工作方式:,对应四种工作方式: M1M1M0M0方式方式说明说明0 00 00 0TLxTLx低低5 5位与位与THxTHx中中8 8位构成位构成1313位计数器位计数器0 01 11 1TLxTLx与与THxTHx构成构成1616位计数器位计数器

13、1 10 02 2可自动再装入的可自动再装入的8 8位计数器位计数器, ,当当TLxTLx计数溢出时计数溢出时,THx,THx内容自动内容自动装入装入TLxTLx。1 11 13 3对定时器对定时器0,0,分成两个分成两个8 8位的计数器;对定时器位的计数器;对定时器1,1,停止计数。停止计数。第8页/共39页第九页,共39页。定时器控制定时器控制(kngzh)寄存器寄存器TCON的格式的格式 位位7 76 65 54 43 32 21 10 0TF1TF1TR1TR1TF0TF0TR0TR0IE1IE1IT1IT1IE0IE0IT0IT0lTF1:定时器:定时器1溢出标志位。当定时溢出标志位

14、。当定时/计数器计数器1溢出时,由溢出时,由内部硬件内部硬件(yn jin)置位,申请中断。当单片机转向中断置位,申请中断。当单片机转向中断服务程序后,由内部硬件服务程序后,由内部硬件(yn jin)自动清除。自动清除。 lTR1:定时器:定时器1的运行控制位。由软件置位的运行控制位。由软件置位/清除清除(qngch)来控制定时来控制定时/计数器计数器1的开启的开启/关闭。关闭。 lTF0:定时器:定时器0溢出标志位。当定时溢出标志位。当定时/计数器计数器0溢出时,由内溢出时,由内部硬件置位,申请中断。当单片机进入中断服务程序后,部硬件置位,申请中断。当单片机进入中断服务程序后,由内部硬件自动

15、清除。由内部硬件自动清除。 lTR0:定时器:定时器0的运行控制位。由软件置位的运行控制位。由软件置位/清除来控制定时清除来控制定时/计数计数器器0的开启的开启/关闭。关闭。 第9页/共39页第十页,共39页。lIE1:外部中断:外部中断1边沿触发请求标志位。当边沿触发请求标志位。当IT1=0时,每个机时,每个机器周期的器周期的S5P2采样采样INT1,若,若INT1为低电平,将直接触发外部为低电平,将直接触发外部中断。当中断。当IT1=1时,当第一个机器周期采样到时,当第一个机器周期采样到INT1为高电平、为高电平、第二个机器周期采样到第二个机器周期采样到INT1为低电平时,由硬件置位中断标

16、为低电平时,由硬件置位中断标志志IE1,并以此向,并以此向CPU请求中断,当请求中断,当CPU响应中断、转向中断响应中断、转向中断服务程序后由硬件清除。服务程序后由硬件清除。 lIT1:外部中断:外部中断1类型控制位。控制外部中断类型控制位。控制外部中断1是选择边沿触发是选择边沿触发还是电平触发方式。当还是电平触发方式。当IT1=0时,选择为电平触发方式,时,选择为电平触发方式,INT1低电平有效;当低电平有效;当IT1=1时,选择为边沿触发方式,当时,选择为边沿触发方式,当INT1输入输入脚上出现电平由高到低的负跳变时有效。脚上出现电平由高到低的负跳变时有效。IT1由软件置位或清除由软件置位

17、或清除。 lIE0:外部中断:外部中断1边沿触发请求标志位。当边沿触发请求标志位。当IT0=0时,每个机时,每个机器周期的器周期的S5P2采样采样INT0,若,若INT0为低电平,将直接触发外部为低电平,将直接触发外部中断。当中断。当IT0=1时,当第一个机器周期采样到时,当第一个机器周期采样到INT0为高电平、为高电平、第二个机器周期采样到第二个机器周期采样到INT0为低电平时,由硬件置位中断标为低电平时,由硬件置位中断标志志IE0,并以此向,并以此向CPU请求中断,当请求中断,当CPU响应中断、转向中断响应中断、转向中断服务程序后由硬件清除。服务程序后由硬件清除。 第10页/共39页第十一

18、页,共39页。lIT0:外部中断:外部中断0类型控制位。控制外部中断类型控制位。控制外部中断0是选择边沿触发是选择边沿触发还是电平触发方式。当还是电平触发方式。当IT0=0时,选择为电平触发方式,时,选择为电平触发方式,INT0低电平有效;当低电平有效;当IT0=1时,选择为边沿触发方式,当时,选择为边沿触发方式,当INT0输入输入脚上出现电平由高到低的负跳变时有效。脚上出现电平由高到低的负跳变时有效。IT0由软件置位或清除由软件置位或清除。 l由于定时由于定时/计数器计数器T0、T1是可编程的,所有在任何一个定时是可编程的,所有在任何一个定时/计数计数器开始工作之前器开始工作之前(zhqin

19、),必须对其写入相应的控制字。,必须对其写入相应的控制字。 5.3 定时定时/计数器的工作计数器的工作(gngzu)方式方式 l寄存器寄存器TMOD中的中的M1、M0两位的四种不同取值,导致两位的四种不同取值,导致(dozh)了了THx、TLx的四种不同组合,从而形成定时的四种不同组合,从而形成定时/计数器的四种不同计数器的四种不同工作方式。工作方式。 l其中前三种工作方式对两者都是一样的,方式其中前三种工作方式对两者都是一样的,方式3对两者是不同的。对两者是不同的。可以说,只有定时可以说,只有定时/计数器计数器0有方式有方式3。 第11页/共39页第十二页,共39页。方式方式(fngsh)0

20、 振荡器振荡器1212TFxTFx中断中断TxTx端端C/T=0C/T=0C/T=1C/T=1GATEGATEINTxINTx端端TRxTRx TLx TLx( (低低5 5位位) ) THx THx(8(8位位) )控制控制& &lll ll当当M1M0=00时,定时时,定时/计数器被选择计数器被选择(xunz)为工作方式为工作方式0。 l在此工作方式下,定时在此工作方式下,定时(dn sh)/计数器构成一个计数器构成一个13位寄位寄存器,由存器,由THx的的8位与位与TLx的低的低5位组成,位组成,TLx的高的高3位未用位未用。 第12页/共39页第十三页,共39页。l当单

21、片机进入中断服务程序后,再由内部硬件自动清除当单片机进入中断服务程序后,再由内部硬件自动清除(qngch)该标志该标志TFx。 l在一般情况下,在一般情况下,GATE=0,定时,定时/计数器运行控制仅由计数器运行控制仅由TRx位的状位的状态确定态确定(TRx=1启动启动(qdng),TRx=0停止停止)。 l只有在启动计数要由外部输入只有在启动计数要由外部输入(shr)INTx控制时,才使控制时,才使GATE=1,由框图可知,由框图可知,GATE=1,TRx=1时,只有时,只有INTx引脚输引脚输入入(shr)高电平,高电平,Tx才被允许计数。才被允许计数。 l利用利用GATE的这一功能,可以

22、很方便的测量脉冲宽度。的这一功能,可以很方便的测量脉冲宽度。 l当当TLx的低的低5位计数溢出时,则向位计数溢出时,则向THx进位,进位,THx溢出时,则溢出时,则把其对应的定时把其对应的定时/计数器的溢出标志位计数器的溢出标志位TFx置位,并以此作为置位,并以此作为定时定时/计数器溢出中断标志。计数器溢出中断标志。 第13页/共39页第十四页,共39页。方式方式(fngsh)1 振荡器振荡器1212TFxTFx中断中断TxTx端端C/T=0C/T=0C/T=1C/T=1GATEGATEINTxINTx端端TRxTRx TLx TLx(8(8位位) ) THx THx(8(8位位) )控制控制

23、l l& &lll方式方式1与方式与方式0的差别的差别(chbi)仅在于计数器的位数不同,方式仅在于计数器的位数不同,方式1为为16位的计数器,由位的计数器,由THx作为高作为高8位和位和TLx作为低作为低8位构成。其余和方式位构成。其余和方式0类似。类似。 第14页/共39页第十五页,共39页。方式方式(fngsh)2 振荡器振荡器1212TFxTFx中断中断TxTx端端C/T=0C/T=0C/T=1C/T=1GATEGATEINTxINTx端端TRxTRx TLx TLx(8(8位位) ) THx THx(8(8位位) )控制控制重新装入重新装入l lll& &am

24、p;l定时定时/计数器构成一个自动计数器构成一个自动(zdng)再装入功能的再装入功能的8位计数器。位计数器。 l此时由此时由TLx计数,而计数,而THx在此方式中作为在此方式中作为(zuwi)一个数据缓一个数据缓冲器。冲器。l当当TLx计数溢出时,在置位溢出标志计数溢出时,在置位溢出标志TFx的同时,还自动地将的同时,还自动地将THx中的常数送到中的常数送到TLx,使,使TLx从刚刚装入的初值开始重新计数从刚刚装入的初值开始重新计数。再装入后,。再装入后,THx中的内容保持不变。中的内容保持不变。 第15页/共39页第十六页,共39页。方式方式(fngsh)3 T0T0端端C/T=0C/T=

25、0C/T=1C/T=1GATEGATEINT0INT0端端TR0TR0振荡器振荡器1212振荡器振荡器1212TF0TF0中断中断 TL0 TL0(8(8位位) )TF1TF1中断中断 TH0 TH0(8(8位位) )TR1TR1控制控制控制控制l lll& &l方式方式3可使可使MCS-51单片机增加一个单片机增加一个(y )附加的附加的8位定时位定时/计计数器,此种方式只适应于定时数器,此种方式只适应于定时/计数器计数器0。 l定时定时/计数器计数器1处于处于(chy)方式方式3时,相当于时,相当于TR1=0,停止,停止计数。计数。 第16页/共39页第十七页,共39页。l

26、定时定时/计数器计数器0在方式在方式(fngsh)3下,下,TL0和和TH0被作为两个独被作为两个独立的计数器。立的计数器。 l在此方式下,在此方式下,TL0使用了定时器使用了定时器0的所有控制位:的所有控制位:C/T、GATE、TR0、INT0和和TF0;TH0则被限制为一个定时器,则被限制为一个定时器,对机器周期计数,同时借用了定时器对机器周期计数,同时借用了定时器1的的TR1和和TF1,即借,即借用了其运行控制位和溢出标志。用了其运行控制位和溢出标志。 l一般来说,只有当系统需要增加一个额外一般来说,只有当系统需要增加一个额外( wi)的的8位定位定时器时,才把定时时器时,才把定时/计数

27、器计数器0设置为方式设置为方式3。当定时。当定时/计数器计数器0工作于方式工作于方式3时,由于时,由于TH0借用了定时借用了定时/计数器计数器1的运行控制的运行控制位和溢出位和溢出(中断中断)标志,此时定时标志,此时定时/计数器计数器1虽然可以设置为方虽然可以设置为方式式0、方式、方式1和方式和方式2,但是只能用在不需要中断控制的场,但是只能用在不需要中断控制的场合。例如,工作于自动重装载方式合。例如,工作于自动重装载方式(方式方式2),作为串行通讯,作为串行通讯的波特率发生器使用。的波特率发生器使用。 第17页/共39页第十八页,共39页。5.4 定时定时(dn sh)/计数器的编程举例计数

28、器的编程举例 l定时定时/计数器的应用编程应注意:正确写入控制字,即初始化;计数器的应用编程应注意:正确写入控制字,即初始化;时间常数时间常数(sh jin chn sh)的正确计算。的正确计算。 l定时定时(dn sh)计数器操作控制次序:计数器操作控制次序: 确定工作方式,写入确定工作方式,写入TMOD定时定时/计数器工作方式寄存器;计数器工作方式寄存器; 计算定时计算定时/计数初值,装入计数初值,装入THx及及TLx; 置位置位TRx以启动计数;以启动计数; 置位置位ETx以允许定时以允许定时/计数器计数器x中断中断(若需要,不需要可略若需要,不需要可略); 置位置位EA以使以使CPU开

29、放中断,即接收中断信号。开放中断,即接收中断信号。 第18页/共39页第十九页,共39页。l由于定时由于定时/计数器以加计数器以加1方式计数,假设计方式计数,假设计(shj)数值为数值为x,则应装入,则应装入定时定时/计数器的初值为:计数器的初值为: x2n (n为不同为不同(b tn)方式下计数器的位数方式下计数器的位数)。 l当工作于定时状态时,由于当工作于定时状态时,由于(yuy)定时定时/计数器是计数机器计数器是计数机器周期的,而机器周期频率恒定,每个机器周期包括周期的,而机器周期频率恒定,每个机器周期包括12个振荡个振荡周期,若晶振频率为周期,若晶振频率为6MHz,则:,则: 一个机

30、器周期一个机器周期: 2uS1061212T6p晶晶振振频频率率 计数个数为:计数个数为: pcTTx 其中:其中:Tp为机器周期为机器周期 则应装入的计数初值为:则应装入的计数初值为: x2n 第19页/共39页第二十页,共39页。例例5-1. 要求要求(yoqi)定时为定时为1mS,晶振频率为,晶振频率为12MHz。 解:解: 1uS10211212T6p晶振频率晶振频率 1000uS1mS1TTxpc 因为因为(yn wi): Tc=xTp=1mS 所以所以(suy): 对方式对方式0,应装入的初值为应装入的初值为: B0001100011100000H18C171920001213 此

31、时,此时,THx=0E0H(11100XXX),TLx=18H 对方式对方式1,应装入的初值为:,应装入的初值为: H18FC645360001216 此时,此时,THx=0FCH,TLx=18H 第20页/共39页第二十一页,共39页。例例5-2. 设定时设定时/计数器计数器T0为定时状态,工作于方式为定时状态,工作于方式1,定,定时时间为时时间为2mS,每当,每当2mS到申请中断,在中断服务程序到申请中断,在中断服务程序中将中将A的内容左环移一次,送的内容左环移一次,送P1口显示口显示(xinsh)。已知。已知晶振频率为晶振频率为12MHz。 解答解答(jid): 1uS10211212T

32、6p晶振频率晶振频率 2000uS1mS2TTxpc 定时定时(dn sh)时间为时间为2mS,即,即: Tc=xTp=2mS 所以,计数个数为:所以,计数个数为: 采用方式采用方式1,应装入的时间常数为:,应装入的时间常数为: H830F635360002216 则:则:TH0=0F8H,TL0=30H 第21页/共39页第二十二页,共39页。编程如下编程如下(rxi): ORG0000HLJMPMAIN;转主程序转主程序 ORG000BH;T0中断中断(zhngdun)服务程序服务程序MOVTL0,#30HMOVTH0,#0F8H;重新重新(chngxn)送送2mS时间常数初值时间常数初值

33、RLA;(A)左环移一次左环移一次MOVP1,A;送送P1口显示口显示RETMAIN: MOV TMOD,#01H ;送控制方式字送控制方式字MOVTL0,#30H;T0初始化初始化MOVTH0,#0F8HMOVA,#01H;累加器累加器A置初值置初值SETBTR0;启动启动T0计数计数SETBET0 ;允许允许T0中断中断 SETBEA;CPU开中断开中断 SJMP$;等待中断发生等待中断发生(无事可做无事可做) 第22页/共39页第二十三页,共39页。例例5-3. 设定时设定时/计数器计数器T0工作于方式工作于方式(fngsh)3,TL0、TH0作为两个独立的作为两个独立的8位定时位定时/

34、计数器,分别产生计数器,分别产生250S和和500S的定时中断,使的定时中断,使P1.1和和P1.2产生产生500S和和1000S的方波。设晶振频率为的方波。设晶振频率为6MHz。 P1.1P1.2解答解答(jid): TL0 计数计数(j sh)个数个数:250s/2s=125初值初值: 28-125=131=83H TH0 计数个数计数个数:500 s/2 s=250 初值初值: 28-250=6=06H 第23页/共39页第二十四页,共39页。编程如下编程如下(rxi): ORG0000HLJMPMAIN;转主程序转主程序 ORG000BH;定时器定时器0中断中断(zhngdun)服务子

35、程序入口服务子程序入口LJMPTINT0ORG001BH;定时器定时器1中断服务中断服务(fw)子程序入口子程序入口LJMPTINT1MAIN: MOV TMOD,#03H ;T0工作方式工作方式3 MOVTL0,#83H;TL0送时间常数送时间常数MOVTH0,#06H;TH0送时间常数送时间常数SETBTR0;启动定时启动定时SETBTR1 ; ;等价于等价于MOV TCON,#50H MOV TCON,#50H SETBET0;允许中断允许中断SETBET1 ; ;等价于等价于MOV IE,#8AHMOV IE,#8AH SETBEA;CPU开中断开中断 SJMP$;等待等待 第24页/

36、共39页第二十五页,共39页。TINT0:MOVTL0,#83H;定时器定时器0中断中断(zhngdun)服务子程服务子程序序CPLP1.1RETITINT1:MOVTH0,#06H;定时器定时器1中断中断(zhngdun)服务子程序服务子程序CPLP1.2RETI第25页/共39页第二十六页,共39页。例例5-4. 设定时设定时/计数器计数器0工作于方式工作于方式2,TL0为为8位计数器位计数器,产产生生500s定时中断定时中断(zhngdun),在中断在中断(zhngdun)服务服务程序中将程序中将(A)减减1,然后送然后送P1口显示口显示,设晶振为设晶振为6MHz。 编程如下编程如下:

37、ORG0000H AJMPMAIN;转主程序转主程序 ORG000BHDECA;T0中断服务子程序中断服务子程序 MOVP1,ARETIMAIN:MOVTMOD,#02H;初始化初始化 MOVTL0,#06H ;送送500S时间常数时间常数MOVTH0,#06H SETBTR0;启动启动T0计数计数(j sh)SETBET0;允许允许T0中断中断SETBEA;CPU开中断开中断SJMP$ 第26页/共39页第二十七页,共39页。5.5 运行运行(ynxng)中读定时中读定时/计数器值计数器值 l在在MCS-51中,随时可以读写计数寄存器的内容中,随时可以读写计数寄存器的内容(nirng),但是

38、读取时需要特别加以注意;,但是读取时需要特别加以注意; l由于不能在同一时刻读取由于不能在同一时刻读取THx和和TLx的内容的内容(nirng)。如。如不注意,读取的计数器有可能出错。不注意,读取的计数器有可能出错。l比如先读比如先读(TLx),后读,后读(THx),由于定时器在不断运行,读,由于定时器在不断运行,读(THx)前,若恰好产生前,若恰好产生TLx溢出向溢出向THx进位,则读得的进位,则读得的(TLx)完全完全不对。不对。 l同样先读同样先读(THx)再读再读(TLx)也可能出错(同样问题)。也可能出错(同样问题)。 l解决错读问题的一种方法是解决错读问题的一种方法是:先读先读(T

39、Hx),后读,后读(TLx),再读,再读(THx),若,若2次读得的次读得的(THx)没有发生变化,则可确定读得的内容是正确没有发生变化,则可确定读得的内容是正确的,否则再重复上述读的,否则再重复上述读THx、TLx过程,这样读得的过程,这样读得的(THx),(TLx)就是正确的。就是正确的。 第27页/共39页第二十八页,共39页。l下面下面(xi mian)程序把读得的程序把读得的TH0、TL0放在放在R1、R0中:中:lRDTIME:MOVA,TH0;读读(TH0)lMOVR0,TL0;读读(TL0)lCJNEA,TH0,RDTIME ;比较比较2次读得的次读得的(TH0),不同重读不同

40、重读lMOVR1,AlRET5.6 定时定时(dn sh)/计数器计数器2 l只有只有52子系列子系列(xli)单片机拥有定时单片机拥有定时/计数器计数器2。l定时定时/计数器计数器2是一个具有是一个具有16位自动重装载或捕获能力的定时位自动重装载或捕获能力的定时/计计数器,特殊功能寄存器数器,特殊功能寄存器T2CON是它的控制寄存器。是它的控制寄存器。 第28页/共39页第二十九页,共39页。l定时定时(dn sh)/计数器计数器2具有两种工作方式:定时具有两种工作方式:定时(dn sh)/计数器方式和波特率发生器方式。计数器方式和波特率发生器方式。 定时定时(dn sh)/计数器方式计数器

41、方式 RCAP2HRCAP2HRCAP2LRCAP2LTH2TH2TL2TL2C CININC CININC COUTOUTC COUTOUTCP/RL2CP/RL2T2EXT2EXEXEN2EXEN2EXF2EXF2中断中断置置TF2TF2 置置EXF2EXF2TF2TF2振荡器振荡器1212T2T2C/T2C/T2TR2TR2& & &ll& &ll& &第29页/共39页第三十页,共39页。l用作定时器时,寄存器用作定时器时,寄存器TH2和和TL2对机器周期对机器周期(zhuq)计数;计数; l用作计数器时,外部计数脉冲由用作计数器

42、时,外部计数脉冲由T2(P1.0)输入,工作情况输入,工作情况(qngkung)和时序关系与定时和时序关系与定时/计数器计数器0和和1的完全一样,的完全一样,对外部计数脉冲的要求也与定时对外部计数脉冲的要求也与定时/计数器计数器0和和1的完全一样。的完全一样。 l在定时器和计数器工作方式下,可以通过对在定时器和计数器工作方式下,可以通过对T2CON中的中的控制位控制位CP/RL2的操作来选择捕获能力或重装载能力,的操作来选择捕获能力或重装载能力,TH2和和TL2内容的捕获或自动重装载通过一对捕获内容的捕获或自动重装载通过一对捕获/重装载重装载寄存器寄存器RCAP2H和和RCAP2L来实现,来实

43、现,TH2、TL2和和RCAP2H、RCAP2L之间接有双向缓冲器之间接有双向缓冲器(三态门三态门)。当。当 CP/RL2=1时,选择捕获功能,数据传送方向为把时,选择捕获功能,数据传送方向为把TH2和和TL2中的内容自动装入中的内容自动装入RCAP2H和和RCAP2L;当;当 CP/RL2=0时,选择自动重装载功能,数据传送方向为把时,选择自动重装载功能,数据传送方向为把RCAP2H和和RCAP2L的数据自动装入的数据自动装入TH2和和TL2。 第30页/共39页第三十一页,共39页。l捕获或自动重装载捕获或自动重装载(zhungzi)发生在下述情况下:发生在下述情况下: 定时器定时器2的寄

44、存器的寄存器TH2和和TL2溢出溢出(y ch)时:时: 当寄存器当寄存器TH2和和TL2溢出时,如果溢出时,如果CP/RL2=0,则打开重,则打开重装载的三态缓冲器,把装载的三态缓冲器,把RCAP2H和和RCAP2L的内容自动的内容自动装载到装载到TH2和和TL2中,同时溢出标志中,同时溢出标志TF2置位为置位为1,申请,申请中断。中断。 当当EXEN2=1且且T2EX(P1.1)端的端的(dund)信号有负跳变时:信号有负跳变时: 当当EXEN2=1且且T2EX(P1.1)端的信号有负跳变时,根据端的信号有负跳变时,根据CP/RL2是是1或或0,发生捕获操作或自动重装载操作,同时标志,发生

45、捕获操作或自动重装载操作,同时标志EXF2置位,申请中断。置位,申请中断。 l如果定时如果定时/计数器计数器2的中断是被允许的,不管发生的中断是被允许的,不管发生TF2=1还还是是EXF2=1,CPU都会响应中断,中断的入口地址为都会响应中断,中断的入口地址为002BH。响应中断后,应当用软件清除中断标志,以避免无休止地发生中断。响应中断后,应当用软件清除中断标志,以避免无休止地发生中断。TF2、EXF2都是直接可寻址位,可采用都是直接可寻址位,可采用CLR TF2和和CLR EXF2指令实现撤消中断申请的功能。指令实现撤消中断申请的功能。 第31页/共39页第三十二页,共39页。波特率发生器

46、方式波特率发生器方式(fngsh) RCAP2HRCAP2HRCAP2LRCAP2LTH2TH2TL2TL2C CININC CININC COUTOUTC COUTOUTC/T2C/T2TR2TR2OSC2OSC2T2T22 2定时器定时器1 1 溢出溢出SMOD=0SMOD=0SMOD=1SMOD=10 10 10 10 11616RCLKRCLKTCLKTCLK1616TXCLOCKTXCLOCKRXCLOCKRXCLOCKT2EXT2EXEXEN2EXEN2EXF2EXF2& & &第32页/共39页第三十三页,共39页。l波特率发生器用于控制波特率发生器用于控

47、制(kngzh)串行口的数据传输速率。在串行口的数据传输速率。在T2CON中的中的RCLK和和TCLK两位用于选择定时两位用于选择定时/计数器计数器1或或2作为作为串行通讯的波特率发生器。串行通讯的波特率发生器。 uRCLK和和TCLK两位的值用来控制两位的值用来控制2个电子开关个电子开关(kigun)的的位置。位置。 u当这两位为当这两位为0时,选用时,选用(xunyng)定时定时/计数器计数器1作为波特率作为波特率发生器;当这两位为发生器;当这两位为1时,选用时,选用(xunyng)定时定时/计数器计数器2作为作为波特率发生器。波特率发生器。 u其中其中RCLK选择串行通讯接收波特率发生器

48、,选择串行通讯接收波特率发生器,TCLK选择发选择发送波特率发生器。送波特率发生器。 l当选用定时当选用定时/计数器计数器2作波特率发生器时,其溢出脉冲用作作波特率发生器时,其溢出脉冲用作串行口的时钟,时钟频率可由内部时钟决定,也可由外部串行口的时钟,时钟频率可由内部时钟决定,也可由外部时钟决定。时钟决定。 第33页/共39页第三十四页,共39页。u如果如果C/T=0,选用外部时钟,时钟信号由,选用外部时钟,时钟信号由T2(P1.0)端输端输入,每当外部脉冲负跳变时,计数器值加入,每当外部脉冲负跳变时,计数器值加1,外部脉冲频,外部脉冲频率不能超过振荡器频率的率不能超过振荡器频率的1/24。由

49、于溢出时,。由于溢出时,RCAP2H和和RCAP2L的内容自动装载到的内容自动装载到TH2和和TL2,所以波特率的值,所以波特率的值还决定于装载值。还决定于装载值。 l当定时当定时/计数器计数器2用作波特率发生用作波特率发生(fshng)器时,如果器时,如果EXEN2置位,则置位,则T2EX端的信号发生端的信号发生(fshng)负跳变时,负跳变时,EXF2将置将置位,但不会发生位,但不会发生(fshng)重装载或捕获操作,此时重装载或捕获操作,此时T2EX可以可以作为一个附加的外部中断源。作为一个附加的外部中断源。 l在波特率工作方式下,在波特率工作方式下,TH2、TL2和和RCAP2H、RCAP2L的内的内容容(nirng)不能读或被修改。不能读或被修改。 第34页/共39页第三十五页,共39页。定时定时(dn sh)/计数器计数器2控制寄存器控制寄存器T2CON T2C /TRTR2 2EXEN2EXEN2TCLKTCLKRCLKRCLKEXF2EXF2TF2TF2含义含义0 01 12 23 34 45 56 67 7位位RL2CP/lTF2(T2CON.7):定时:定时(dn sh)器器2溢出标志。当定时溢出标志。当定时(dn sh)

温馨提示

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

评论

0/150

提交评论