单片机原理与接口技术 教学课件 ppt 作者 朱玉红 单元8

上传人:E**** 文档编号:89497853 上传时间:2019-05-25 格式:PPT 页数:24 大小:320KB
返回 下载 相关 举报
单片机原理与接口技术 教学课件 ppt 作者 朱玉红 单元8_第1页
第1页 / 共24页
单片机原理与接口技术 教学课件 ppt 作者 朱玉红 单元8_第2页
第2页 / 共24页
单片机原理与接口技术 教学课件 ppt 作者 朱玉红 单元8_第3页
第3页 / 共24页
单片机原理与接口技术 教学课件 ppt 作者 朱玉红 单元8_第4页
第4页 / 共24页
单片机原理与接口技术 教学课件 ppt 作者 朱玉红 单元8_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《单片机原理与接口技术 教学课件 ppt 作者 朱玉红 单元8》由会员分享,可在线阅读,更多相关《单片机原理与接口技术 教学课件 ppt 作者 朱玉红 单元8(24页珍藏版)》请在金锄头文库上搜索。

1、单元8 单片机定时/计数器,学习目的: 掌握单片机的定时器的基本结构,掌握定时器的基本使用方法。 重点难点: 单片机定时器的工作方式,定时器应用。 外语词汇:Timer(定时器)、Counter(计数器)、Gate(门)、Mode(模式)。 定时/计数器(Timer/Counter)是单片机内的重要部分,主要包括计数和定时两个功能。,8.1 定时/计数器的结构及工作原理,8.1.1定时计数器T0、Tl的结构,80C51单片机定时/计数器内部结构框图如图8-1所示。,图8-1 80C51单片机定时/计数器内部结构框图,由图8-1知,定时计数器T0、Tl主要由存放计数初值和结果值的两对8位寄存器(

2、TH0、TL0和THl、TLl),方式寄存器TMOD和控制寄存器TCON组成。其中,TMOD用于设置T0、Tl的工作方式;TCON中的TR0、TRl用于控制T0、Tl的运行;P3.4、P3.5引脚用于计数器方式下输入外部计数信号。,8.1.2定时计数器T0、Tl的工作原理,T0和Tl的工作原理如图8-2所示。,图8-2 T0和Tl的工作原理,定时计数器T0、Tl用做定时器时,对机器周期进行计数,每经过一个机器周期计数器加1,直到计数器计满溢出。由于一个机器周期由l2个时钟周期组成,所以计数频率为时钟频率的112。所以定时器的定时时间不仅与计数器的初值即计数长度有关,而且还与系统的时钟频率大小有

3、关。定时计数器T0、Tl用做计数时,计数器对来自输入引脚T0(P34)和Tl(P3.5)的外部信号计数。计数器对外部脉冲信号的占空比没有特别的要求,但必须保证输入的高电平和低电平信号至少应维持一个完整的机器周期。,8.1 定时/计数器的结构及工作原理,定时计数器的功能和工作模式的选择是由工作方式控制寄存器TMOD和定时器控制寄存器TCON完成的。用户可通过对上述寄存器的初始化编程,来设置T0、T1的计数初值和工作方式,控制T0、T1运行。,8.2.1 定时器控制寄存器(TCON),特殊功能寄存器TCON的高4位存放定时计数器T0、Tl的运行控制位和计数溢出标志位,低4位存放外部中断的触发方式控

4、制位和锁存外部中断的请求标志位。其格式如下:,1.计数溢出标志位TF0(TF1) 当计数器计数溢出(计满)时,该位置“1”。 查询方式时,此位作状态位供查询,软件清“0”,中断方式时,此位作中断标志位,硬件自动清“0”。 2. 定时器运行控制位TR0(TR1) TR0(TR1)=0,停止定时计数器工作;TR0(TR1)=1,启动定时计数器工作。可用指令使其置“1”或清“0”。,8.2.2工作方式控制寄存器(TMOD),特殊功能寄存器TMOD为T0、Tl的工作方式寄存器,字节地址为89H,只能按字节形式操作,不能进行位寻址。复位时TMOD所有位均清为0。其格式如下:,TMOD的低4位为T0的方式

