51单片机定时器(考小题大题).ppt

上传人:sccc 文档编号:5085405 上传时间:2023-06-02 格式:PPT 页数:38 大小:559.51KB
返回 下载 相关 举报
51单片机定时器(考小题大题).ppt_第1页
第1页 / 共38页
51单片机定时器(考小题大题).ppt_第2页
第2页 / 共38页
51单片机定时器(考小题大题).ppt_第3页
第3页 / 共38页
51单片机定时器(考小题大题).ppt_第4页
第4页 / 共38页
51单片机定时器(考小题大题).ppt_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《51单片机定时器(考小题大题).ppt》由会员分享,可在线阅读,更多相关《51单片机定时器(考小题大题).ppt(38页珍藏版)》请在三一办公上搜索。

1、定时器/计数器及其应用,2,定时器/计数器及其应用,定时器/计数器的应用场合:定时或延时控制、对外部事件的检测、计数等;MCS-51系列8031、8051单片机有两个16位定时器/计数器(即T0和T1);8032、8052单片机有3个16位定时器/计数器(即T0、T1和T2);,3,定时器/计数器及其应用,所谓计数器就是对外部输入脉冲的计数;所谓定时器也是对脉冲进行计数完成的,计数的是51单片机内部产生的标准脉冲,通过计数脉冲个数实现定时。所以,定时器和计数器本质上是一致的,在以后的叙述中将定时器/计数器笼统称为定时器。,4,定时器/计数器及其应用,5,定时器的结构及工作原理,6,定时器的结构

2、及工作原理,组成:两个16位的定时器T0和T1,以及他们的工作方式寄存器TMOD和控制寄存器TCON等组成。内部通过总线与CPU相连。定时器T0和T1各由两个8位特殊功能寄存器TH0、TL0、TH1、TL1构成。工作方式寄存器TMOD:用于设置定时器的工作模式和工作方式;控制寄存器TCON:用于启动和停止定时器的计数,并控制定时器的状态;单片机复位时,两个寄存器的所有位都被清0。,8051定时器内部结构框图,7,定时器的结构及工作原理,两个可编程的定时器/计数器T1、T0。每个定时器内部结构实际上就是一个可编程的加法计数器,由编程来设置它工作在定时状态还是计数状态。两种工作模式:(1)计数器工

3、作模式就是对外部事件进行计数。计数脉冲来自相应的外部输入引脚T0(P3.4)或T1(P3.5)。当输入信号发生由1至0的负跳变(下降沿)时,计数器(TH0,TL0或TH1,TL1)的值增1。(2)定时器工作模式也是通过计数实现的。计数脉冲来自内部时钟脉冲,每个机器周期计数值增1,每个机器周期=12个振荡周期,因此计数频率为振荡频率的1/12。所以定时时间=计数值机器周期。,8,定时器的结构及工作原理,当控制信号 定时器工作在定时方式;加1计数器对脉冲f进行计数,每来一个脉冲,计数器加1,直到计时器计满溢出;因为,即一个计数脉冲的周期就是一个机器周期;计数器计数的是机器周期脉冲个数。从而实现定时

4、。当控制信号 定时器工作在计数方式;加1计数器对来自输入引脚T0(P3.4)和T1(P3.5)的外信号脉冲进行计数,每来一个脉冲,计数器加1,直到计时器计满溢出;,9,控制信号K可以控制计数器的“启动”和“停止”,,10,振荡周期、时钟周期、机器周期和指令周期,11,定时器的结构及工作原理,在每个机器周期的S5P2期间采样检测引脚输入电平。若前一个机器周期采样值为“1”,后一个机器周期采样值为“0”,则计数器加1。新的计数值在检测到输入引脚电平发生“1”到“0”的负跳变(下降沿)后,于下一个机器周期的S3P1期间装入计数器中。由于CPU需要两个机器周期来识别一个“1”到“0”的跳变信号,所以最

5、高的计数频率为振荡周期的1/24。,12,定时器的结构及工作原理,定时/计数器对输入信号的要求外部计数脉冲的最高频率为系统振荡器频率的1/24,例如选用12MHz频率的晶体,则可输入500KHz的外部脉冲。输入信号的高、低电平至少要分别保持一个机器周期。如图所示,图中Tcy为机器周期。,13,可编程定时器的工作方式、启动、停止、溢出标志、计数器等都是可编程的通过设置寄存器TMOD,TCON,TH0,TL0,TH1和TL1 实现。当设置了定时器的工作方式并启动定时器工作后,定时器就按被设定好的工作方式独立工作,不再占用CPU,只有在计数器计满溢出时才向CPU申请中断,占用CPU。由此可见,定时器

