MCS-51单片机的内部资源及应用-定时计数.pptVIP

  • 11
  • 0
  • 约2.91千字
  • 约 30页
  • 2016-07-27 发布于湖北
  • 举报

MCS-51单片机的内部资源及应用-定时计数.ppt

MCS-51单片机的内部资源及应用-定时计数

第3章 MCS-51单片机的内部资源及应用 ;应用问题:;(1)计数:计数是指对外部事件的个数进行计量。实质是对外部输入脉冲的个数进行计量。 实现计数功能的器件称为计数器。 (2)定时:定时器和计数器是一个部件, 计数器记录的是外界发生的事件; 定时器记录的是单片机内部提供的脉冲,这个脉冲是晶振脉冲经过12分频后的脉冲源。;有2个16位可编程的定时器/计数器,简称为T0和T1; 均是二进制加法计数器,回零溢出时产生中断请求; 适用于定时控制、延时、外部计数和检测等; 计数器:对引脚T0(P 3.4 )和T1(P3.5.)输入的外部脉冲计数; 信号负跳变,计数器自动加1。最高频率:一般为fosc/24。 定时器:对振荡脉冲的12分频输出进行计数,即对机器周期计数。; 8051单片机内部的定时器/计数器的结构如下图所示。;控制寄存器TCON (88H) ;GATE:门控位 = 0 :软件控制 即由TR0控制启/停。 = 1 :硬件控制 由INT0 和TCON中TR0组合控制启/停。;工作方式寄存器TMOD ;3.3.2 定时器/计数器的工作方式 ;工作方式2( M1M0=10,计数初值自动重装,8位) 两个8位寄存器TH0和TL0 装入相同初值,TL0作计数器,TH0作预置寄存器 计数满溢出时,TF0置“1”,同时硬件使TL0=TH0 应用:串行数据通信的波特率发生器。;工作方式3 ( M1M0=11 , 2个8位定时器/计数器,仅适用于T0) TL0:8位定时器/计数器,和T0方式0或方式1完全相同。 TH0:8位定时器,用T1的控制位TR1和TF1。不能对外计数。 在方式3模式下,定时器/计数器0可以构成两个定时器或者一个定时器和一个计数器。 T0方式3下,T1方式2,定时初值能自动恢复,常用作波特率发生器。;定时器/计数器初始化的步骤;计数器初值的计算 ;计数器初值的计算例题;定时器初值的计算 ;定时器/计数器应用举例 Li_333_1: 利用定时器T0定时,在P1.7端输出一方波,方波周期为20ms,已知晶振频率为12MHZ. 解:周期为20ms,定时为10ms=10000us 方式1( TMOD=01H ):16位 2^16-10000=55536=0D8F0H TH0=0D8H; TL0=0F0H ;定时器/计数器应用举例1;定时器/计数器应用举例2 设发光二极管LED和8051的P1.0脚相连。当P1.0脚是高电平时,LED发亮;当P1.0脚是低电平时,LED不亮。编制程序用定时器来实现发光二极管LED的闪烁功能,设置LED每1s闪烁一次。已知单片机系统主频为12MHz。 解:最长定时是65.536ms,无法实现1s的定时。需要采用软件计数器来进行设计。1s=1000ms=5*200=10*100=20*50=25*40;设计思想: 先做一个50ms的定时器,完成20次定时中断则为1s。 软件计数器单元30H,每50ms软件计数器的值加1,完成20次则P1.0取反,软件计数器清零,否则直接返回。 定时时间就为50×20=1000ms=1s。 工作方式1,TMOD=0000 0001B=01H 其初值为:216?50ms/1?s=65536?50000=15536=3CB0H;程序如下:( LI3_6_2.asm) ORG 0000H AJMP START ; 转入主程序 ORG 000BH ; 定时器/计数器0的中断服务程序入口地址 AJMP TIME0 ; 跳转到定时器中断服务程序处 ORG 0030H START: MOV SP, #60H ; 设置堆栈指针 MOV P1, #00H ; 关发光二极管LED(使其灭) MOV 30H, #00H ; 软件计数器预清0 MOV TMOD, # 01H ; 定时器/计数器0工作于方式1 MOV TH0, #3CH ; 设置定时器/计数器的初值 MOV TL0, #0B0H SETB EA ; 开总中断允许 SETB ET0

文档评论(0)

1亿VIP精品文档

相关文档