5、字段,高4位为Tl的方式字段,它们的含义完全相同。 M1 M0:T0Tl的工作方式选择位,T0T1工作方式选择位的意义见表8-1。,表8-1 T0T1工作方式选择位的意义,CT:定时器或计数器方式选择位。当CT位为0时,选择定时器方式。当CT位为1时,选择计数器方式。在计数器方式中,对外部引脚(T0为P3.4,Tl为P3.5)上的输入脉冲信号进行计数。 GATE:T0Tl的门控位。当GATE位为0时,定时器计数器T0、Tl的运行仅受TR0、TRl的控制,不受外部引脚电平的状态的影响。当GATE位置为l时,定时计数器T0、Tl的运行不仅受TR0、TRl的控制,而且还受到外部引脚电平状态的控制(I

6、NT0控制T0,INT1控制Tl)。即只有当INT0(INTl)引脚为高电平且TRO(TRl)位为l时,才启动TO(T1)计数;当INTO(INTl)引脚为低电平或TR0(TRl)位为0时,均使T0(T1)停止计数。,8.3 定时/计数器的工作方式,定时计数器T0有4种工作方式,而定时计数器Tl只有3种工作方式。不同的工作方式,定时计数器的结构有所不同,功能上也有差别。,方式0由TL0TLl的低5位和TH0THl的8位组成。当TL0TLl的低5位产生溢出进位时向TH0THl进位,TH0THl计数溢出时置溢出中断请求标志位TF0TFl为1,向CPU请求中断。定时计数器0在工作方式0的逻辑结构如图

7、8-3所示。,8.3.1 方式0,图8-3 定时计数器0在工作方式0的逻辑结构,由图8-3可知,在方式0的T0Tl计数脉冲控制电路中,有一个方式电子开关和允许计数控制电子开关。当CT位为0时,方式电子开关与上面接通,以时钟频率的l2分频信号作为T0Tl的计数信号;当CT位为l时,方式电子开关与下面接通 ,此时以T0(P34)Tl(P35)引脚上的输入脉冲作为T0Tl的计数脉冲。当GATE位为0时,由TR0TRl控制定时器工作,当GATE位为l时,定时器不仅受TR0TRl的控制,而且还受INT0/INT1引脚上的电平控制。 在方式0下,计数工作方式时,计数值的范围是:18192(213)。当T0

8、Tl以方式0计数时,假设系统需计数x次,计数初值以a表示,则二者的关系为 因此,预先给计数器(TH0、TL0)装入常数:a= 213x。将a换算为二进制数,高八位装入TH0,低五位装入TL0,启动定时/计数器,即可实现x次计数溢出。 定时工作方式时,若定时/计数器X(X=0、1)工作于方式0,计数初值为a,时钟频率为fosc,则定时时间(单位为s)为,若给定了定时时间,定时初值a的大小为,因此,TL0的初值为l8H,TH0的初值为63H,对T0的初始化子程序如下: INTT0: MOV TH0,#63H MOV TL0#18H SETB EA SETB ET0 SETB TRO,比如fosc=

9、12MHz,T0的定时时间t=5ms,则定时初值a为,=8192-5000=3192=110001111000B,8.3.2 方式1,方式l为16位定时计数器工作方式,定时计数器0在工作方式1的逻辑结构如图8-4所示。 方式l由TL0TLl的8位和TH0THl的8位组成。当TL0TLl的8位产生溢出进位时向TH0THl进位,TH0THl计数溢出时置溢出中断请求标志位TF0TFl为1,向CPU请求中断。 在方式1下,当为计数工作方式时,计数值的范围是165536(216)。,当T0Tl以方式1计数时,如系统需计数x次,计数初值以a表示,则二者的关系为 将a换算为二进制数,高8位装入TH0,低8位

10、装入TL0,启动定时/计数器,即可实现x次计数溢出。 定时工作方式时,若定时/计数器X(X=0、1)工作于方式1,计数初值为a,时钟频率为fosc,则定时时间(单位为s)为 若给定了定时时间,定时初值a的大小为 比如fosc=12MHz,Tl的定时时间t=20ms,则定时初值a为 因此TLl的初值为0EOH,THl的初值为0B1H,对Tl的初始化子程序如下: INTTl: MOV THl,#0B1H MOV TLl,#0EOH SETB EA SETB ETl SETB TRl,=65536-20000=45536=B1E0H,图8-4 定时计数器0在工作方式1的逻辑结构,方式2为自动恢复计数

