收藏 分销(赏)

五定时计数器资料.pptx

上传人:天**** 文档编号:4595552 上传时间:2024-10-01 格式:PPTX 页数:42 大小:702.83KB
下载 相关 举报
五定时计数器资料.pptx_第1页
第1页 / 共42页
五定时计数器资料.pptx_第2页
第2页 / 共42页
五定时计数器资料.pptx_第3页
第3页 / 共42页
五定时计数器资料.pptx_第4页
第4页 / 共42页
五定时计数器资料.pptx_第5页
第5页 / 共42页
点击查看更多>>
资源描述

1、复习“中断”n8051有几个中断源?几级优先级?n中断源对应的中断入口是多少?n中断源自然优先级的顺序?n关键字interrupt的作用?n与中断相关的SFR有哪些?复习“中断”n简述中断响应过程。中断源B向CPU提出中断请求,CPU暂时中断原来工作A,转去处理事件B,处理完成后,再回到原来被中断的地方,继续工作A的执行n能用RET指令代替RETI指令吗?不可以。RET虽然也能控制PC返回到原来中断的地方,但RET指令没有清零中断优先级状态触发器的功能。中断系统会任务中断仍在进行,同级或低级中断请求将不会被相应 课题五课题五 定时定时/计数器计数器 任务一输出任务一输出1000Hz的方波的方波

2、任务二任务二 每秒闪烁一次的每秒闪烁一次的LED 任务三简易频率计任务三简易频率计任务一输出任务一输出1000Hz的方波的方波任务目标任务目标任务任务的目标的目标是利用是利用定时中断实现从定时中断实现从P1.0输出输出1000Hz的方波。的方波。程序设计程序设计分析分析从从P1.0输出输出1000Hz的方波,实际上就是要求的方波,实际上就是要求从从P1.0输出周期为输出周期为1ms的方波。则高电平和低电平的方波。则高电平和低电平的时间各为的时间各为1ms的一半,即各为的一半,即各为500s。也就是在单片机中实现也就是在单片机中实现500s的定时,每次定的定时,每次定时时间到了的时候,将时时间到

3、了的时候,将P1.0的电平改变就可以了。的电平改变就可以了。一个引脚的电平的改变,使用取反指令就可以完成,一个引脚的电平的改变,使用取反指令就可以完成,具体的指令如具体的指令如“P10=P10;”延时500sP1.0电平取反P1.0电平取反重装定时器初值定时时间到了中断结束图8-2 采用指令延迟程序框图图8-3 中断服务程序的流程图任务二每秒闪烁一次的任务二每秒闪烁一次的LED任务目标任务目标利用定时中断实现将利用定时中断实现将LED每秒闪烁一次。每秒闪烁一次。程序设计程序设计分析分析要要使使LED每秒闪烁一次,按每秒闪烁一次,按LED的点亮时间和的点亮时间和熄灭时间相同进行处理,则只需要进行

4、熄灭时间相同进行处理,则只需要进行0.5s的定时。的定时。具体处理是,每过具体处理是,每过0.5s,将,将LED的状态取反就可以的状态取反就可以实现目标了。或者说,与本课题中的任务一类似,实现目标了。或者说,与本课题中的任务一类似,只不过是频率变得很低了,周期更长了只不过是频率变得很低了,周期更长了。任务三简易频率计任务三简易频率计任务目标任务目标 具体目标是:利用单片机的具体目标是:利用单片机的T0、T1的定时的定时/计数功能,完成对输入的信号的频率进行测量,测计数功能,完成对输入的信号的频率进行测量,测量的结果通过量的结果通过8位动态数码管显示出来。这里要求位动态数码管显示出来。这里要求实

