实例3: 定时/计数器与LED - 单片机开发技术实例(一)

实例名称:定时/计数器与LED.
实例所需主要资源: AT89C51 、LED.7407
实例目标:利用AT89C51 单片机一个I/0 引脚点亮一个LED,扩展一片7407 作为驱动; LED 亮灭周期2s ,占空比50% ;利用定时/计数器延时,给出汇编语言和C 语言完整程序。
实例目的:重点介绍单片机定时/计数器的工作原理和使用方法,加深对中断系统的认识,学会使用定时/计数器。
1 定时/计数器的结构及工作原理
1. 1 定时/计散器的主要特性
定时/计数器是MCS-51 系列单片机中的重要功能模块之一,在检测、控制和智能仪器等设备中经常用它来定时。另外,它还可以通过T0和T1 引脚肘外部事件计数。
MCS-51 系列单片机中51 系列有两个16 位的可编程定时/计数器,定时/计数器T0和定时/计数器Tl; 52 系列比51 系列多了一个定时/计数器T2.
每个定时/计数器既可以对系统时钟计数实现定时,也可以对外部信号计数实现计数器功能,有时甚至可以多个定时/计数器进行配合使用,达到更好的定时/计数功能。
每个定时/计数器都有多种工作方式: T0有四种工作方式; Tl 有三种工作方式;T2有三种工作方式。通过设置模式控制寄存器TMOD 可以对每个定时/计数器进行模式设定。
每一个定时/计数器计数时间到的时候会产生溢出事件,使相应的溢出位置位,溢出事件可通过查询或中断方式处理。
1.2 定时/计数器的内部结构
定时/计数器TO 、T1 的结构如图所示,

它由两个加法计数器、方式寄存器TMOD 控制寄存器TCON 等组成。
从定时/计数器的结构框图中可以看出. 16 位的定时/计数器分别由两个8 位专用寄存器组成,即T0由THO 和TLO 构成; Tl 由TH1 和TL1 构成。其访问地址依次为8AH -8DH 。每个寄存器均可单独访问。这些寄存器是用于存放定时或计数初值的。此外,其内部还有一个8 位的定时器方式寄存器TMOD 和一个8 位的定时控制寄存器TCON。 这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。TMOD 主要是用于选定定时器的工作方式; TCON 主要是用于控制定时器的启动停止,此外TCON 还可以保存T0 、T1的溢出和中断标志。当定时器工作在计数方式时,外部事件通过引脚TO(P3.4) 和T1 (P3. 5 )输入。
16 位的定时/汁数器实质上就是一个加1 计数器,其控制电路受软件控制、切换。当定时/计数器为定时工作方式时,计数器的加l 信号由振荡器的12 分颇信号产生,即每过一个