6、是单片机中工作效率高且应用灵活的部件。,定时器的结构及工作原理,14,定时器/计数器及其应用,定时器的TMOD和TCON寄存器,15,定时器的TMOD和TCON寄存器,8051单片机定时器主要有几个特殊功能寄存器组成:TMOD,TCON,TH0,TL0,TH1,TL1。TMOD:设置定时器的工作方式;TCON:控制定时器的启动和停止;TH0和TL0:存放定时器T0的初值或计数结果;TH0存放高8位,TL0 存放低8位;TH1和TL1:存放定时器T1的初值或计数结果;TH1存放高8位,TL1 存放低8位;,16,工作方式控制寄存器TMOD,8位分为两组,高4位控制T1,低4位控制T0。(1)GA

7、TE 门控位 0:以TRX(X=0,1)来启动定时器/计数器运行。1:用外中断引脚(INT0*或INT1*)上的高电平和TRX来启动定时器/计数器运行。,(2)M1、M0 工作方式选择位 M1 M0 工 作 方 式 0 0 方式0,13位定时器/计数器。0 1方式1,16位定时器/计数器。1 0 方式2,8位常数自动重新装载 1 1 方式3,仅适用于T0,T0分成两个8位计数器,T1停止计数。,(3)C/T*计数器模式和定时器模式选择位0:定时器模式。1:计数器模式。,(4)TMOD无位地址,不能位寻址。(5)复位时,TMOD所有位均为“0”。,17,低4位与外部中断有关,高4位的功能如下:(

8、1)TF1、TF0 计数溢出标志位 定时器T0或T1计数溢出时,由硬件自动将此位置“1”;TFx可以由程序查询,也是定时中断的请求源;(2)TR1、TR0 计数运行控制位 TRx=1:启动定时器/计数器工作 TRx=0:停止定时器/计数器工作,控制寄存器TCON,18,19,定时/计数器的初始化,51单片机的定时器/计数器是可编程的,但在进行定时或计数之前要对程序进行初始化,具体步骤如下:(1)对TMOD赋值,以确定定时器的工作模式;(2)置定时/计数器初值,直接将初值写入寄存器的TH0、TL0或TH1、TL1;(3)根据需要,对IE置初值,开放定时器中断;(4)对TCON寄存器中的TR0或T

9、R1置位,启动定时/计数器,置位以后,计数器即按规定的工作模式和初值进行计数或开始定时。,20,定时/计数器的初始化,初值计算:设计数器的最大值为M,则置入的初值X为:计数方式:X=M-计数值 定时方式:由(M-X)T=定时值,得X=M-定时值/T T为计数周期,是单片机的机器周期。(模式0:M为213,模式1:M为216,模式2和3:M为28),例如:机器周期为1s 时,若工作在模式0,则最大定时值为:2131s=8.192ms 若工作在模式1,则最大定时值为:2161s=65.536ms,21,定时器/计数器及其应用,定时器的工作方式,22,定时器T0有4种工作方式:即:方式0,方式1,方

10、式2,方式3。定时器T1有3种工作方式:即:方式0,方式1,方式2。,定时器的工作方式,23,方式0 M1、M0设置为00,为13位计数器,以T1为例,其框图如下:,定时器的工作方式方式0,计数脉冲输入,加1计数器,24,定时器的工作方式方式0,在这种方式下,16位寄存器TH1和TL1只用13位,由TH1的8位和TL1的低5位组成。TL1的高3位不定。当TL1的低5位计数溢出时,向TH1进位。而TH1计数溢出时,则向中断标志位TF1进位(即硬件将TF1置1),并请求中断。可通过查询TF1是否置“1”或考察中断是否发生来判定定时器T1的操作完成与否。,25,定时器的工作方式方式0,当C/T=0时

11、,为定时工作模式,开关接到振荡器的12分频器输出上,计数器对机器周期脉冲计数。其定时时间为:(213-初值)振荡周期12例如:若晶振频率为12MHz,则最长的定时时间为(213-0)(1/12)12us=8.191ms当C/T=1时,为计数工作模式,开关与外部引脚T1(P3.5)接通,计数器对来自外部引脚的输入脉冲计数。当外部信号发生负跳变时计数器加1。,26,定时器的工作方式方式0,GATE控制定时器Tx(T1或T0)的条件:(1)当GATE=0时,“或门”输出恒为1,“与门”的输出信号K由TRx决定(即此时K=TRx),定时器不受INTx输入电平的影响,由TRx直接控制定时器的启动和停止。

12、TRx=1;计数启动;TRx=0;计数停止;(2)当GATE=1时,“与门”的输出信号K由INTx输入电平和TRx位的状态一起决定(即此时K=TRxINTx),当且仅当TRx=1且INTx=1(高电平)时,计数启动;否则,计数停止。,返回,27,方式1 M1、M0=01,为16位的计数器,除位数外,其他与方式0相同。其定时时间为:(216-初值)振荡周期12例如:若晶振频率为12MHz,则最长的定时时间为(216-0)(1/12)12us=65.536ms,定时器的工作方式方式1,28,方式2 M1、M0=10,为自动恢复初值的8位计数器,等效框图如下:TLx作为8位计数器,THx作为重置初值

