单片机原理及应用(c语言版)6资料(1)

上传人:n**** 文档编号:93086509 上传时间:2019-07-16 格式:PPT 页数:63 大小:477.50KB
返回 下载 相关 举报
单片机原理及应用(c语言版)6资料(1)_第1页
第1页 / 共63页
单片机原理及应用(c语言版)6资料(1)_第2页
第2页 / 共63页
单片机原理及应用(c语言版)6资料(1)_第3页
第3页 / 共63页
单片机原理及应用(c语言版)6资料(1)_第4页
第4页 / 共63页
单片机原理及应用(c语言版)6资料(1)_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《单片机原理及应用(c语言版)6资料(1)》由会员分享,可在线阅读,更多相关《单片机原理及应用(c语言版)6资料(1)(63页珍藏版)》请在金锄头文库上搜索。

1、第6章 MCS-51单片机定时器/计数器,目 录 6.1 MCS-51定时器/计数器的结构及原理 6.2 定时器T0、T1 6.3 定时器应用举例,本章主要讨论MCS-51单片机定时器/计数器的逻辑结构和工作原理。内容主要有MCS-51单片机定时器T0、T1的逻辑结构,工作方式的选择和应用。 本章为单片机的主要内容,也是第七章串行口的学习的基础。,第6章 MCS-51单片机的定时器/计数器,6.1 MCS-51单片机定时器/计数器的结构及原理,主要内容 6.1.1 MCS-51单片机定时器的结构 6.1.2 MCS-51单片机定时器的工作原理 6.1.3 定时器/计数器的控制寄存器,6.1.1

2、 MCS-51单片机定时器的结构,MCS-51单片机定时器/计数器逻辑结构图:,6.1.1 MCS-51单片机定时器的结构,MCS-51主要由如下构成: 两个16位的可编程定时器/计数器:定时器/计数器0、1。 每个定时器有两部分构成:THx和TLx 特殊功能寄存器TMOD和TCON ,主要对T0和T1进行控制。,6.1.1 MCS-51单片机定时器的结构,引脚P3.5、P3.4,输入计数脉冲。 定时器T0、T1是2个中断源,可以向CPU 发出中断请求。 特殊功能寄存器之间通过内部总线和控制逻辑电路连接起来,6.1.2 MCS-51单片机定时器的工作原理,定时器/计数器T0、T1 的内部结构简

3、图如下图所示。,6.1.2 MCS-51单片机定时器/计数器的工作原理,从上图可以看出: 定时器的实质是一个加1计数器。 C/T =0 ,为定时器方式。 计数信号由片内振荡电路提供,振荡脉冲12分频送给计数器,每个机器周期计数器值增1。 例如:如果晶振频率为12MHz,则最高计数频率为0.5MHz,6.1.2 MCS-51单片机定时器/计数器的工作原理,C/T =1 ,为计数方式。 计数信号由Tx引脚(P3.4、P3.5)输入,每输入一有效信号,相应的计数器中的内容进行加1。 控制信号TRx=1时,定时器启动。 当定时器由全1加到全0时计满溢出,从0开始继续计数,TFx=1 ,向CPU申请中断

4、。,6.1.3 定时器/计数器的方式和控制寄存器,1、T0、T1 工作模式寄存器TMOD 功能:确定定时器的工作模式。 其格式如图6-3所示:,GATE外部门控制位。 GATE1,使用外部控制门。 TRx=1, P3.2(P3.3)=1时,启动定时器。,6.1.3 定时器/计数器的方式和控制寄存器,GATE0,不使用外部门控制计数器 C/T定时或计数方式选择位 。 C/T0时,为定时器 C/T1时,为计数器 计数采样:CPU在每机器周期的S5P2期间,对计数脉冲输入引脚进行采样。 若前一机器周期采样值为1,下一机器周期采样值为0,则计数器增1,即下降沿计数。 随后的机器周期S3P1期间,新的计

5、数值装入计数器。,6.1.3 定时器/计数器的方式和控制寄存器,M1、M0工作模式选择位。 如下表所示:,6.1.3 定时器/计数器的方式和控制寄存器,2、T0、T1的控制寄存器TCON,TF1、TF0:T1、T0的溢出标志位 计数溢出,TFx=1。 中断方式:自动清零; 查询方式:软件清零。,6.1.3 定时器/计数器的方式和控制寄存器,TR1、TR0:T1、T0启停控制位。 置1,启动定时器; 清0,关闭定时器。 IE1、IE0:外部中断1、0请求标志位 IT1、IT0:外部中断1、0触发方式选择位 注意: GATE=1 ,TRx与P3.2(P3.3) 的配合。,6.2 定时器T0、T1的

