mcs51定时计数器

上传人:n**** 文档编号:92914821 上传时间:2019-07-14 格式:PPT 页数:22 大小:593.50KB
返回 下载 相关 举报
mcs51定时计数器_第1页
第1页 / 共22页
mcs51定时计数器_第2页
第2页 / 共22页
mcs51定时计数器_第3页
第3页 / 共22页
mcs51定时计数器_第4页
第4页 / 共22页
mcs51定时计数器_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《mcs51定时计数器》由会员分享,可在线阅读,更多相关《mcs51定时计数器(22页珍藏版)》请在金锄头文库上搜索。

1、5-1 定时/ 计数器专用寄存器,涉及到的共六个: 符号 名称 字节地址 TCON 定时器控制寄存器 88H TMOD 定时器方式控制寄存器 89H TL0 定时器T0低八位 8AH TL1 定时器T1低八位 8BH TH0 定时器T0高八位 8CH TH1 定时器T1低八位 8DH,一、T0 与 T1 16位寄存器,用于存放定时或者计数初值。 注意点: 由于工作原理是加 1 计数,所以存放的是计数值的补码。 二、TMOD : 确定T0与T1的功能与工作方式,TMOD的高4位用于T1,低4位用于T0,符号的定义如下: (1) GATE:门控位。GATE和软件控制位TR、外引脚( )的状态,共用

2、控制定时器/计数器的启动和停止。 (2) C/T:定时/计数器方式选择位。 C/T 1为计数方式; C/T 0为定时方式。 (3) M1 M0:工作方式选择位。 M1 M000;方式0 16位 M1 M001;方式1 13位 M1 M010;方式2 8位自动置初值 M1 M011;方式3。 只适用T0,分成两个8位,三、TCON 定时器控制寄存器 特殊功能寄存器TCON用于控制定时器的操作及对定时器中断的控制,字节地址为88H,位地址是88H8FH(TCON.0TCON.7)。TCON寄存器中与定时、计数有关的位如下所示:,5 2 定时/ 计数器的工作方式,一、定时与计数的区别 定时与计数的实

3、质都是计数,只不过定时是对内部脉冲计数,计数是对外接脉冲(P3.4、P3.5引脚)计数。 二、方式0 (以T1为例讨论) 13位计数方式。在方式0中,时间寄存器配置为13位寄存器,是为与MCS-48兼容而设置,由TH1的全部8位和TL1的低5位构成,TL1的高三位弃之不用,当寄存器中所有13位中的全“1”翻转为“0”时,设置定时器中断标志TF1。图4.5是定时器/ 计数器1在工作方式0的逻辑结构图。,C/T:定时/计数选择,由定时器工作方式特殊功能寄存器TMOD的位设置选择 C/T=0,T1为定时器,计数器对机器周期进行计数实现定时 C/T =1,T1为计数器,计数来自引脚T1的外部脉冲数 定

4、时器/计数器是否启动受TR1、GATE和 /INT1 引脚的控制,GATE和TR1由定时器工作方式控制寄存器TMOD和控制寄存TCON中相应的位状态确定。由图中的逻辑电路可知:要启动定时/计数器,必须TR1=1,同时GATE=0或 /INT1 引脚=1。 通常设置GATE=0,用TR1的状态控制T1的工作。 定时器启动后,定时或计数脉冲加到TL1的低5位,从预先设置的初值(时间常数)开始计数,TL1计满后,向TH1进位,当TL1、TH1的13位都为1变为全0,即计数器溢出时,中断标志位TF1置“1”,表明定时时间或计数次数已到。在中断系统允许时,向CPU请求中断。 方式0没有时间常数自动重装功

5、能,如果需进一步定时/计数,需用指令重装时间常数。,三、工作方式1 方式1和方式0的工作相同,唯一的差别是TH1和TL1组成一个16位计数器。工作结构图可以参考下图。,四、工作方式2 : 8位自动重装初值功能,启动时,TL1和TH1均装入相同的时间常数,当TL1计数器溢出时,中断标志TF1置“1”,同时,控制将TH1中的时间常数重新装入TL1中。与方式0和方式1相比,方式2采用的硬件重装时间常数,提高了定时精度,操作简便。缺点是定时/计数范围较小 。,五、工作方式3 (只适用于T0) 当T0为工作方式3时,TL0和TH0分别作为两个独立的8位计数器,其硬件逻辑框图如下图。TL0既可作定时器也可

6、作计数器,并使用定时器0的控制位:C/T、GATE、TR0和TF0。TH0锁定为定时器功能,并使用定时器1的控制位TR1和TH1,这时,TH0控制了“定时器1”的中断。,5 3 定时/计数器的使用,一、定时器/计数器的初始化 初始化步骤 MCS-51内部定时器/计数器是可编程的,其工作方式和工作过程均可由MCS-51通过程序对它进行设定和控制。因此,MCS-51在定时器/计数器工作前必须先对它进行初始化。初始化步骤为: (1) 根据题目要求先给定时器方式寄存器TMOD送一个方式控制字,以设定定时器/计数器的相应工作方式。 (2) 根据实际需要给定时器/计数器选送定时器初值或计数器初值,以确定需