13、的缓冲器。,定时器的工作方式方式2,THx作为常数缓冲器,当TLx计数溢出时,在置“1”溢出标志TFx的同时,还自动的将THx中的初值送至TLx,使TLx从初值开始重新计数。定时器/计数器的方式2工作过程如图(x=0,1)。,29,优点:方式0和方式1用于循环重复定时或计数时,在每次计数器挤满溢出后,计数器复0。若要进行新一轮的计数,就得重新装入计数初值。这样一来不仅造成编程麻烦,而且影响定时精度。而方式2具有初值自动装入的功能,避免了这个缺点,可实现精确的定时。缺点:只有8位计数器,定时时间短、计数范围小。其定时时间为:(28-初值)振荡周期12若晶振频率为12MHz,则最长的定时时间为(2

14、8-0)(1/12)12us=0.256ms,定时器的工作方式方式2,方式2工作过程图(x=0,1)。,30,定时器/计数器及其应用,定时器的编程和应用,31,定时器的编程和应用,编程说明51单片机的定时器是可编程的,但在进行定时或计数之前要对程序进行初始化,具体步骤如下:(1)确定工作方式字:对TMOD寄存器正确赋值;(2)确定定时初值:计算初值,直接将初值写入寄存器的TH0、TL0或TH1、TL1;初值计算:设计数器的最大值为M,则置入的初值X为:计数方式:X=M-计数值 定时方式:由(M-X)T=定时值,得X=M-定时值/T T为计数周期,是单片机的机器周期。(模式0 M为213,模式1

15、 M为216,模式2和3 M为28)(3)根据需要,对IE置初值,开放定时器中断;(4)启动定时/计数器,对TCON寄存器中的TR0或TR1置位,置位以后,计数器即按规定的工作模式和初值进行计数或开始定时。,32,定时器的编程和应用,例1 要在P1.0上输出一个周期为2ms的方波,假设系统振荡频率采用12MHz。利用T0方式0产生1ms的定时方波的周期用T0来确定,让T0每隔1ms计数溢出1次,即TF0=1;查询到TF0=1 则CPU对P1.0取反。,即要使P1.0每隔1ms取反一次。,33,定时器的编程和应用,第一步:确定工作方式字 方式0(13位)最长可定时 8.192ms;方式1(16位

16、)最长可定时 65.536ms;方式2(8位)最长可定时 256s。T0为方式0,M1M0=00 定时工作状态,C/T=0GATE=0,不受INT0控制,T1不用全部取“0”值。故TMOD=00H,34,定时器的编程和应用,第二步:计算1ms定时的初值X 设初值为X,则有:(213-X)1210-6 1/12=110-3可求得:X=8192-1000=7192X化为16进制,即X=1C18H=1,1100,000 1,1000B。所以,T0的初值为:TH0=E0H TL0=18H,35,例2 将例1中的输出方波周期改为1秒。分析:周期为1s的方波要求500ms的定时。(1)T0工作方式的确定因

17、定时时间较长,采用哪一种工作方式?由各种工作方式的特性,可计算出:方式0(13位)最长可定时 8.192ms;方式1(16位)最长可定时 65.536ms;方式2(8位)最长可定时 256s。所以采用定时器定时加软件计数的方法来实现延长定时。选方式1,定时50ms,软件计数10次。50ms 10=500ms。所以,TMOD=01H,定时器的编程和应用,以上各方式都不满足要求,36,(2)计算计数初值因为:(216-X)1210-6 1/12=5010-3所以:X=15536=3CB0H因此:TH0=3CH,TL0=B0H(3)10次计数的实现设计一个软件计数器,初始值设为10。每隔50ms定时

18、时间到,产生溢出标志TF0,程序查询到TF0=1,则软件计数器减1。这样减到0时就获得了500ms的定时。,定时器的编程和应用,37,以上的定时程序中,程序都要重置计时器初值,这样从定时器溢出发出溢出标志,到重装完定时器初值,在开始计数,之间总会有一段时间间隔,使定时时间增加了若干微秒,造成定时不够精确。为了减小这种定时误差,单片机中设置了工作方式2(自动重装初值),则可避免上述因素,省去程序中重装初值的指令,实现精确定时。但是工作方式2的缺点是只有8位计数器,定时时间受到很大限制。,定时器的编程和应用,38,例3 利用T0方式2产生250us的定时,在P1.0引脚上输出周期为500us的方波(要求精确定时)。(设系统振荡为12MHz)(1)工作方式选择实现精确定时,采用方式2。对于12MHz晶振,方式2的最大计数时间为28=256us,所以可实现250us的精确定时。故,设置TMOD=02H。(2)计算初值设初值为X:则(28-X)1210-61/12=25010-6 X=28-250=6=06H(3)程序设计采用查询TF0的状态来控制P1.0的输出。,定时器的编程和应用,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号