5、现对实现对0200KHz的信号频率进行准确测量,测的信号频率进行准确测量,测量误差不超过量误差不超过1Hz。课题目标课题目标n本课题的任务是用单片机实现:p精确定时和计数n通过三个任务的实现,学会:编写单片机中断服务程序定时计数器的初始化、短时间定时和长时间定时的实现80C51单片机的定时/计数器定时/计数器的结构基本型:基本型:T0T0,定时、计数。,定时、计数。T1T1,定时、计数、串口波特率发生器。,定时、计数、串口波特率发生器。增强型:增加了增强型:增加了T2T2。见。见5.3.45.3.4节。节。1 定时/计数器的结构和工作原理 TH1、TL1TH0、TL0TCONTMOD定时/计数

6、器的工作原理实质是实质是1616位加位加1 1计数器计数器定时器模式时,是对内部机器周期计数。计数值乘以机器周期就是定时时间 计数器模式时,是对外部事件计数。脉冲由T0(P3.4)或T1(P3.5)引脚输入。注意注意:(:(若若计数值计数值为为N N,计数初值计数初值为为X X)溢出信号使溢出信号使TF0TF0或或TF1TF1置置1 1,并,并发出中断请求发出中断请求,1616位时有:位时有:N=65536-XN=65536-X,或,或X=65536-NX=65536-N12MHz12MHz晶振时,计数频率低于晶振时,计数频率低于0.5MHz 0.5MHz 2 定时/计数器的控制工作方式寄存器

7、TMOD 76543210TMODGATE C/TM1M0GATE C/TM1M0字节地址:89HGATE:门控位。GATE0时,只要TRx为1,就可启动计数器工作;GATA1时,定时器的启动还要加上INTx引脚为高电平这一条件。C/T:模式选择位。清0为定时模式,置1为计数方式。M1M0:工作方式设置位。可设置四种工作方式(见下页)。M1M0工作方式说 明00方式013位定时/计数器01方式116位定时/计数器10方式28位自动重装定时/计数器11方式3T0分成两个独立的8位定时/计数器;T1此方式停止计数注意:注意:TMODTMOD不能进行位寻址不能进行位寻址 控制寄存器TCON 7654

8、3210TCONTF1TR1TF0TR0字节地址:88HTFxTFx:TxTx溢出标志位。溢出标志位。响应中断后响应中断后TFxTFx有硬件自动清有硬件自动清0 0。用。用软件设置软件设置TFxTFx可产生同硬件置可产生同硬件置1 1或清或清0 0同样的效果。同样的效果。TRxTRx:TxTx运行控制位。运行控制位。置置1 1时开始工作;清时开始工作;清0 0时停止工作。时停止工作。TRxTRx要由软件置要由软件置1 1或清或清0 0(即启动与停止要由软件控制即启动与停止要由软件控制)。)。3 定时/计数器的工作方式T0T0有方式有方式0 0、1 1、2 2、3 3;T1T1有方式有方式0 0

9、、1 1、2 2。以。以T0T0为例说明。为例说明。方式0:13位方式 C/T=1 C/T=1时,则为计数模式,有:时,则为计数模式,有:X=2X=21313-N=8192-N-N=8192-N C/T=0 C/T=0时,则为定时模式,有:时,则为定时模式,有:X=2X=21313-N=8192-N-N=8192-N,N=N=t t/Tcy/Tcy【例例5-35-3】若计数个数若计数个数N N为为2 2,求计数初值。,求计数初值。公式法计算:公式法计算:X X819281922=8190=1FFEH2=8190=1FFEH 求补法计算:对求补法计算:对0 0000 0000 0010B0 00