6、工作模式及应用,主要内容 6.2.1 模式1 6.2.2 模式2 6.2.3 模式3 6.2.4 T0、T1应用,6.2.1 模式1,模式0与模式1 的区别仅仅是计数器的位数不同,前者是13位,后者是16位,其它完全相同,现在一般都不使用模式0,故不讲模式0 当设置M1M001时,选择模式1,为16位定时器/计数器。 模式1原理结构 原理结构如下页图所示,由4部分构成: 信号源 运行控制 计数器 溢出标志,6.2.1 模式1的逻辑结构及应用,信号源 C/T设为1,为计数器,用P3.4引脚脉冲 C/T设为0,为定时器,用内部脉冲 运行控制 GATE=1,由外部信号控制运行 此时应该设置TR0=1

7、 P3.2引脚为高电平,T0运行 GATE=0,由内部设置控制运行 TR0设置为1,T0运行,6.2.1 模式1的逻辑结构及应用,图6-6 T0模式1原理结构 MCS-51单片机之所以设计几乎完全一 样的方式0和方式1,是出于与 MCS-48单片机的兼容。,6.2.2 模式2,M1 M0 10时,选择模式2,为8位定时器/计数器,且初值自动重装。 模式2原理结构 原理结构如下页图所示,由4部分构成: 信号源 运行控制 计数器 溢出标志 在能够满足计数要求时,尽可能地选择模式2。,6.2.2 模式2的逻辑结构及应用,图6-7 T0模式2原理结构,6.2.3 模式3,1、T0模式3的结构特点 M1

8、 M0 11,选择模式3。逻辑结构如图 6-8和6-9所示: 结构: TL0、TH0分为两个独立的8位计数器 TL0: 8位定时器/计数器 使用T0所有的资源和控制位 TH0:8位定时器 使用T1所有的资源(中断向量、中断控制ET1、PT1)和控制位 (TR1、TF1),6.2.3 模式3的逻辑结构及应用,图6-8 模式3下T0的逻辑结构图,6.2.4 模式3的逻辑结构及应用,2、T0模式3时T1的工作模式 T1可以模式0模式2工作。 T1的结构如图6-9所示 由于TF1及中断矢量被TH0占用,所以T1仅用作波特率发生器或其它不用中断的地方。 T1作波特率发生器,其计数溢出直接送至串行口。设置

9、好工作方式,串行口波特率发生器开始自动运行。 TMOD中T1的M1M0=11,T1停止工作,因为T1没有模式3。,6.2.4 模式3的逻辑结构及应用,图6-9 T0模式3时T1的原理结构,串行口,图6-9(c) T0模式3T1模式2时的原理结构,6.2.4 T0、T1应用,1、定时器/计数器工作模式的选择方法 (1)首先计算计数值N (2)确定工作模式 原则是尽可能地选择模式2 若 N 256选择模式2,否则选择模式1 (3)模式3的选择 如果需要增加一个定时器/计数器,选择T0以模式3工作,6.2.4 T0、T1应用,2、定时器/计数器初值X的计算方法 因为 X + N = 28或216 所

10、以 X = 28或216-N (1)对定时器 设定时时间为t N = t/机器周期 所以 X = 28或216- t/机器周期 (2)对计数器 X = 28或216- N,6.2.4 T0、T1应用,例6-1 对单片机的定时器/计数器0进行编程,以模式1工作,用中断方式使P1.0引脚产生周期为1000s的方波。设单片机的振荡频率为12MHz。 分析: (1)方波产生原理 将T0设为定时器,计算机出合适的初值,定时到了之后对P1.0引脚取反即可。 (2)选择工作模式 计算计数值N,6.2.4 模式3的逻辑结构及应用,定时时间t: 周期为1000s的方波要求 t =周期/2 = 1000/2 =

