第4章-MCS-51内部标准功能单元-4.2MCS-51的定时计数器

上传人:飞*** 文档编号:4777905 上传时间:2017-08-06 格式:PPT 页数:47 大小:1.36MB
返回 下载 相关 举报
第4章-MCS-51内部标准功能单元-4.2MCS-51的定时计数器_第1页
第1页 / 共47页
第4章-MCS-51内部标准功能单元-4.2MCS-51的定时计数器_第2页
第2页 / 共47页
第4章-MCS-51内部标准功能单元-4.2MCS-51的定时计数器_第3页
第3页 / 共47页
第4章-MCS-51内部标准功能单元-4.2MCS-51的定时计数器_第4页
第4页 / 共47页
第4章-MCS-51内部标准功能单元-4.2MCS-51的定时计数器_第5页
第5页 / 共47页
点击查看更多>>
资源描述

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

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 置位,发中断申请定时与计数的不同:时钟脉冲信号定时,内部的时钟振荡器计数,外部引脚,1. 计数功能,原理对

2、外部事件计数计数脉冲来自引脚 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,计数器C/T=0,定时器,GATE 门控标志位GA

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

4、的低5位溢出时,向TH0进位TH0溢出时,置位TCON中的TF0标志,发出中断请求,计数个数M与计数初值NM = 213N213:溢出时的计数值定时时间 tt = M机器周期 = (213N)机器周期N = 213 - t/机器周期计数初值 N = 81910计数范围:18192,2. 方式 1,TMOD的M1M0为0116位:TL0 TH0计数个数M与计数初值N: M216N定时时间 t = M机器周期计数初值 N = 655350;计数范围:165536,3. 方式 2,TMOD的M1M0为10自动重装初值的8位计数方式:TL0:8位定时/计数器;TH0:8位初值寄存器计数个数M与计数初值

5、N: M28N定时时间 t = M机器周期计数初值 N = 2550;计数范围:1256,较精确的脉冲信号发生器T1在方式2,作为波特率发生器,定时器/计数器 的 初值计算,设计数器计数的最大值:M计数值:N初值:XX的计算方法 计数状态:X = M N定时状态:X = M 定时时间/TT = 12 晶振频率,4. 方式 3,TMOD的M1M0为11只适用于T0T0分成为两个独立的8位计数器TL0、TH0,TL0:定时器和计数器占用T0的控制位TH0:定时器仅借用T1的 TR1、TF1不受门控;启、停受TR1控制溢出时,置位 TF1,T1:只能作定时器,波特率发生器原则上,仍可按方式0、1、2

6、工作不能使用TR1和TF1,也不能发出中断请求方式设定后,自动运行;要停止工作,只需设定为方式3T1溢出判断通过在线“飞读”TH1和TL1,判断是否溢出。,串行通讯应用中T1:串行口波特率发生器,工作于方式2T0:工作于方式3可充分利用单片机的定时/计数器资源。,4.2.5 定时/计数器的设计举例,51单片机的定时/计数器,常工作于中断场合应用设计步骤(1)计算定时/计数器的初值(2)主程序中,初始化定时/计数器的初始化中断初始化TH0、TL0、TH1、TL1、TMOD、TCON、IP、IE(3)中断服务程序设计,例1方式1,利用定时/计数器T0的方式1,产生一个50Hz的方波,此方波由P1.

7、0引脚输出,晶振频率为12 MHz。 思路:f=50Hz,则其周期为T=1/50=0.02s计满0.01s,P1.0输出0,再计满0.01S,P1.0输出1T0产生0.01s定时,实现方法查询方式:查TF0标志中断方式:中断服务程序,解题步骤(1)定时 0.01s的初值计算机器周期 = 12 12 MHz = 1 s0.01s内 T0 需要计数 N 次 N = 0.01s 1 s = 0.01/(10-6) = 10000 若用方式1的16 位计数器,T0 的初值X为 X = MN = 21610000 = 55536(2)T0的TMOD的初始化GATE=0,C/T=0,M1M0=01,即:T