11、初值的8位定时计数器工作方式。T0Tl工作于方式0或方式1时,若需要重复计数,就需要用户用指令重新填充初值;而方式2在计数器溢出时会自动地装入新的计数初值,开始新一轮的计数。由于方式0或方式1是通过指令装入计数初值的,而执行指令需要时问,因此,在方式2的定时时间比较准确。定时计数器0在工作方式2的逻辑结构如图8-5所示。,8.3.3 方式2,图8-5 定时计数器0在工作方式2的逻辑结构,在方式2时,TL0TLl作为8位计数器,TH0THl为自动恢复初值的8位计数器。当TL0TLl计数发生溢出时,一方面置溢出中断请求标志TF0TFl为1,向CPU请求中断,同时又将TH0THl的内容送入TL0TL

12、l,使T0Tl从初值开始重新加l计数。因此T0Tl工作于方式2时,定时精度高,但定时时间范围小。 由图8-5可知,方式2的T0/T1计数控制与方式0和方式1完全相同,不同之处在于当CPU响应T0Tl的溢出中断后会自动将TH0THl的内容填充到TL0TLl。 当T0Tl以方式2计数时,如系统需计数x次,计数初值以a表示,则二者的关系为 将a换算为二进制数, TH0和TL0都装入初值a,启动定时/计数器,即可实现x次计数。 若定时/计数器X(X=0、1)工作于方式2,计数初值为a,时钟频率为f,则定时时间(单位为s)为 若给定了定时时间,定时初值a的大小为 比如fosc=12MHz,Tl的定时时间

13、t=200s,则定时初值a为,=256-200=56,因此,TL0的初值为56,TH0的初值为56,对T0的初始化的子程序如下: INTT0: MOV TH0,#56 MOV TL0, #56 SETB EA SETB ET0 SETB TR0,8.3.4 方式3,1.工作方式3下的定时计数器0 在工作方式3下,定时计数器0被拆成两个独立的8位计数器TL0和TH0。其中TL0既可以计数使用,又可以定时使用,定时计数器0的各控制位和引脚信号全归它使用。TH0则只能作为简单的定时器使用。定时计数器0在工作方式3的逻辑结构如图8-6所示。 2.工作方式3下的定时计数器1 如果定时计数器0已工作在工作

14、方式3,则定时计数器1只能工作在方式0、方式1或方式2下,因为它的运行控制位TR1及计数溢出标志位TF1已被定时计数器0借用,如图8-6所示。在这种情况下,定时计数器1通常是作为串口的波特率发生器使用,以确定串行通信的速率。 方式3的两个8位定时计数器的定时或计数初值的计算方法与方式2完全相同,不再重复。,图8-6 定时计数器0在工作方式3的逻辑结构,8.4 定时计数器应用举例,定时计数器初始化的步骤如下: 1)确定工作方式、工作模式、启动控制方式一写入TMOD寄存器。 2)设置定时器或计数器的初值一可直接将初值送入TH0、TL0或TH1、TL1。 3)根据要求是否采用中断方式一直接对IE寄存

15、器赋值。 4)启动定时器工作可使用“SETB TR0”或“SETB TR1”。 例8-1 设单片机晶振频率为6MHz,使用定时器1,以方式0产生频率为500Hz的等宽正方波连续脉冲,并由P1.0输出。以查询方式完成。 1.计算计数初值 欲产生500Hz的等宽正方波脉冲,只需在P10端以250Hz为周期交替输出高低电平即可实现,为此定时时间应为1ms。使用6MHz晶振,则一个机器周期为2s。方式0为13位计数结构。设待求的计数初值为a,则 求解得a=7192,二进制数表示为1110000011000B。 2.TMOD设置 M1M0=00,C/T=0,GATE=0,因此TMOD=00H。,=819

16、2-1000=7192,3.定时器控制寄存器TCON中的TR1位设置 TR1=1启动,TR1=0停止。 4.程序设计 MOV TMOD,#00H MOV TH1, #0E0H MOV TL1, #18H MOV IE, #00H ;禁止中断 LOOP: SETB TR1 ;启动定时 JBC TF1,LOOP1 ;查询计数溢出 AJMP LOOP LOOP1:MOV TH1,#0E0H ;重新赋初值 MOV TL1,#18H CLR TF1 ;计数溢出标志位清“0” CPL P1.0 AJMP LOOP ;重复循环,例8-2 题目同上,但以中断方式完成。即单片机晶振频率为6MHz,使用定时器1以工作方式1产生周期为50ms的等宽连续正方波脉冲,P1.0端输出。 1.计算计数初值 2. TMOD寄存器初始化 TH10C

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号