11、500(s) N = t/机器周期 = 500/1 = 500 N=500256,所以选择模式1。 模式字: TMOD=0000 0001B (3)初值X X = 65536 N = 65036 = FE0CH,6.2.4 模式3的逻辑结构及应用,汇编语言程序: ORG 0000H SJMP MAIN ORG 000BH LJMP TIME0,6.2.4 模式3的逻辑结构及应用,MAIN: MOV TMOD,#01H ;T0模式1定时 MOV TL0,#0CH ;置定时初值 MOV TH0,#0FEH SETB ET0 ;定时器T0开中断 SETB EA ;CPU开中断 SETB TR0 ;启

12、动定时器T0 SJMP $ ;等待定时器溢出 TIME0: ;中断服务程序 MOV TL0,#0CH MOV TH0,#0FEH ;重装定时初值 CPL P1.0 ;P1.0取反 RETI ;中断返回 END,6.2.4 模式 3的逻辑结构及应用,例6-2 设单片机的振荡频率为12MHz,用定时器/计数器0编程实现从P1.0输出周期为500s的方波。 分析:方法同例6-1 定时时间: 方波周期为500s,定时250s。 模式选择: 定时器0可以选择模式0、1和2。模式2最大的定时时间为256s,满足250s的定时要求,选择模式2。,6.2.4 模式 3的逻辑结构及应用,(1)初值计算 (256

13、-X)1s=250s X=6; 则TH0=TL0=6 (2)程序: 采用中断处理方式的程序 :,6.2.4 模式3的逻辑结构及应用,汇编语言程序: ORG 0000H LJMP MAIN ORG 000BH ;中断处理程序 CPL P1.0 RETI ORG 0030H ;主程序 MAIN: MOV TMOD,#02H MOV TL0,#06H MOV TH0,#06H SETB ET0 ;允许定时器0中断 SETB EA ;允许CPU中断 SETB TR0 ;启动定时器0 SJMP $ ;等待中断 END,6.2.4 模式3的逻辑结构及应用,汇编语言程序: MAIN: MOV TMOD,#0

14、2H ;主程序 MOV TL0,#06H MOV TH0,#06H SETB TR0 LOOP: JNB TF0,$ ;查询计数溢出 CLR TF0 CPL P1.0 SJMP LOOP END,6.3 定时器应用举例,主要内容 6.3.1 定时器的初始化 6.3.2 定时器应用举例,6.3.1 定时器的初始化,在使用定时器/计数器前,应首先对其进行初始化编程。 一、定时器的初始化步骤 1、选择工作模式和工作方式。 设置TMOD。 2、设置定时器的计数初值。 设置THx和TLx。 3、中断设置:设置IE。 4、启动定时器。 设置TCON。 可以使用位操作指令。例如:SETB TRx,6.3.1

15、 定时器的初始化,二、定时器/计数器初值计算 根据定时器/计数器的模式和方式,计算计数初值(注意T2) 计数器的长度为n,则计数的最大值为2n 。 1、工作于定时方式 计数脉冲由内部的时钟提供,每个机器周期进行加1。 设晶振频率为fosc,则计数脉冲的频率为fosc/12,计数脉冲周期T=1/(fosc/12)。,6.3.1 定时器的初始化,如果进行定时时间为t,计数初值为X,则: t=( 2n - X)12/fosc 2、工作于计数方式 当工作在计数方式时,对外部脉冲计数。利用计数器计数结束产生溢出的特性,来计算初值X 。则有: X= 2n -计数次数,6.3.2 定时器的应用举例,例6-3

16、 利用定时器T1的模式2对外部信号进行计数,要求每计满100次,将P1.0端取反。 分析:T1工作在计数方式。脉冲数100。 1、选择工作模式、计算初值 计数值 N=100256 选择模式2 模式字:TMOD=0110B=60H 初值:X= 28-100=156D=9CH,6.3.2 定时器的应用举例,3、汇编语言程序: MAIN: MOV SP,#0DFH ;设置堆栈指针 MOV TMOD,#60H ;T1模式2, 计数 MOV TL1,#9CH ;装入计数初值 MOV TH1, #9CH ;装入计数(重装)初值 MOV IE,#88H ;允许定时器中断 SETB TR1 ;启动定时器 SJMP $ ;等待中断 中断服务程序: ORG 001BH ;中断服务程序入口地址 CPL P1.0 ;对P1.0引脚信号取反RETI ;中断返回,6.3.2 定时器的应用举例,例6-4 某一应用系统需要对I

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

当前位置:首页 > 大杂烩/其它

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