《第6章MCS51单片机定时器、计数器.ppt》由会员分享,可在线阅读,更多相关《第6章MCS51单片机定时器、计数器.ppt(45页珍藏版)》请在第壹文秘上搜索。
1、【学习目的和要求】MCS-51单片机内部有两个定时器/计数器,它们可以用于对某一事件的计数结果进行控制,或按一定时间间隔进行控制。了解和掌握定时器/计数器的结构原理和各种工作方式。了解定时器/计数器的基本编程应用6.1 6.1 定时器定时器/计数器结构及工作原理计数器结构及工作原理6.2 6.2 定时器定时器/计数器的控制及工作方式计数器的控制及工作方式6.3 6.3 定时器定时器/计数器的编程和应用计数器的编程和应用第六章第六章 MCS-51MCS-51单片机定时器单片机定时器/计数器计数器6.1.1 6.1.1 定时器定时器/计数器的结构计数器的结构T0、T1又可分为两个独立的8位计数器,
2、即TH0、TL0和TH1、TL1,用于存储定时器/计数器的初值TMODTMOD为方为方式控制寄式控制寄存器,用存器,用来设置定来设置定时器时器/计计数器的工数器的工作方式作方式TCONTCON为控为控制寄存器,制寄存器,用来控制用来控制定时器定时器/计数器的计数器的启动与停启动与停止止MCS-51MCS-51系列单片机的系列单片机的5151子系列由两个子系列由两个1616位定时器位定时器T0T0、T1T1和两个寄和两个寄存器存器TCONTCON、TMODTMOD组成。组成。第六章第六章 MCS-51MCS-51单片机定时器单片机定时器/计数器计数器6.1.2 6.1.2 定时器定时器/计数器的
3、工作原理计数器的工作原理原理原理:都是进行计数操作,每来一个脉冲定时器都是进行计数操作,每来一个脉冲定时器/计数器就加计数器就加1 1,加,加满溢出后,再从新开始计数满溢出后,再从新开始计数,不同之处是输入的计数信号来源不同。不同之处是输入的计数信号来源不同。T0的结构示意图定时功能:是通过对单片机内部时钟脉冲的计数来实现的。定时功能:是通过对单片机内部时钟脉冲的计数来实现的。计数输入信号是内部时钟脉冲,每个机计数输入信号是内部时钟脉冲,每个机器周期使寄存器的值加器周期使寄存器的值加1 1。所以,计数频率是振荡频率的。所以,计数频率是振荡频率的1/121/12。计数功能:是通过对外部输入脉冲进
4、行计数来实现的。计数脉计数功能:是通过对外部输入脉冲进行计数来实现的。计数脉冲来自相应的外部输入引脚,冲来自相应的外部输入引脚,T0T0为为P3.4P3.4,T1T1为为P3.5P3.5。K1K2可预置初值可预置初值计数器计数器中断中断请求请求功能功能选择选择启动启动控制控制内部时钟内部时钟脉冲(定时)脉冲(定时)外部输入外部输入脉冲(计数)脉冲(计数)溢出信号溢出信号计数脉计数脉冲冲计数初计数初值值6.1.2 6.1.2 定时器定时器/计数器的工作原理计数器的工作原理原理原理:都是进行计数操作,每来一个脉冲定时器都是进行计数操作,每来一个脉冲定时器/计数器就加计数器就加1 1,加,加满溢出后
5、,再从新开始计数满溢出后,再从新开始计数,不同之处是输入的计数信号来源不同。不同之处是输入的计数信号来源不同。工作方式控制寄存器TMOD T1控制T0控制M0M0M1M1C/TGATEM0M0M1M1C/TGATED0D1D2D3D4D5D6D7GATE门控位C/T计数/定时选择M1 M0M1 M0工作方式选择M1M0工作方式工作方式功能描述功能描述00方式方式013位定时器位定时器/计数器计数器01方式方式116位定时器位定时器/计数器计数器10方式方式2自动重装初值的自动重装初值的8位定时器位定时器/计数器计数器11方式方式3T0分为两个独立的分为两个独立的8位定时器位定时器/计数器;这时
6、计数器;这时T1只能工作在方式只能工作在方式0、1、2,且不能用于中断。,且不能用于中断。6.2 6.2 定时器定时器/计数器控制及工作方式计数器控制及工作方式定时器控制寄存器TCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0中断请求标志触发方式选择启动定时/计数器0 低电平1 下降沿0 停止1 启动6.2 6.2 定时器定时器/计数器控制及工作方式计数器控制及工作方式字节地址为字节地址为88H,它可进行位寻址,位地址为,它可进行位寻址,位地址为8FH88H。第六章第六章 MCS-51MCS-51单片机定时器单片机定时器/计数器计数器6.2.3 定时器定时
7、器/计数器的工作方式计数器的工作方式通过对通过对TMODTMOD寄存器中寄存器中M0M0、M1M1位进行设置,可选择位进行设置,可选择4 4种工作方式。种工作方式。一、方式一、方式0 0 方式方式0为为13位计数位计数,由由TL0的低的低5位(高位(高3位未用)和位未用)和TH0的的8位组成。位组成。TL0的低的低5位溢出时向位溢出时向TH0进位,进位,TH0溢出时,置位溢出时,置位TCON中的中的TF0标志,标志,向向CPU发出中断请求。发出中断请求。计数器定时器计数脉冲输入二、方式二、方式1 1 方式方式1 1的计数位数是的计数位数是1616位,由位,由TL0TL0作为低作为低8 8位、位
8、、TH0TH0作为高作为高8 8位,组成了位,组成了1616位加位加1 1计数器计数器 。16X=2-N计数个数与计数初值的关系为:计数个数与计数初值的关系为:三、方式三、方式2 2 方式方式2 2为自动重装初值的为自动重装初值的8 8位计数方式。位计数方式。计数个数与计数初值的关系为计数个数与计数初值的关系为:工作方式2特别适合于用作较精确的脉冲信号发生器。8X=2-N四、方式四、方式3 3 方式方式3 3只适用于定时只适用于定时/计数器计数器T0T0,定时器定时器T1T1处于方式处于方式3 3时相当于时相当于TR1=0TR1=0,停止计数。,停止计数。工作方式工作方式3 3将将T0T0分成
9、为两个独立的分成为两个独立的8 8位计数器位计数器TL0TL0和和TH0TH0。第六章第六章 MCS-51MCS-51单片机定时器单片机定时器/计数器计数器两个定时器两个定时器/计数器的设置和使用是不同的。计数器的设置和使用是不同的。(1 1)工作方式)工作方式3 3下的定时器下的定时器/计数器计数器0 0第六章第六章 MCS-51MCS-51单片机定时器单片机定时器/计数器计数器图6-9 T0工作在方式3时T1为方式0图6-10 T0工作在方式3时T1为方式1图6-11 T0工作在方式3时T1为方式2(2 2)工作方式)工作方式3 3下的定时器下的定时器/计数器计数器1 1第六章第六章 MC
10、S-51MCS-51单片机定时器单片机定时器/计数器计数器6.2.4 定时器定时器/计数器的初始化计数器的初始化1.1.定时器定时器/计数器的初始化设置计数器的初始化设置 定时器定时器/计数器是一种可编程部件,在使用定时器计数器是一种可编程部件,在使用定时器/计计数器时,需要先对其进行初始化,初始化步骤如下。数器时,需要先对其进行初始化,初始化步骤如下。1.1.确定工作模式和工作方式确定工作模式和工作方式,将方式控制字写入,将方式控制字写入TMODTMOD寄存寄存 器中。器中。2.2.预置定时或计数初值预置定时或计数初值,将计算出的定时或计数初始值装,将计算出的定时或计数初始值装 入入TL0T
11、L0、TH0TH0或或TL1TL1、TH1TH1中。不同工作方式,其定时或计中。不同工作方式,其定时或计 数长度不一样,在定时或计数时不能超过其最大值。数长度不一样,在定时或计数时不能超过其最大值。3.3.开放定时器开放定时器/计数器的中断计数器的中断,即如果采用中断方式,要对,即如果采用中断方式,要对 IE IE中的相关位进行设置。中的相关位进行设置。4.4.启动定时器启动定时器/计数器工作计数器工作,使使TCONTCON中的中的TR0TR0或或TR1TR1位置位置1 1。第六章第六章 MCS-51MCS-51单片机定时器单片机定时器/计数器计数器2定时器定时器/计数器初值的计算计数器初值的
12、计算13M281921 3j2T13jX=2-T/TjX=M-N16M2655361 6j2T16jX=2-T/TjX=M-N8M22568j2T8jX=2-T/TjX=M-N 定时器定时器/计数器在不同工作方式时,定时初值或计数初值计数器在不同工作方式时,定时初值或计数初值的计算方法不同,最大定时时间和最大计数值也不同,在定时的计算方法不同,最大定时时间和最大计数值也不同,在定时或计数时不能超过其最大值。或计数时不能超过其最大值。第六章第六章 MCS-51MCS-51单片机定时器单片机定时器/计数器计数器6.3 6.3 定时器定时器/计数器的编程和应用计数器的编程和应用6.3.1方式方式0应
13、用应用【例例6-16-1】使用定时器使用定时器/计数器计数器0 0的方式的方式0 0,晶振频率为,晶振频率为 =6MHz=6MHz,以,以中中 断方式工作,在断方式工作,在P1.0P1.0引脚输出一个周期为引脚输出一个周期为1ms1ms的方波,试编写程序。的方波,试编写程序。解:根据题意,只要使解:根据题意,只要使P1.0P1.0脚每隔脚每隔500500us 取反一次即可得到周期取反一次即可得到周期1ms1ms的方波,因而的方波,因而T0T0的定时时间的定时时间T=500us T=500us。(1 1)设定)设定TMODTMOD(即控制字)。(即控制字)。TMOD的低4位控制定时器/计数器0,
14、设T0为定时模式,即 =0;工作在方式0,即 M1M0=00;设定为软件启动定时器,即GATE=0。TMOD高4位与T0无关,一般都取0,所以TMOD的控制字为00H。(2 2)计算定时初值。)计算定时初值。晶振频率晶振频率 为为6MHz6MHz,机器周期,机器周期 定时初值定时初值 =8192-250=7942=0001111100000110B=1F06H=8192-250=7942=0001111100000110B=1F06H因因TL0TL0的高的高3 3位未用,对计算出的初值要进行修正,即在低位未用,对计算出的初值要进行修正,即在低5 5位前插位前插入入3 3个个0 0,修正后的定时
15、初值,修正后的定时初值X=1111100000000110B=F806HX=1111100000000110B=F806H。socfsfToscj2106/12/126jTTX/213TC/第六章第六章 MCS-51MCS-51单片机定时器单片机定时器/计数器计数器(3 3)源程序清单)源程序清单ORGORG0000H0000HAJMPAJMPMAINMAIN;转主程序;转主程序ORGORG000BH000BH;T0T0中断矢量地址中断矢量地址AJMPAJMPISERISER;转中断服务程序;转中断服务程序ORGORG100H100HMAINMAIN:MOVMOVSPSP,#60H#60H;设
16、堆栈指针;设堆栈指针MOVMOVTMODTMOD,#00H#00H;写控制字;写控制字 MOV MOVTL0TL0,#06H#06H;置;置T0 T0 初值初值MOVMOVTH0TH0,#0F8H#0F8HSETBSETBET0ET0;允许;允许T0T0中断中断SETB SETB EAEA;CPUCPU开中断开中断SETBSETBTR0TR0;启动;启动T0T0SJMPSJMP$;等待中断;等待中断ISERISER:MOVMOVTL0TL0,#06H#06H;T0T0中断服务子程序,重置中断服务子程序,重置T0 T0 初值初值MOVMOVTH0TH0,#0F8H#0F8H;CPLCPLP1.0P1.0;P1.0P1.0取反取反RETIRETIENDEND第六章第六章 MCS-51MCS-51单片机定时器单片机定时器/计数器计数器【例例6-26-2】使用定时器使用定时器/计数器计数器1 1的方式的方式0 0,晶振频率为,晶振频率为6MHz6MHz,以查询,以查询 方式工作,在方式工作,在P1.0P1.0引脚输出一个周期为引脚输出一个周期为2ms2ms的方波,试编写程序。的方波,试编写程序