[信息与通信]第4章-MCS-51内部标准功能单元-42MCS-51的定时计数器

上传人:油条 文档编号:55270869 上传时间:2018-09-26 格式:PPT 页数:53 大小:1.37MB
返回 下载 相关 举报
[信息与通信]第4章-MCS-51内部标准功能单元-42MCS-51的定时计数器_第1页
第1页 / 共53页
[信息与通信]第4章-MCS-51内部标准功能单元-42MCS-51的定时计数器_第2页
第2页 / 共53页
[信息与通信]第4章-MCS-51内部标准功能单元-42MCS-51的定时计数器_第3页
第3页 / 共53页
[信息与通信]第4章-MCS-51内部标准功能单元-42MCS-51的定时计数器_第4页
第4页 / 共53页
[信息与通信]第4章-MCS-51内部标准功能单元-42MCS-51的定时计数器_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《[信息与通信]第4章-MCS-51内部标准功能单元-42MCS-51的定时计数器》由会员分享,可在线阅读,更多相关《[信息与通信]第4章-MCS-51内部标准功能单元-42MCS-51的定时计数器(53页珍藏版)》请在金锄头文库上搜索。

1、第4章 MCS - 51单片机 内部标准功能单元,4.2 MCS-51的定时/计数器,4.2 MCS-51的定时/计数器,4.2.1 定时/计数器的结构 4.2.2 定时/计数器的功能 4.2.3 定时/计数器的工作方式和控制寄存器 4.2.4 定时/计数器的4种工作方式 4.2.5 定时/计数器的设计举例,4.2.1 定时/计数器的结构,图4.4 定时/计数器的结构框图,4.2.2 定时/计数器的功能,T0 和 T1 增量式、下降沿计数 各位全都为 1 时,再输入一个脉冲 溢出回零 TF0 或 TF1 置位,发中断申请 定时与计数的不同:时钟脉冲信号 定时,内部的时钟振荡器 计数,外部引脚,

2、1. 计数功能,原理 对外部事件计数 计数脉冲 来自引脚 T0(P3.4)或 T1(P3.5) 负跳变(由1变成0)时,计数值 增加 1 对外部输入脉冲的要求 被采样的电平至少要维持一个机器周期,否则会漏计数 最高计数频率:晶振频率的1/24,2. 定时功能,原理 通过计数实现 计数脉冲 内部时钟脉冲 每个机器周期,计数值 加 1 定时时间计数值机器周期,4.2.3 定时/计数器的工作方式和控制寄存器,1. 方式寄存器 TMOD2. 控制寄存器 TCON,不可位寻址,可位寻址,1. 方式寄存器 TMOD,表4.2 定时/计数器工作方式设置表,C/T 定时器方式或计数器方式选择位 C/T=1,计

3、数器 C/T=0,定时器,GATE 门控标志位 GATE=1 TR0/TR1=1且/INT0(或/INT1)高电平,才工作 用于测量/INT0(或/INT1)端出现的正脉冲的宽度 GATE=0 TR0/TR1=1,就工作,2. 控制寄存器 TCON,TF0 / TF1 溢出标志位 计满溢出时,由硬件置 1 中断响应后,硬件自动清 0 TR1 / TR0 运行控制位 软件置 1 后,开始工作 系统复位时,清 0,4.2.4 定时/计数器的4种工作方式,T0 4种:方式0、1、2、3 T1 3种:方式0、1、2 设置为方式3,将停止工作 作为串行通信口的波特率发生器(方式2),1. 方式 0,TM

4、OD的M1M0为00 13位计数:TL0的低5位(高3位未用) TH0的8位 TL0的低5位溢出时,向TH0进位 TH0溢出时,置位TCON中的TF0标志,发出中断请求,计数个数M与计数初值N M = 213N 213:溢出时的计数值 定时时间 t t = M机器周期 = (213N)机器周期 N = 213 - t/机器周期 计数初值 N = 81910 计数范围:18192,2. 方式 1,TMOD的M1M0为01 16位:TL0 TH0 计数个数M与计数初值N: M216N 定时时间 t = M机器周期 计数初值 N = 655350;计数范围:165536,3. 方式 2,TMOD的M

