版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、定时器定时器/计数器的计数器的工作方式工作方式知识点:知识点:定时器工作原定时器工作原理理 在实际工作、生活中,许多控制离不开时间。尤其是在实际工作、生活中,许多控制离不开时间。尤其是定时控制更是以时间为核心,如家用的洗衣机中的洗涤、定时控制更是以时间为核心,如家用的洗衣机中的洗涤、脱水都是定时的。脱水都是定时的。 单片机又是如何完成定时的呢?单片机又是如何完成定时的呢? 通过前面的学习,通过前面的学习,当晶振频率一定时,单片机当晶振频率一定时,单片机的机器周期相应固定,如晶振频率为的机器周期相应固定,如晶振频率为12MHE12MHE时单片机的机时单片机的机器周期为器周期为1s1s。单片机对其
2、机器周期进行计数便可以实现。单片机对其机器周期进行计数便可以实现定时。如计数值为定时。如计数值为10001000则定时则定时1ms1ms、如计数值为、如计数值为10000001000000则则定时定时1s1s,以此类推。,以此类推。 本章要解决的是单片机如何完成对机器周期进本章要解决的是单片机如何完成对机器周期进行计数。行计数。问题的提出振荡器振荡器12加加1计数器计数器TFX起停起停控制信号控制信号CT=0CT=1中断中断TX端端 MCS-51MCS-51单片机片内有两个单片机片内有两个1616位的定时器计数位的定时器计数器,定时器器,定时器0(T0)0(T0)和定时器和定时器1(T1)1(
3、T1)。它们均可用作定。它们均可用作定时控制、延时以及对外部事件的计数及检测。时控制、延时以及对外部事件的计数及检测。 当外部晶体振当外部晶体振荡器为荡器为12MHz时,时,它提供它提供(输出输出) 12MHz的脉冲。的脉冲。 经过除以经过除以12变成变成1MHz的脉冲的脉冲记住:此时脉冲的周期记住:此时脉冲的周期为为11MHz= 1s 当当CT=0时,开关接时,开关接通通 在起停控制在起停控制信号中信号中“起起”信号信号作用下开关接通作用下开关接通加加1计数器对计数器对1MHz的脉冲进行的脉冲进行自动计数,直至计自动计数,直至计数器计满数器计满当计数器计满时,当计数器计满时,自动将自动将TF
4、X置置“1”,作为向单片机中断作为向单片机中断请求信号。请求信号。当当CT=1时,开时,开关向下接通,关向下接通,TX端的外部信号至此端的外部信号至此 在起停控制在起停控制信号中信号中“起起”信号信号作用下开关接通作用下开关接通加加1计数器对计数器对1MHz的脉冲进行的脉冲进行自动计数,直至计自动计数,直至计数器计满数器计满当计数器计满时,当计数器计满时,自动将自动将TFX置置“1”,作为向单片机中断作为向单片机中断请求信号。请求信号。由此可见:定时器计数器的核心是一个加由此可见:定时器计数器的核心是一个加1 1计数器。计数器。 1616位的定时器计数器分别由两个位的定时器计数器分别由两个8
5、8位的专用寄存位的专用寄存器组成,即器组成,即T0T0由由TH0TH0和和TL0TL0构成,构成,T1T1由由THlTHl和和TLlTLl构成。构成。0000000000000000TH0TL0TH0TL00000000100000000T0输入输入 TL0TL0、TL1TL1、TH0TH0、TH1TH1的地址顺序依次是的地址顺序依次是8AH8AH、8BH8BH、8CH8CH、8DH8DH。这。这些寄存器用来存放定时或计数初值,每个定时器都可以由软件设置成定时工些寄存器用来存放定时或计数初值,每个定时器都可以由软件设置成定时工作方式或计数工作方式。作方式或计数工作方式。 定时器计数器可工作在定
6、时方式或计数方式,由方式寄存器定时器计数器可工作在定时方式或计数方式,由方式寄存器TMODTMOD确确定,由控制寄存器定,由控制寄存器TCONTCON控制。控制。 注意:注意:1 1、当定时器工作在计数方式时,外部输人信号是加到、当定时器工作在计数方式时,外部输人信号是加到T0(P3T0(P34)4)或或T1(P3T1(P35)5)端。端。 一个外部输入信号的下降沿触发加一个外部输入信号的下降沿触发加1 1计数器加计数器加1 1,直至计满溢出。,直至计满溢出。 外部输入信号的高电平与低电平保持时间均需大于一个机器周期。外部输入信号的高电平与低电平保持时间均需大于一个机器周期。 2 2、当定时、
7、当定时/ /计数器工作在定时方式时,加计数器工作在定时方式时,加1 1计数器每一个机器周期加计数器每一个机器周期加1 1,直至计满溢出。直至计满溢出。 一旦定时器计数器被设置成某种工作方式后,它就会按设定的工一旦定时器计数器被设置成某种工作方式后,它就会按设定的工作方式独立运行,不再占用作方式独立运行,不再占用CPUCPU的操作时间,直到加的操作时间,直到加1 1计数器计满溢出,计数器计满溢出,才向才向CPUCPU申请中断。申请中断。 定时器计数器是一种可编程的部件,在定时器计数器是一种可编程的部件,在其工作之前必须做三件事:其工作之前必须做三件事:1、将方式字写入、将方式字写入TMOD2、将
8、计数初值写入相应计数器、将计数初值写入相应计数器 这个过程称为定时器计数器的初始化这个过程称为定时器计数器的初始化3、将控制字写入、将控制字写入TCON定时器计数器工作定时器计数器工作方式及控制方式及控制 TMODTMOD用于控制用于控制T0T0和和T1T1的工作方式,其各位定义如下:的工作方式,其各位定义如下: 工工作作方方式式寄寄存存器器TMOD TCONTCON用于控制定时器的启动、停止以及标明定时器的用于控制定时器的启动、停止以及标明定时器的溢出和中断情况。各位的含义如下:溢出和中断情况。各位的含义如下:控控制制寄寄存存器器T TC CO ON N TMOD TMOD中的中的M1M1、
9、M0M0具有具有4 4种组合,从而构成了种组合,从而构成了定时器计数器的定时器计数器的4 4种工作方式,这种工作方式,这4 4种工作方式种工作方式除了方式除了方式3 3以外,其它以外,其它3 3种工作方式的基本原理都种工作方式的基本原理都是一样的。是一样的。 下面分别介绍下面分别介绍4 4种工作方式的特点及工作情种工作方式的特点及工作情况。况。定定时时器器计计数数器器的的工工作作方方式式 在单片机中在单片机中定时定时计数的原理是对其寄存器的内容完成对计数的原理是对其寄存器的内容完成对机器周机器周期期外部脉冲进行外部脉冲进行+1+1计数直至溢出。为了获取计数直至溢出。为了获取不同时间不同时间不同
10、脉冲个数,不同脉冲个数,只要对寄存器预先写入一个数据就可以实现。这个数据称为只要对寄存器预先写入一个数据就可以实现。这个数据称为初值初值。工工作作方方式式0 0X200MLN其中:其中:200ML:最大值:最大值N:计数值:计数值X: 初值初值 方式方式0:16位的计数器位的计数器(THO和和TL0)只只用了用了13位构成位构成13位定时器计数器。位定时器计数器。 TL0的高的高3位未用,当位未用,当TL0的低的低5位计满位计满时,向时,向TH0进位,而进位,而TH0溢出后对中断标志溢出后对中断标志位位TF0置置1,并向,并向CPU申请中断。申请中断。 1313位计数器位计数器: : 最大计数
11、值为最大计数值为8192(8192(相当相当200ML) ) 定时值t(相当N ,但t 是时间单位) 初值(相当X ) 即:t/机器周期机器周期+初值初值= 81928192 t=(T0初值初值)机器周期机器周期1、初值、初值根据上式可知:初值根据上式可知:初值= - - t/机器周期机器周期例如:定时值为例如:定时值为5000ss,机器周期为,机器周期为1 1s 初值初值=8192-5000/=8192-5000/s=3192=0000110001111000B将初值写入将初值写入T0寄存器的方法是寄存器的方法是:高高8位写入位写入01100011TH0,低,低5位位11000写入写入TL0
12、例如:要求计满例如:要求计满129129个外部脉冲后溢出中断,则个外部脉冲后溢出中断,则计数初值为计数初值为8192-129=8063=1F7FH8192-129=8063=1F7FH 即即TLO=1FHTLO=1FH、TH0=FBHTH0=FBH 又如:已知单片机的机器周期为又如:已知单片机的机器周期为1s1s,要,要求定时值到达求定时值到达5000s5000s时溢出中断,则定时初值时溢出中断,则定时初值为为8192-8192-(5000s5000sss) = 3192=0C78H= 3192=0C78H 即即TLO=18HTLO=18H、TH0=63HTH0=63H2 2、控制、控制 T0
13、工作在方式工作在方式1的逻辑结构如下图所示。的逻辑结构如下图所示。由图可见,它与工作方式由图可见,它与工作方式0的差别仅在于工的差别仅在于工作方式作方式1是以是以16位计数器参加计数,且定时位计数器参加计数,且定时时间为:时间为:t=(216T0初值初值)机器周期机器周期即:即:初值初值= 216t/机器周期机器周期工工作作方方式式1 1 T0T0在工作方式在工作方式2 2的逻辑结构如下图所示。的逻辑结构如下图所示。工工作作方方式式2 2 定时器定时器/计数器构成一个能重复置初值的计数器构成一个能重复置初值的8位计位计数器。数器。 在工作方式在工作方式0、工作方式、工作方式1中,若用于重复定中
14、,若用于重复定时计数,则每次计满溢出后,计数器变为全时计数,则每次计满溢出后,计数器变为全0,故还得重新装入初值。故还得重新装入初值。 而工作方式而工作方式2可在计数器计满溢出时自动装可在计数器计满溢出时自动装入初值,工作方式入初值,工作方式2把把16位的计数器拆成两个位的计数器拆成两个8位位计数器。计数器。TL0用作用作8位计数器,位计数器,TH0用来保存初值,用来保存初值,每当每当TL0计满溢出时,可自动将计满溢出时,可自动将TH0的初值再装的初值再装入入TL0中。工作方式中。工作方式2的定时时间为:的定时时间为: t=(28T0初值)初值)机器周期机器周期即:即:初值初值=256- t/
15、机器周期机器周期 工作方式工作方式3 3的逻辑结构图如下图所示。的逻辑结构图如下图所示。工工作作方方式式3 3 该工作方式只适用于定时器计数器该工作方式只适用于定时器计数器T0。T0在工作方式在工作方式3被拆成两个相互独立的计数器,其被拆成两个相互独立的计数器,其中,中,TL0使用原使用原T0的各控制位、引脚和中断源的各控制位、引脚和中断源CT 、GATE、TR0、INT0 和和TF0; 而而TH0则只能作为定时器使用,但它占用则只能作为定时器使用,但它占用T1的的TR1和和TF1,即占用了,即占用了T1的中断标志和运行控的中断标志和运行控制位。制位。 一般在系统需增加一个额外的一般在系统需增
16、加一个额外的8位定时器时,位定时器时,可设置为工作方式可设置为工作方式3,此时,此时,T1虽仍可定义为工虽仍可定义为工作方式作方式0、工作方式、工作方式1和工作方式和工作方式2,但只能用在,但只能用在不需中断控制的场合。不需中断控制的场合。1、要求计满要求计满20002000个外部脉冲后溢出中断,方式个外部脉冲后溢出中断,方式0 0,求,求计数初值的计数初值的TL0=TL0=?、?、TH0=TH0=?2 2、已知单片机的机器周期为、已知单片机的机器周期为1s1s,要求定时值到达,要求定时值到达7000s7000s时溢出中断,定时、方式时溢出中断,定时、方式1 1,求定时初值的,求定时初值的TL
17、0=TL0=?、?、TH0=TH0=?3、T0方式方式1,定时值,定时值5ms,TH0=?、?、TL0=?4、T1方式方式2,定时值,定时值250s,TH1=?、?、TL1=?TH0=C1TL0=10TH0=E4TL0=A8TH0=ECTL0=78TH0=06TL0=06 应用定时器应用定时器/ /计数器时应注意两点:一是初始计数器时应注意两点:一是初始化(写入控制字),二是对初值的计算。化(写入控制字),二是对初值的计算。 初始化步骤为:初始化步骤为:向向TMODTMOD写工作方式控制字。写工作方式控制字。向计数器向计数器TLTL、THTH装入初始值。装入初始值。置置TR=1TR=1,启动计
18、数。,启动计数。置置ET=1ET=1,允许定时器计数器中断,允许定时器计数器中断( (若需要时若需要时) )。置置EA=1EA=1,CPUCPU开中断开中断( (若需要时若需要时) )。定定时时器器/ /计计数数器器应应用用举举例例 例如:设例如:设T0T0为工作方式为工作方式1 1,设置为定时状态,定时时间,设置为定时状态,定时时间为为2ms2ms,每当,每当2ms2ms到,申请中断,在中断服务程序中将到,申请中断,在中断服务程序中将P1.0P1.0的内容取反送出的内容取反送出( (假设晶振为假设晶振为6MHz)6MHz)。 解:已知晶振频率为解:已知晶振频率为6MHz6MHz,机器周期,机
19、器周期=2s=2s 下面先计算下面先计算2ms2ms定时的定时的TOTO初始值初始值 当当T0T0工作在方式工作在方式1 1时时 TOTO初始值初始值=2=21616- -定时时间机器周期定时时间机器周期 =2=21616-2ms-2ms 2s 2s 2 216162 21010-3-31010-6-6=65536-1000=64536 =FC18H=65536-1000=64536 =FC18H。 即:即:TH0=FCHTH0=FCH、TL0=18HTL0=18H由于题目要求由于题目要求T0工作在方式工作在方式1,所以,所以TMOD=01H编程如下编程如下: :ORG 0000H ;AJMP
20、 MAIN ;转主程序;转主程序ORG 000BH ;INT: MOV TL0,#18H ;T0中断服务程序中断服务程序 MOV TH0,#0FCH ;重设计数初值;重设计数初值 CPL P1.0 ; 输出取反输出取反 RETI ;MAIN:MOV SP,#63H ;置堆栈指针;置堆栈指针 MOV TMOD,#01H ;T0初始化初始化 MOV TL0;#18H ; MOV TH0;#0FCH; SETB TR0 ;启动;启动T0计数计数 SETB ET0 ;允许;允许T0中断中断 SETB EA ;CPU开中断开中断RLL: SJMP RLL ;等待;等待 END主程序与中断服务程序的关系
21、中断程序 主程序MAIN中断响应中断服务程序入口地址RETIORG 000BH INT: MOV TL0,#18H MOV TH0,#0FCH CPL P1.0 RETI MAIN:MOV SP,#63H MOV TMOD,#01H MOV TL0;#18H MOV TH0;#0FCH SETB TR0 SETB ET0 SETB EA RLL: SJMP RLL END 又例如:当又例如:当GATE=1GATE=1时,时,TR0=1TR0=1时,只有时,只有INTO INTO 引脚上出现高电平时,引脚上出现高电平时,T0T0才被允许计数。试利用才被允许计数。试利用这一功能测试这一功能测试IN
22、TOINTO引脚上的正脉冲的宽度(机器引脚上的正脉冲的宽度(机器周期数)。周期数)。 设外部待测脉冲由设外部待测脉冲由INTOINTO(P3.2P3.2)输入,)输入,T0T0工工作在作在方式方式1 1,设置为,设置为定时状态定时状态,GATEGATE置为置为“1 1”,测试时,在测试时,在INTOINTO端为端为“0”0”时置时置TR0TR0为为“1”1”,当,当INTO INTO 端变为端变为“1”1”时启动计数;时启动计数;INTOINTO端再次变为端再次变为“0”0”时停止计数,此时的计数值就是被测正脉冲时停止计数,此时的计数值就是被测正脉冲的宽度。的宽度。编程思路:编程思路:在此期间
23、对机器周期进行计数在此期间对机器周期进行计数根据题意:根据题意:T0T0工作在方式工作在方式1 1、定时状态、定时状态、INT0=“1”INT0=“1”期间对机器周期进行计数。期间对机器周期进行计数。 于是,确定方式字如下:于是,确定方式字如下:即即TMOD=09HTMOD=09H。并在。并在INT0=0INT0=0期间置期间置TR0=1TR0=1TR0=1、INT0=1时开时开始计数始计数TR0=0、INT0=0时停时停止计数止计数编程如下:编程如下: ORG 0000HORG 0000H MOV TMOD MOV TMOD,#09H #09H ;T0T0工作方式工作方式1 1定时,定时,GATE=1GATE=1 MOV TL0 MOV TL0,#00H #00H ; MOV TH0MOV T
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋场地租赁合同
- 砌筑劳务分包合同范本
- 二手房按揭贷款合同书
- 木皮买卖合同
- 北京技术合同
- xx货物运输保险合同范本
- 2025出口商品购货的合同
- 存量房买卖居间服务合同
- 游泳馆员工合同协议书
- 出租居间合同范本
- 《中国古代寓言》导读(课件)2023-2024学年统编版语文三年级下册
- 五年级上册计算题大全1000题带答案
- 工程建设行业标准内置保温现浇混凝土复合剪力墙技术规程
- 液压动力元件-柱塞泵课件讲解
- 人教版五年级上册数学脱式计算100题及答案
- 屋面细石混凝土保护层施工方案及方法
- 2024年1月山西省高三年级适应性调研测试(一模)理科综合试卷(含答案)
- 110kv各类型变压器的计算单
- 5A+Chapter+1+Changes+at+home+课件(新思维小学英语)
- 安徽省2023年中考数学试卷(附答案)
- 护工(陪护)培训教材(完整版)资料
评论
0/150
提交评论