7、要定时的时间和需要计数的初值。 (3) 根据需要给中断允许寄存器IE选送中断控制字和给中断优先级寄存器IP选送中断优先级字,以开放相应中断和设定中断优先级。 (4) 给定时器控制寄存器TCON送命令字,以启动或禁止定时器/计数器的运行。,二、 定时/计数器初值的求取 51系列单片机定时器/计数器采用增量式计数,在不同的工作方式下,定时器/计数器初值的计算方法基本相同,只是采用了不同长度的计数器,设置时间常数时略有不同。 方式0,计数范围:18192(213) 定时工作方式时,定时时间=(213-计数初值)晶振周期12 或 定时时间=(213-计数初值)机器周期 例设单片机晶振频率fosc= 6

8、MHz,用定时器1以方式0、查询方式产生周期为500s的等宽方波脉冲,由P1.0输出。,解: (1) 确定计数初值X 本题可在P1.0以250s交替输出高、低电平实现所需的脉冲,定时时间为250s。晶振频率6MHz对应的机器周期为2s。则: (213-X)210-6 = 25010-6 求得X=8067 对应二进制X=0001111110000011。高8位放入TH1,即TH1=11111100=FCH; 低5位放入TL1,即TL1=00011=03H。 (2) 寄存器初始化 包括定时器初始化和中断系统初始化,主要对IP、IE、TCON、TMOD的相应位进行正确的设置,并将时间常数送入定时器。

9、本例中,IE、TCON、TMOD均应初始化为00H。,(3) 程序设计 MOV TMOD , # 00H。 MOV TH1, #0FCH ;T1置初值 MOV TL1, #03H SETB TR1 ;启动T1 LOOP: JBC TF1, LOOP1 ;T1溢出转LOOP1 SJMP LOOP ;T1未溢出,继续查询 LOOP1:MOV TH1, #0FCH ;T1重新置初值 MOV TL1, #03H CLR TF1 ;清T1溢出标志位 CPL P1.0 ;输出取反 SJMP LOOP ;继续查询,例:单片机系统P1.7控制一发光管闪烁,亮一秒灭一秒,循环。要求延时功能通过定时与计数功能实现

10、, 试编写程序。 解:当晶振为6M时,定时器本身最长定时时间为: 216 * 2微秒 = 131. 072 毫秒 , 所以 长时间定时采用 “定时 + 计数的方式。 本例可以采用 T0 定时 100 毫秒加T1 硬件计数实现, 如图示:计数脉冲由P1.0 产生,P1.0 每100毫秒求 反一次。 T0定时,16位方式,T1计数,8位自动置初值方式, 所以 TMOD 命令字为 61H.,初值计算: 定时:由 Y = ( 216 X ) * 2 * 10-6 求出: X = 15536 = 3CB0H 计数:T1计数次数 5次 ,初值 0FBH; 定时、计数到之后的处理方法: T0定时到,TF0=

11、1,用查询方法判别,控制P1.0求反; T1计数到,TF1=1,用查询方法判别,控制P1.7求反。 由上分析,编程如下: ORG 0000H AJMP MAIN ORG 0100H MAIN: CLR P1.7 SETB P1.0 MOV TMOD , # 61H,MOV TH1,#0FBH MOV TL1,#0FBH SETB TR1 LOOP1: CPL P1.7 LOOP2: MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 LOOP3: JBC TF0,LOOP4 SJMP LOOP3 LOOP4: CPL P1.0 JBC TF1,LOOP2 AJMP LOOP

12、1 END,采用软件计数的编程方法: ORG 0000H AJMP MAIN ORG 0100H MAIN: MOV TMOD , # 00H LOOP1:CPL P1.7 MOV R7,#0AH ACALL LOOP2 AJMP LOOP1 LOOP2:MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 LOOP3:JBC TF0,LOOP4 SJMP LOOP3 LOOP4:DJNZ R7,LOOP2 RET,综合例子:中断、定时器应用。 用单片机控制”航标灯“,具有如下功能: 1、航标灯定时放光,亮2秒、灭两秒,循环; 2、航标灯晚上工作,白天灭灯,不工作。 解:方案

13、设计: 1、硬件:用光敏管电路区分白天与黑夜,产生电平 中断信号,用P1.7口控制航标灯,2秒求反一次; 2、软件:2秒定时采用T1定时100毫秒,软件计数200次 工作过程: 白天INT0高电平,系统不工作,灭灯,晚INT0低电平, 申请中断,执行中断程序,启动定时器,定时到中断, 执行程序,计数,判断2秒到后控制灯求反,所有有两 级中断,INT0与T1,由于T1工作在INT0中断程序中, 所以 T1要设置成高优先级,综上,程序如下:,ORG 0000H AJMP MAIN ORG 0003H AJMP WBINT ORG 001BH AJMP TINT ORG 0100H MAIN: MO

14、V SP, #30H CLR P1.7 CLR IT0 CLR PX0 SETB PT1 SETB EX0 SETB EA HERE: AJMP HERE,ORG 0150H WBINT: MOV TMOD ,#10H MOV TL1, #0B0H MOV TH1, #3CH SETB ET1 SETB TR1 MOV R7, #14H HERE1: JNB P3.2 , HERE1 CLR ET1 CLR TR1 CLR P1.7 RETI,TINT: MOV TL1, #0B0H MOV TH1, #3CH DJNZ R7 , EXPORT MOV R7, #14H CPL P1.7 EXPORT: RETI END,

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

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

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