5、1M0为10 自动重装初值的8位计数方式: TL0:8位定时/计数器;TH0:8位初值寄存器 计数个数M与计数初值N: M28N 定时时间 t = M机器周期 计数初值 N = 2550;计数范围:1256,较精确的脉冲信号发生器 T1在方式2,作为波特率发生器,定时器/计数器 的 初值计算,设 计数器计数的最大值:M 计数值:N 初值:X X的计算方法 计数状态:X = M N 定时状态:X = M 定时时间/T T = 12 晶振频率,4. 方式 3,TMOD的M1M0为11 只适用于T0 T0分成为两个独立的8位计数器 TL0、TH0,TL0:定时器和计数器 占用T0的控制位 TH0:定

6、时器 仅借用T1的 TR1、TF1 不受门控;启、停受TR1控制 溢出时,置位 TF1,T1: 只能作定时器,波特率发生器 原则上,仍可按方式0、1、2工作 不能使用TR1和TF1,也不能发出中断请求 方式设定后,自动运行;要停止工作,只需设定为方式3 T1溢出判断 通过在线“飞读”TH1和TL1,判断是否溢出。,串行通信应用中 T1:串行口波特率发生器,工作于方式2 T0:工作于方式3 可充分利用单片机的定时/计数器资源。,4.2.5 定时/计数器的设计举例,51单片机的定时/计数器,常工作于中断场合 应用设计步骤 (1)计算定时/计数器的初值 (2)主程序中,初始化 定时/计数器的初始化

7、中断初始化 TH0、TL0、TH1、TL1、TMOD、TCON、IP、IE (3)中断服务程序设计,例1方式1,利用定时/计数器T0的方式1,产生一个50Hz的方波,此方波由P1.0引脚输出,晶振频率为12 MHz。 思路: f=50Hz,则其周期为T=1/50=0.02s 计满0.01s,P1.0输出0,再计满0.01S,P1.0输出1 T0产生0.01s定时,实现方法 查询方式:查TF0标志 中断方式:中断服务程序,解题步骤 (1)定时 0.01s的初值计算 机器周期 = 12 12 MHz = 1 s 0.01s内 T0 需要计数 N 次 N = 0.01s 1 s = 0.01/(10

8、-6) = 10000 若用方式1的16 位计数器,T0 的初值X为X = MN = 21610000 = 55536 (2)T0的TMOD的初始化 GATE=0,C/T=0,M1M0=01,即:T0的方式1 (3)实现方法 查询的方法和中断的方法,实现方法,(1)查询方式 查询T0的TF0:为1,定时时间到,对P1.0取反操作 缺点:占用CPU,ORG 0000HLJMP MAIN ;跳转到主程序ORG 0100H ;主程序 MAIN: MOV TMOD,#01H ;置T0工作于方式1 LOOP: MOV TH0,#0D8H ;装入计数初值MOV TL0,#0F0H SETB TR0 ;启动

9、定时器T0JNB TF0,$ ;TF0=0,定时时间未到,等待CLR TF0 ;TF0=1,定时时间到,清TF0CPL P1.0 ;P1.0取反输出SJMP LOOP END,(2)中断方式 定时到,TF0=1,向CPU申请中断,CPU响应中断后,执行中断程序,中断程序中对P1.0取反操作,ORG 0000HLJMP MAIN ;跳转到主程序 ORG 000BH ;T0的中断入口地址LJMP T0_INT ;转向中断服务程序 ORG 0100H MAIN: MOV TMOD,#01H ;置T0工作于方式1MOV TH0,#0D8H ;装入计数初值MOV TL0,#0F0H SETB ET0 ;

