单片机原理及应用(第二版)第六章课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《单片机原理及应用(第二版)第六章课件.ppt》由会员分享,可在线阅读,更多相关《单片机原理及应用(第二版)第六章课件.ppt(70页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第6 6章章 AT89S51AT89S51单片机的单片机的 定时器定时器/计数器计数器12第第6章章目目录6.1定定时器器/计数器的数器的结构构6.1.1工作方式控制寄存器TMOD6.1.2定时器/计数器控制寄存器TCON6.2定定时器器/计数器的数器的4种工作方式种工作方式6.2.1方式06.2.2方式16.2.3方式26.2.4方式36.3对外部外部输入的入的计数信号的要求数信号的要求6.4定定时器器/计数器的数器的编程和程和应用用6.4.1方式1的应用6.4.2方式2的应用6.4.3方式3的应用6.4.4门控制位GATEx的应用测量脉冲宽度6.4.5实时时钟的设计3内容概要内容概要工业
2、检测与控制,许多场合都要用到计数计数或定时定时功能。例如,对外部脉冲进行计数,产生精确的定时时间等。AT89S51片内有两个可编程的定时器/计数器T1、T0,可满足需要。本章介绍定时器/计数器的结构结构与功能功能,2种工作模式工作模式和4种工作方式工作方式,以及相关的2个特殊功能寄存器个特殊功能寄存器TMOD和TCON各位的定义及其编程,最后介绍定时器/计数器的编程及应用实例。46.1定时器定时器/计数器的结构计数器的结构定时器/计数器结构结构如图图6-1所示所示,定时器/计数器T0由特殊功能寄存器TH0、TL0构成,定时器/计数器T1由特殊功能寄存器TH1、TL1构成。5图6-1AT89S5
3、1单片机的定时器/计数器结构框图具有定时器和计数器2种工作模式种工作模式,4种工作方式(种工作方式(方式0、方式1、方式2和方式3)。属于增计数器增计数器。TMOD用于选择定时器/计数器T0、T1的工作模式和工作方式。TCON用于控制T0、T1的启动和停止计数,同时包含了T0、T1的状态。T0、T1不论是工作在定时器模式还是计数器模式,都是对脉冲信号进行计数,只是计数信号的来源不同。计数器模式计数器模式是对加在T0(P3.4)和T1(P3.5)两个引脚上的外部脉冲进行计数(见图6-1)。定时器工作模式定时器工作模式是对单片机的时钟振荡器信号经片内612分频后的内部脉冲信号计数。由于时钟频率是定
4、值,所以可根据计数值计算出定时时间根据计数值计算出定时时间。计数器的起始计数都是从计数器初值开始从计数器初值开始的的。单片机复位时计数器的初值为0,也可用指令给计数器装入一个新的初值。6.1.1工作方式控制寄存器工作方式控制寄存器TMOD用于选择定时器/计数器的工作模式和工作方式,字节地址字节地址为89H,不能位寻址,格式如图图6-2所示所示。7图图6-2TMOD格式格式8位分为两组,高高4位位控制T1,低低4位位控制T0。TMOD各位的功能。(1)GATE门控位门控位。0:仅由运行控制位TRx(x=0,1)来控制定时器/计数器运行。1:用外中断引脚(或)上的电平与运行控制位TRx共同来控制定
5、时器/计数器运行。8(2)M1、M0工作方式选择位工作方式选择位M1、M0共有4种编码,对应于4种工作方式种工作方式的选择,如表6-1所示。(3)C/计数器模式和定时器模式选择位计数器模式和定时器模式选择位90:为定时器工作模式,对单片机的晶体振荡器12分频后的脉冲进行计数。1:为计数器工作模式,计数器对外部输入引脚T0(P3.4)或T1(P3.5)的外部脉冲(负跳变)计数。6.1.2定时器定时器/计数器控制寄存器计数器控制寄存器TCON 字节地址为88H,可位寻址,位地址为88H8FH。格式如图6-3所示所示。图6-3TCON格式格式10在第5章已介绍与外部中断有关的低4位。这里仅介绍与定时
6、器/计数器相关的高4位功能。(1)TF1、TF0计数溢出标志位。当计数器计数溢出时,该位置“1”。使用查询方式时,此位作为状态位供CPU查询,但应注意查询有效后,应使用软件及时将该位清“0”。使用中断方式时,此位作为中断请求标志位,进入中断服务程序后由硬件自动清“0”。(2)TR1、TR0计数运行控制位。TR1位(或TR0位)=1,启动定时器/计数器工作的必要条件。11TR1位(或TR0位)=0,停止定时器/计数器工作。该位可由软件置“1”或清“0”。6.2定时器定时器/计数器的计数器的4种工作方式种工作方式4种工作方式分别介绍如下。6.2.1方式方式0M1、M0=00时,被设置为工作方式0,
7、等效逻辑结构框图如图图6-4所示所示(以定时器/计数器T1为例,TMOD.5、TMOD.4=00)。12图6-4定时器/计数器方式0逻辑结构框图13位位计数器,由TLx x(x=0,1)低低5位位和THx高高8位位构成。TLx低5位溢出则向THx进位,THx计数溢出则把TCON中的溢出标志位TFx置“1”。13图图6-2的的C/位位控制的电子开关决定了定时器/计数器的两种工作模式。(1)C/=0,电子开关打在上面位置,T1(或T0)为定时器工作模式,把时钟振荡器12分频后的脉冲作为计数信号。(2)C/=1,电子开关打在下面位置,T1(或T0)为计数器工作模式,计数脉冲为P3.4(或P3.5)引
8、脚上的外部输入脉冲,当引脚上发生负跳变时,计数器加1。GATE位状态位状态决定定时器/计数器的运行控制取决TRx一个条件还是TRx和x(x=0,1)引脚状态两个条件两个条件。14(1)GATE=0,A点(见图6-4)电位恒为1,B点电位仅取决于TRx状态。TRx=1,B点为高电平,控制端控制电子开关闭合,允许T1(或T0)对脉冲计数。TRx=0,B点为低电平,电子开关断开,禁止T1(或T0)计数。(2)GATE=1,B点电位由 (x=0,1)的输入电平和TRx的状态这两个条件来确定。当TRx=1,且 =1时,B点才为1,控制端控制电子开关闭合,允许T1(或T0)计数。故这种情况下计数器是否计数
9、是由TRx和INTX*两个条两个条件件来共同控制的。156.2.2方式方式1当M1、M0=01时,定时器/计数器工作于方式方式1,这时定时器/计数器的等效电路逻辑结构如图图6-5所示。方式方式1和方式和方式0的差别的差别仅仅在于计数器的位数计数器的位数不同,方式1为16位计数器位计数器,由THx高8位和TLx低8位构成(x=0,1),方式0则为13位计数器,有关控制状态位的含义(GATE、C/、TFx、TRx)与方式0相同。16 17图6-5定时器/计数器方式1逻辑结构框图6.2.3方式方式2方式0和方式1的最大特点是计数溢出后,计数器为全0。因此在循环定时或循环计数应用时就存在用指令反复装入
10、计存在用指令反复装入计数初值的数初值的问题问题。这不仅影响定时精度,也给程序设计带来麻烦。方式2就是针对此问题而设置的。当M1、M0为10时,定时器/计数器处于工作方式2,这时定时器/计数器的等效逻辑结构如图图6-6所示所示(以定时器T1为例,x=1)。18定时器/计数器的方式方式2为自动恢复初值为自动恢复初值(初值自动装入)的8位位定时器定时器/计数器计数器。TLx(x=0,1)作为常数缓冲器,当TLx计数溢出时,在溢出标志TFx置“1”的同时,还自动将自动将THx中的初值送至中的初值送至TLx,使TLx从初值开始重新计数。定时器/计数器的方式2工作过程如图6-7所示。1920图6-6定时器
11、/计数器方式2逻辑结构框图图图6-7方式2工作过程该方式可省去用户软件中重装初值的指令执行时间,简化定时初值的计算方法,可以相当精确地确定相当精确地确定定时时间定时时间。216.2.4方式方式3是为增加一个增加一个8位定时器位定时器/计数器计数器而设,使AT89S51单片机具有3个个定时器/计数器。方式方式3只适用于只适用于T0,T1不能工作在方式不能工作在方式3。T1处于方式3时相当于TR1=0,停止计数(此时T1可用来作为串行口波特率产生器)。1工作方式工作方式3下的下的T0TMOD的低的低2位为位为11时,T0的工作方式被选为方式3,各引脚与T0的逻辑关系如图图6-8所示所示。定时器/计
12、数器T0分为两个独立的分为两个独立的8位计数器位计数器TL0和和TH0,TL0使用T0的状态控制位C/、GATE、TR0、22TF0,而TH0被固定为一个固定为一个8位定时器位定时器(不能作为外部计数模式),并使用定时器T1的状态控制位TR1和TF1,同时占用定时器T1的中断请求源TF1。2T0工作在方式工作在方式3时时T1的各种工作方式的各种工作方式一般情况下,当当T1用作串行口的波特率发生器时,用作串行口的波特率发生器时,T0才工作才工作在方式在方式3。T0处于工作方式3时,T1可定为方式0、方式1和方式2,用来作为串行口的波特率发生器,或不需要中断的场合。23 24图6-8定时器/计数器
13、T0方式3的逻辑结构框图(1 1)T1T1工作在方式工作在方式0 0T1的控制字中M1、M0=00时,T1工作在方式0,工作示意图如图图6-9所示所示。25图6-9T0工作在方式3时T1为方式0的工作示意图(2)T1工作在方式工作在方式1当T1的控制字中M1、M0=01时,T1工作在方式1,工作示意图如图6-10所示。26图6-10T0工作在方式3时T1为方式1的工作示意图(3)T1工作在方式工作在方式2当T1的控制字中M1、M0=10时,T1的工作方式为方式2,工作示意图如图6-11所示。27图6-11T0工作在方式3时T1为方式2的工作示意图(4)T1设置在方式设置在方式3当T0设置在方式
14、3,再把T1也设成方式3,此时T1停止计数停止计数。6.3对外部输入的计数信号的要求对外部输入的计数信号的要求当定时器/计数器工作在计数器模式时,计数脉冲来自外部输入引脚T0或T1。当输入信号产生负跳变时,计数器的值增1。每个机器周期每个机器周期的S5P2期间,都对外部输入引脚对外部输入引脚T0或或T1进行采样。如在第一个机器周期中采得的值为1,而在下一个机器周期中采得的值为0,则在紧跟着的再下一个机器周期S3P128期间,计数器加1。由于确认一次确认一次负跳变负跳变要花要花2个个机器周期机器周期,因此外部输入的计数脉冲的外部输入的计数脉冲的最高频率最高频率为系统振荡器频率的为系统振荡器频率的
15、1/24。例如,选用6MHz频率的晶体,允许输入的脉冲频率最高为250kHz。如果选用12MHz频率的晶体,则可输入最高频率为500kHz的外部脉冲。对于外部输入信号的占空比占空比并没有什么限制并没有什么限制,但为了确保某一给定电平在变化之前能被采样一次,则这一电平至少要至少要保持一个机器周期保持一个机器周期。29故对外部输入信号的要求如图图6-12所示,图中,Tcy为机器周期。30图6-12对外部计数输入信号的要求6.4 6.4 定时器定时器/计数器的编程和应用计数器的编程和应用4 4种方式,方式种方式,方式0 0与方式与方式1 1基本相同,只是计数位数不同。方基本相同,只是计数位数不同。方
16、式式0 0初值计算复杂,初值计算复杂,一般不用方式一般不用方式0 0,而,而用方式用方式1 1。6.4.1 6.4.1 方式方式1 1的应用的应用【例例6-16-1】假设系统时钟频率采用假设系统时钟频率采用6MHz6MHz,在在P1.0P1.0引脚上输出引脚上输出一个一个周期为周期为2ms2ms的的方波方波,如,如图图6-136-13所示。所示。31图6-13P1.0引脚上引脚上输出周期出周期为2ms的方波的方波基本思想基本思想:方波周期:方波周期T0T0确定,确定,T0T0每隔每隔1ms1ms计数溢出计数溢出1 1次,次,即即T0T0每隔每隔1ms1ms产生一次中断,产生一次中断,CPUCP
17、U响应中断后,在中断服务响应中断后,在中断服务子程序中对子程序中对P1.0P1.0取反取反,如如图图6-136-13所示。为此要做如下几步所示。为此要做如下几步工作。工作。(1 1)计算计数初值)计算计数初值X X机器周期机器周期=2 2 s s=2 2 1010 6 6s s设需要设需要装入装入T0T0的的初值为初值为X X,则有,则有(2(21616 X X)2 2 1010 6 6=1=1 1010 3 3,2 21616 X X=500=500,X X=65036=65036。X X化为十六进制数,即:化为十六进制数,即:6503665036=FE0CHFE0CH。T0T0的的初值初值
18、为为TH0=FEHTH0=FEH,TL0=TL0=0CH0CH。32(2)初始化程序设计)初始化程序设计采用定时器中断方式中断方式工作。包括定时器初始化和中断系统初始化,主要是对寄存器寄存器IP、IE、TCON、TMOD的相应位进行正确的设置,并将计数初值送入定时器中。(3)程序设计)程序设计中断服务子程序除了完成所要求的产生方波产生方波的工作之外,还要注意将计数初值重新装入定时器初值重新装入定时器,为下一次产生中断做准备。本例,主程序主程序用一条转至自身的短跳转指令来代替。33参考程序如下:参考程序如下:ORG0000H;程序入口RESET:AJMPMAIN;转主程序ORG000BH;T0中
19、断入口AJMPIT0P;转T0中断处理程序IT0PORG0100H;主程序入口MAIN:MOVSP,#60H;设堆栈指针MOVTMOD,#01H;设置T0为方式1定时ACALLPT0M0;调用初始化子程序PT0M0HERE:AJMPHERE;原地循环,等待中断34PT0M0:MOVTL0,#0CH;T0初始化,装初值的低8位MOVTH0,#0FEH;装初值的高8位SETBET0;允许T0中断SETBEA;总中断允许SETBTR0;启动T0RETIT0P:MOVTL0,#0CH;中断子程序,T0重装初值MOVTH0,#0FEHCPLP1.0;P1.0的状态取反RETI程序说明:程序说明:当单片机
20、复位时,从程序入口0000H跳向主程序MAIN处执行。其中调用了T0初始化子程序PT0M0。35子程序返回后,程序执行程序执行“AJMPHERE”指令,则循环指令,则循环等待。等待。当响应响应T0定时中断定时中断时,则跳向T0中断入口,再从T0中断入口跳向IT0P标号处执行T0中断服务子程序。当执行完中断返回的指令执行完中断返回的指令“RETI”后,又返回断点处继续执行循环指令“AJMPHERE”。在实际的程序中,“AJMPHERE”实际上是一段主程序。当下一次定时器T0的1ms定时中断发生时,再跳向T0中断入口,从而重复执行上述过程。如CPU不做其他工作,也可用查询方式也可用查询方式进行控制
21、,程序要简单得多。36查询方式参考程序:查询方式参考程序:MOVTMOD,#01H;设置T0为方式1LOOP:MOVTH0,#0FEH;T0置初值MOVTL0,#0CHSETBTR0;接通T0LOOP1:JNBTF0,LOOP1;查TF0,TF0=0,T0未溢出;TF0=1,T0溢出,CLRTR0;T0溢出,关断T0CPLP1.0;P1.0的状态求反SJMPLOOP查询程序虽简单程序虽简单,但CPU必须要不断查询TF0标志,工作效率低效率低。37【例例6-2】系统时钟为6MHz,编写定时器T0产生1s定时的程序。基本思想:基本思想:采用定时器模式。因定时时间较长,首先确定采用哪一种工作方式采用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 应用 第二 第六 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内