mcs-51单片机定时 、计数器与应用

上传人:ji****en 文档编号:115058378 上传时间:2019-11-12 格式:PPT 页数:32 大小:211.01KB
返回 下载 相关 举报
mcs-51单片机定时 、计数器与应用_第1页
第1页 / 共32页
mcs-51单片机定时 、计数器与应用_第2页
第2页 / 共32页
mcs-51单片机定时 、计数器与应用_第3页
第3页 / 共32页
mcs-51单片机定时 、计数器与应用_第4页
第4页 / 共32页
mcs-51单片机定时 、计数器与应用_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《mcs-51单片机定时 、计数器与应用》由会员分享,可在线阅读,更多相关《mcs-51单片机定时 、计数器与应用(32页珍藏版)》请在金锄头文库上搜索。

1、第7章 MCS-51单片机的 定时/计数器及应用 定时/计数器是单片机应用系统的最 重要组成部分之一 7.1 定时/计数器及应用概述(P139) 定时/计数器是单片机的一项重要技术,MCS-51 有T0和T1两个定时/计数器,增强型52还有T2 定时/计数器。 周期是事件出现的事 件间隔,用T表示。 频率是1s内周期性事 件重复的次数,用f表示。 f=1/T 1s(秒)=1000ms(毫秒) 1ms(毫秒)=1000s(微秒) 1s(微秒)=1000ns(纳秒) 1ns(纳秒)=1000ps(皮秒) 7.2.1 定时/计数器T0和T1的主要特性( P139) T0和T1是两个16位的可编程定时

2、/计数器。 T0和T1的定时功能:对内部系统时钟计数定时。 T0和T1的计数功能:对外部脉冲信号计数。 T0有4种工作方式,T1有3种工作方式,可通过编 程来设定工作方式。(见P141表7.1)定时/计数 器T0和T1工作方式选择表。 定时/计数器的工作原理 T0和T1定时/计数器的核心分别是2个16位加1计数 器,当计数到最大值,并再来1个计数脉冲时产生 溢出,使溢出标志位置1,产生溢出中断,通过中 断处理程序完成设计目的。 也可通过查询溢出标志获知溢出,通过相应的子 程序完成设计目的。 1 1 1 1 1 1 1 1 1 1 1 1 10 溢出位计数器到了最大值 再来1个脉冲 0 0 0

3、0 0 0 0 0 0 0 0 0 11 溢出位置1 可通过P3.4和P3.5对 外部脉冲计数 外 部 脉 冲 外部脉冲从 P3.4和P3.5接入, 分别由T0和T1计数。 定时/计数器的结构图(P140) TH1TL1TH0TL0 TCONTMOD 微 处 理 器 T1(P3.5)T0(P3.4) 机器周期 内部总线 工作方式工作方式 启动 启动 溢出溢出 定时/计数器的结构说明 TH0和TL0是定时/计数器T0计数器的高8位和低8位, TH1和TL1是定时/计数器T1计数器的高8位和低8位。 工作模式寄存器TMOD用来设置定时/计数器T0和T1的工 作方式。 控制寄存器TCON用来控制T0

4、和T1的启动和停止。 当定时/计数器用于定时,加1计数器对内部机器周期 计数(1s)计数。 当定时/计数器用于计数,加1计数器对单片机引脚 T0(P3.4)或T1(P3.5)上的输入脉冲计数。 无论定时,还是计数,当加1计数器由全1再加1变成全 0时产生溢出,形成溢出中断。 定时/计数器的初值(P140) 对于加1计数器,每来1个计数脉冲就加1,当计数 器计满时,由全1再加1变成全0时产生溢出,形成 溢出中断。如果要计数 N 达到溢出,则要先向计 数器设初值X。 初值X=(最大计满值M)+1-计数值N 当定时/计数器工作于R位计数方式时,其最大计 数(计满)值为2R-1。 对于8位计数器,其最

5、大计满值为28-1=255;对于 16位计数器,其最大计满值为216-1=65535;对于 13位计数器,其最大计满值为213-1=8191; 片外输入计数脉冲频率的最大值 对于外部脉冲的计数,在每个机器周期的S5P2对引 脚P3.4或P3.5上的信号采样,如果在两个相邻周期 出现下降沿,则在下一个机器周期的S3P2加1计数器 计数1次。因此要2个机器周期才能计数1次。也就是 最少需要2s计数1次,因此外部输入脉冲频率 9) SQ=!SQ;/输出翻转 i=0;/软件计数重载 用定时器T0+计数器T1,中断处理 T0工作于定时器方式,T1工作于计数器方式。T1 的计数脉冲通过P3.5(T1的计数

6、外脉冲输入)。 T1的计数脉冲由T0定时器提供。 定时器T0定时250s,工作于方式2(8位重载) ,初值为6,定时时间到时对P3.5引脚(T1的计数 脉冲输入)取反1次,使P3.5每500s产生1个计 数脉冲。产生500ms只需要T1计数1000次。 计数器T1工作于方式1(16位不重载),初值: X=65536-1000=64536, TH1=64536/256=252,TL1=64536%256=24。 定时器T0和计数器T1都工作在中断方式。 用定时器T0+计数器T1,中断处理,汇编。 ORG 0000H LJMP MAIN ORG 000BH;T0中断入口 CPL P3.5;T0定时

7、取反信号 接入T1计数 RETI;T0中断返回 ORG 001BH;T1中断入口 MOV TH1,#252;T1重载 MOV TL1,#24;T1重载 CPL P1.1;输出翻转 RETI;T1中断返回 ORG 0030H MAIN:MOV TMOD,#52H;T1计 数器方式1,16位;T0定时器 方式2,8位重载。 MOV TH0,#6;T0保存初值 MOV TL0,#6; T0赋初值 MOV TH1,252; T1赋初值 MOV TL1,24; T1赋初值 SETB EA;开总中断 SETB ET0;开T0溢出中断 SETB ET1;开T1溢出中断 SETB TR0;启动T0 SETB

8、TR1;启动T1 SJMP $;原地踏步 END 用定时器T0+计数器T1,中断处理,C51。 #include #include sbit P1_1=P11 ; sbit P3_5=P35; int main(void) TMOD=0x52;/T1计数器方式1 16位不重载 TH0=6;TL0=6;/T0赋初值 TH1=252;TL1=24;/T1赋初值 EA=1;/开总中断 ET0=1;ET1=1;/开T0 T1中断 TR0=1;TR1=1;/启动T0 T1 while (1);/原地踏步 void time0_int(void) interrupt 1 using 1 /T0中断处理 P3_5=!P3_5;/T0定时取 反信号接入引脚P3.5做 T1的计数脉冲 void time1_int(void) interrupt 3 using 2 /T1中断处理 TH1=252;/T1重载 TL1=24 ;/T1重载 P1_1=!P1_1;/输出翻转

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

当前位置:首页 > 电子/通信 > 综合/其它

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