8、0的方式1(3)实现方法查询的方法和中断的方法,实现方法,(1)查询方式查询T0的TF0:为1,定时时间到,对P1.0取反操作缺点:占用CPU,ORG0000HLJMPMAIN;跳转到主程序ORG0100H ;主程序MAIN:MOVTMOD,#01H;置T0工作于方式1LOOP:MOVTH0,#0D8H;装入计数初值MOVTL0,#0F0H SETBTR0;启动定时器T0JNBTF0,$;TF0=0,定时时间未到,等待CLRTF0 ;TF0=1,定时时间到,清TF0CPLP1.0 ;P1.0取反输出SJMPLOOP END,(2)中断方式定时到,TF0=1,向CPU申请中断,CPU响应中断后,

9、执行中断程序,中断程序中对P1.0取反操作,ORG0000HLJMPMAIN;跳转到主程序 ORG000BH;T0的中断入口地址LJMPT0_INT;转向中断服务程序 ORG0100HMAIN:MOVTMOD,#01H;置T0工作于方式1MOVTH0,#0D8H;装入计数初值MOVTL0,#0F0H SETBET0;T0开中断SETBEA;CPU开中断SETBTR0;启动T0;继续执行主程序其它部分SJMP$;等待中断,T0_INT: ;P1.0取反输出CPL P1.0 ;重装入计数初值MOV TH0,#0D8H MOV TL0,#0F0H ;中断返回RETIEND,T0_INT: ;重装入计

10、数初值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 定时,机器周期 = 12 / 6MHz = 2*10-6s65536 * 2*10-6 s = 0.131072s = 131072s,0.5s定时,实现方法T1:方式1完成100ms定时在中断程序里设置一个“软时钟”,即一个CLOCK=30H内存单元每中断一次,CLOCK加1,CLOCK累计5次(即0.5s),对P0.

11、0取反操作,解题步骤:(1)确定初值N计数值 Mt/ Tcy 10010-3/(210-6)50000N216M655365000015536=3CB0H即应将3CH送入TH1、0B0送入TL1中。(2)初始化控制字TMODGATE=0,C/T=0,M1M0=01,即:T1的方式1;,实现程序:,;*伪指令*LED BITP0.0CLOCKDATA30H;*主程序入口地址*ORG0000HLJMPMAIN;跳转至主程序;*中断入口地址*ORG001BHLJMPT1_INT;跳转至T1中断服务程序,ORG0030HMAIN:;*中断初始化*MOVTMOD, #10HMOVTH1, #3CH;装入

12、计数初值MOV TL1, #0B0H SETBET1;开放T1中断SETBEA;开放总中断SETBTR1;启动T1时钟;继续执行主程序其它部分SJMP$;等待中断,;*T1中断服务程序*T1_INT:PUSHACC;保护现场PUSHPSWCLRTR1MOV TH1, #3CH;重新装入计数初值MOV TL1, #0B0H SETBTR1INCCLOCK;软时钟加1MOVA, CLOCKCJNEA, #5, TMPLTMPL:JCRETURN;不到0.5s返回CPLLED;到0.5s闪烁变换MOVCLOCK, #0;软时钟清零RETURN:POPPSWPOPACC RETIEND,例3方式2,利

13、用定时/计数器T0产生一个1kHz的方波,此方波由P0.0引脚输出,晶振频率为6MHz机器周期 = 12 / 6MHz = 2*10-6s思路:f=1kHz,T=1ms此题转化为由定时器产生:500s 定时,500s定时,实现方法T0:方式2即自动重装初值的8位计数方式开放T0中断,在中断程序里对P0.0取反操作,解题步骤:(1)计数初值N计数值 Mt/ Tcy 50010-6/(210-6)250N28M25625006H06H送入TH0和TL0(2)初始化控制字TMODGATE=0,C/T=0,M1M0=10,即:T0的方式2;,实现程序:,;*伪指令*LED BITP0.0;*主程序入口地址*ORG0000HLJMPMAIN;跳转至主程序;*中断入口地址*ORG00BHLJMPT0_INT;跳转至T1中断服务程序,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

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