10、00 0000 0010B取反加取反加1 1为:为:1 1111 1111 1110B(1 1111 1111 1110B(1FFEH1FFEH)初值计算:公式法 求补法:X=对N求补门控位作用当GATE=0时仅由TR0控制与门的开启。与门输出1时,控制开关接通,计数开始;当GATE=1时与门的开启由INT0和TR0共同控制。这种方式可以用来测量INT0引脚上正脉冲的宽度。注意:方式0的计数初值高8位和低5位确定麻烦,实际应用中常由16位的方式1取代。方式1:16位方式 X=2X=21616-N=65536-N -N=65536-N 计数范围:计数范围:1 16553665536 计数初值要计

11、数初值要分成分成2 2个字节个字节分别送入分别送入TH0TH0、TL0TL0【例例5-45-4】若要求定时器若要求定时器T0T0工作于方式工作于方式1 1,定时时间为,定时时间为1ms1ms,当,当晶振为晶振为6 MHz6 MHz时,求送入时,求送入TH0TH0和和TL0TL0的计数初值各为多少?应怎的计数初值各为多少?应怎样送入样送入TH0TH0和和TL0TL0?由于晶振为由于晶振为6 MHz6 MHz,所以机器周期,所以机器周期TcyTcy为为2 2S S,因此:,因此:N=t/TcyN=t/Tcy=110=110-3-3/210/210-6-6500500X X2 21616-N-N65

12、536-50065536-5006503665036FE0CH FE0CH 也可以利用以下也可以利用以下2 2条指令完成:条指令完成:v MOV TL0,#(65536-500)MOV TL0,#(65536-500)MODMOD 256;256;余数余数为计数初值的为计数初值的低字节低字节v MOV TH0,#(65536-500)MOV TH0,#(65536-500)/256 ;256 ;商商为计数初值的为计数初值的高字节高字节用传送指令分别将用传送指令分别将FEHFEH送入送入TH0TH0中,中,0CH0CH送入送入TL0TL0中即可。中即可。方式2:8位自动重装方式 X=2X=28

13、8-N=256-N -N=256-N 计数范围:计数范围:1 1256256 特别适合与脉冲信号发生器特别适合与脉冲信号发生器方式3:(仅T0有此方式,T1的方式3将停止计数)TL0 TL0进行进行8 8位定时位定时/计数计数 TH0TH0进行进行8 8位定时(位定时(T1T1方式方式2 2时,可出借时,可出借TR1TR1、TF1TF1)一般情况下,当定时器一般情况下,当定时器T1用作串口波特率发生器时,定时器用作串口波特率发生器时,定时器T0才设置为工作模式才设置为工作模式3。定时应用 定时时间较小时(小于定时时间较小时(小于65ms65ms)。晶振为。晶振为12 MHz12 MHz时,时,

14、TcyTcy为为1 1S S。可直接采用方式。可直接采用方式1 1完成定时任务。完成定时任务。例例1 1:输出:输出50Hz50Hz的方波。的方波。利用定时利用定时/计数器计数器T0T0的方式的方式1 1,产生,产生10ms10ms的定时,并使的定时,并使P1.0P1.0引脚上输出周期为引脚上输出周期为20ms20ms的方波,采用中断方式,设系统的方波,采用中断方式,设系统的晶振频率为的晶振频率为12 MHz12 MHz。确定方式字:确定方式字:T0T0在定时的方式在定时的方式1 1时:时:M1M0=01M1M0=01,GATE=0 GATE=0,C/T=0C/T=0方式控制字为方式控制字为0

15、101H H 求计数初值求计数初值X:X:TcyTcy为为1 1S S N=10ms/1N=10ms/1S=10S=10 000000X=65536-10000=D8F0HX=65536-10000=D8F0H应将应将D8D8送送TH0,F0HTH0,F0H送送TL0 TL0 定时时间较大时(大于定时时间较大时(大于65ms65ms)。实现方法:一是采用。实现方法:一是采用1 1个定时个定时器定时一定的间隔(如器定时一定的间隔(如20ms20ms),然后用软件进行计数;二是采),然后用软件进行计数;二是采用用2 2个定时器级联,其中一个定时器用来产生周期信号(如个定时器级联,其中一个定时器用来

16、产生周期信号(如20ms20ms为周期),然后将该信号送入另一个计数器的外部脉冲输入端为周期),然后将该信号送入另一个计数器的外部脉冲输入端进行脉冲计数。进行脉冲计数。例例2 2每秒闪烁一次的每秒闪烁一次的LED LED。设系统的晶振频率为。设系统的晶振频率为12MHz12MHz。确定方式字:确定方式字:T0T0在定时的方式在定时的方式1 1时:时:M1M0=01M1M0=01,GATE=0 GATE=0,C/T=0C/T=0方式控制字为方式控制字为0101H H 求计数初值求计数初值X:X:TcyTcy为为1 1S S N=20ms/1N=20ms/1S=20S=20 000000X=655

17、36-20000=4E20HX=65536-20000=4E20H应将应将4E4E送送TH0,20HTH0,20H送送TL0 TL0 需要定时需要定时500ms500ms,大于,大于65ms65ms采用定时采用定时20ms20ms,然后再计数,然后再计数2525次的方法实现次的方法实现 任务一任务一P1.0输出输出1000Hz的方波的方波n分析:周期=1/1000Hz=1ms,即每0.5msP1.0取反12MHz的晶振需要设:定时初值 N=500 TH0=(65536-500)(65536-500)/256 256 TL0=(65536-500)(65536-500)%256 256 工作方式

18、设置为方式1初始化定时器启动定时等待P1.0电平取反重装定时器初值定时时间到了中断结束主程序定时中断服务程序sbit P10=P10void main()TMOD=0 x01;TH0=(65536-500)/256;TL0=(65536-500)%256;ET0=1;EA=1;TR0=1;void Timer0_int()interupt 1TH0=(65536-500)/256;TL0=(65536-500)%256;P10=P10;任务二每秒闪烁一次的任务二每秒闪烁一次的LED任务目标任务目标利用定时中断实现将利用定时中断实现将LED每秒闪烁一次。每秒闪烁一次。程序设计程序设计分析分析要要

19、使使LED每秒闪烁一次,按每秒闪烁一次,按LED的点亮时间和的点亮时间和熄灭时间相同进行处理,则只需要进行熄灭时间相同进行处理,则只需要进行0.5s的定时。的定时。具体处理是,每过具体处理是,每过0.5s,将,将LED的状态取反就可以的状态取反就可以实现目标了。或者说,与本课题中的任务一类似,实现目标了。或者说,与本课题中的任务一类似,只不过是频率变得很低了,周期更长了只不过是频率变得很低了,周期更长了。任务二每秒闪烁一次的任务二每秒闪烁一次的LED 为了完成为了完成0.5s的定时,一般来说,有两种方的定时,一般来说,有两种方案可以实现。案可以实现。第一种方案是采用硬件定时的基础上,增加第一种

20、方案是采用硬件定时的基础上,增加一个存储单元,每次中断时使用该存储单元进行一个存储单元,每次中断时使用该存储单元进行计数,当达到某个计数值时再执行对应的程序,计数,当达到某个计数值时再执行对应的程序,这样就延长了定时的时间长度。这样就延长了定时的时间长度。第二种方案是也是采用一个定时器进行硬件第二种方案是也是采用一个定时器进行硬件定时,在每次中断时输出一个脉冲,然后采用硬定时,在每次中断时输出一个脉冲,然后采用硬件计数的方式进行延长定时时间。件计数的方式进行延长定时时间。任务二每秒闪烁一次的任务二每秒闪烁一次的LEDn分析:周期=500ms,即每500msP1.0取反硬件定时20ms,软件计数

21、25次12MHz的晶振需要设:定时初值 N=20000 TH0=(65536-20000)(65536-20000)/256 256 TL0=(65536-20000)(65536-20000)%256 256 工作方式设置为方式1sbit P10=P10;void main()TMOD=0 x01;TH0=(65536-500)/256;TL0=(65536-500)%256;ET0=1;EA=1;TR0=1;while(1);void Timer0_int()interupt 1TH0=(65536-500)/256;TL0=(65536-500)%256;P10=P10;sbit P10

22、=P10;unsigned char count=0;void main()TMOD=0 x01;TH0=(65536-20000)/256;TL0=(65536-20000)%256;ET0=1;EA=1;TR0=1;while(1);void Timer0_int()interupt 1TH0=(65536-20000)/256;TL0=(65536-20000)%256;count+;if(count=25)P10=P10;count=0;能否将能否将count定义放到中断服务程序内部?定义放到中断服务程序内部?问题:修改代码,让问题:修改代码,让P10输出输出1000HZ方波,方波,P

23、11输输出出500HZ方波方波sbit P10=P10;unsigned char count=0;void main()TMOD=0 x01;TH0=(65536-20000)/256;TL0=(65536-20000)%256;ET0=1;EA=1;TR0=1;while(1);void Timer0_int()interupt 1TH0=(65536-20000)/256;TL0=(65536-20000)%256;count+;if(count=25)P10=P10;count=0;任务三简易频率计任务三简易频率计任务目标任务目标 具体目标是:利用单片机的T0、T1的定时/计数功能,完

24、成对输入的信号的频率进行测量,测量的结果通过8位动态数码管显示出来。这里要求实现对0200KHz的信号频率进行准确测量,测量误差不超过1Hz。课题分析 在一个单片机系统中,在一个单片机系统中,为了实现频率的测量,就是要为了实现频率的测量,就是要对外部信号进行计数对外部信号进行计数,每到,每到1s时,将时,将计数所得的数值送到计数所得的数值送到显示器显示器上上。单片机系统要做三件事单片机系统要做三件事:n一是要一是要进行进行1s钟的定时钟的定时,n二是要二是要测量外部被测信号的周期数测量外部被测信号的周期数,n三是三是将频率显示出来将频率显示出来。单片机中的单片机中的2个定时器个定时器/计数器既

25、能进行定时,也能计计数器既能进行定时,也能计数,因而在本课题中采用单片机内部的定时器来完成课题数,因而在本课题中采用单片机内部的定时器来完成课题任务。任务。图8-1 简易频率计实物图图6-6 频率计电路原理图T0程序设计分析程序设计分析 因实验电路晶振fOSC11.0592MHz,所以T1的初值的装入语句如下:TH1=(65536-5*110592/12)/256;TL1=(65536-5*110592/12)%256;每定时1s钟时间到了,就停止T0的计数,而从T0的计数单元中读取计数的数值,然后进行数据处理,送到数码管显示出来。由本课题中的任务二中可知,T1工作在定时状态下,最大定时时间约

26、为65ms,达不到1s的定时,所以采用定时50ms,共定时20次,即可完成1s的定时功能。一、一、定时定时1s 二、输入的脉冲计数二、输入的脉冲计数 作为定时器作为定时器T0,为了得到,为了得到1s内的频率值,需要在定时内的频率值,需要在定时1s之前将其初始值赋为之前将其初始值赋为0。同时,由于。同时,由于T0的最大计数值为的最大计数值为65536,小于要求计数的频率的最大值,所以,在,小于要求计数的频率的最大值,所以,在1s内,内,完全有可能产生溢出,对此,采用与定时完全有可能产生溢出,对此,采用与定时1s的类似的方法,的类似的方法,使用软件来记录计数器有几次溢出。使用软件来记录计数器有几次

27、溢出。初始化初始化T0,T1开中断开中断启动启动T0,T1计数值计数值n=0;数码管动态显数码管动态显示频率值示频率值1s1s定时处理:定时处理:停止计数停止计数读取计数值,读取计数值,计算频率计算频率重置计数器重置计数器启动计数启动计数重装定时器初值重装定时器初值T1定时时间到了定时时间到了中断结束中断结束主程序主程序定时中断服务程序定时中断服务程序记录溢出次数记录溢出次数T0计数溢出计数溢出中断结束中断结束计数中断服务程序计数中断服务程序提问:n定时计数器的本质是什么?n与定时计数器相关的SFR有哪些?作用是什么?n如何使用定时计数器?人有了知识,就会具备各种分析能力,明辨是非的能力。所以我们要勤恳读书,广泛阅读,古人说“书中自有黄金屋。”通过阅读科技书籍,我们能丰富知识,培养逻辑思维能力;通过阅读文学作品,我们能提高文学鉴赏水平,培养文学情趣;通过阅读报刊,我们能增长见识,扩大自己的知识面。有许多书籍还能培养我们的道德情操,给我们巨大的精神力量,鼓舞我们前进。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服