10、T0开中断SETB EA ;CPU开中断SETB TR0 ;启动T0 ;继续执行主程序其它部分SJMP $ ;等待中断,T0_INT: ;P1.0取反输出CPL P1.0;重装入计数初值MOV TH0,#0D8H MOV TL0,#0F0H ;中断返回RETIEND,T0_INT: ;重装入计数初值MOV TH0,#0D8H MOV TL0,#0F0H;P1.0取反输出CPL P1.0 ;中断返回RETIEND,例2方式1,利用定时/计数器T1产生一个1Hz的方波,此方波由P0.0引脚输出,晶振频率为6MHz 思路: f=1Hz,T=1s 此题转化为 由定时器产生:0.5s 定时,机器周期 =

11、 12 / 6MHz = 2*10-6s 65536 * 2*10-6 s = 0.131072s = 131072s,0.5s定时,实现方法 T1:方式1 完成100ms定时 在中断程序里设置一个“软时钟”,即一个CLOCK=30H内存单元 每中断一次,CLOCK加1,CLOCK累计5次(即0.5s),对P0.0取反操作,解题步骤:(1)确定初值N 计数值 Mt/ Tcy 10010-3/(210-6)50000 N216M655365000015536=3CB0H 即应将3CH送入TH1、0B0送入TL1中。(2)初始化控制字TMOD GATE=0,C/T=0,M1M0=01,即:T1的方

12、式1;,实现程序:,;*伪指令*LED BIT P0.0CLOCK DATA 30H;*主程序入口地址*ORG 0000H LJMP MAIN ;跳转至主程序;*中断入口地址*ORG 001BHLJMP T1_INT ;跳转至T1中断服务程序,ORG 0030H MAIN: ;*中断初始化*MOV TMOD, #10HMOV TH1, #3CH ;装入计数初值MOV TL1, #0B0H SETB ET1 ;开放T1中断SETB EA ;开放总中断 SETB TR1 ;启动T1时钟 ; ;继续执行主程序其它部分SJMP $ ;等待中断,;*T1中断服务程序* T1_INT: PUSH ACC

13、;保护现场PUSH PSWCLR TR1MOV TH1, #3CH ;重新装入计数初值MOV TL1, #0B0H SETB TR1INC CLOCK ;软时钟加1MOV A, CLOCKCJNE A, #5, TMPL TMPL: JC RETURN ;不到0.5s返回CPL LED ;到0.5s闪烁变换MOV CLOCK, #0 ;软时钟清零 RETURN: POP PSWPOP ACC RETIEND,例3方式2,利用定时/计数器T0产生一个1kHz的方波,此方波由P0.0引脚输出,晶振频率为6MHz机器周期 = 12 / 6MHz = 2*10-6s思路: f=1kHz,T=1ms 此

14、题转化为 由定时器产生:500s 定时,500s定时,实现方法T0:方式2 即自动重装初值的8位计数方式 开放T0中断,在中断程序里对P0.0取反操作,解题步骤:(1)计数初值N 计数值 Mt/ Tcy 50010-6/(210-6)250 N28M25625006H 06H送入TH0和TL0(2)初始化控制字TMOD GATE=0,C/T=0,M1M0=10,即:T0的方式2;,实现程序:,;*伪指令*LED BIT P0.0;*主程序入口地址*ORG 0000H LJMP MAIN ;跳转至主程序;*中断入口地址*ORG 00BHLJMP T0_INT ;跳转至T1中断服务程序,ORG 0100H MAIN: ;*中断初始化*MOV TMOD, #02HMOV TH0, #06H ;装入计数初值MOV TL0, #06H SETB ET0 ;开放T0中断SETB EA ;开放总中断 SETB TR0 ;启动T0时钟 ; ;继续执行主程序其它部分SJMP $ ;等待中断,;*T0中断服务程序* T0_INT: CPL LED ;不需重新装入计数初值RETIEND,

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

当前位置:首页 > 行业资料 > 其它行业文档

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