文档详情

第七章 单片机的定时器计数器.ppt

发布:2019-04-17约1.29万字共53页下载文档
文本预览下载声明
第七章 单片机的定时器/计数器 7.1 定时器/计数器 1.基本概念 (1)计数:计数是指对外部事件的个数进行计量。其实质就是对外部输入脉冲的个数进行计量。实现计数功能的器件称为计数器。 (2)定时:8051单片机中的定时器和计数器是一个部件,只不过计数器记录的是外界发生的事件,而定时器则是由单片机内部提供一个非常稳定的计数源进行定时的。这个计数源是由单片机的晶振经过12分频后获得的一个脉冲源。所以定时器计数脉冲的时间间隔与晶振有关。 2.MCS-51内部定时器/计数器 (2)控制寄存器TCON (88H) (2)工作方式寄存器TMOD 7.2 定时器/计数器的工作方式 8051单片机的定时器/计数器共有四种工作模式,现以T0为例加以介绍,T1与T0的工作原理相同,但方式3下T1停止计数。 1.工作方式0( M1M0=00 ,13位定时器/计数器) 由TH0的全部8位和TL0的低5位( TL0的高3位未用)构成13位加1计数器,当TL0低5位计数满时直接向TH0进位,并当全部13位计数满溢出时,溢出标志位TF0置“1”。 2.工作方式1 ( M1M0=01 ,16位定时器/计数器) 由TH0和TL0构成16位加1计数器,其他特性与工作方式0相同。 3.工作方式2 ( M1M0=10 ,自动重装计数初值的8位定时器/计数器) 16位定时器/计数器被拆成两个8位寄存器TH0和TL0,CPU在对它们初始化时必须装入相同的定时器/计数器初值。以TL0作计数器,而TH0作为预置寄存器。当计数满溢出时,TF0置“1”,同时TH0将计数初值以硬件方法自动装入TL0。这种工作方式很适合于那些重复计数的应用场合(如串行数据通信的波特率发生器)。 7.2.2定时器/计数器的应用 定时器/计数器可按片内机器周期定时,也可对由T0/T1引脚输入一个负脉冲进行加法计数。在应用时,其工作方式和工作过程均可通过程序设定和控制,因此,定时器/计数器在工作前必须先对其进行初始化,计算和设置初值。 1. 定时器T0/T1 中断申请过程 (1)在已经开放T0/T1中断允许且已被启动的前提下,T0/T1加1计满溢出时 TF0/TF1标志位自动置“1” ; (2)CPU 检测到TCON中TF0/TF1变“1”后,将产生指令:执行中断服务程序; (3)TF0/TF1标志位由硬件自动清“0”,以备下次中断申请。 2. 定时器/计数器初始化的步骤 3. 计数器初值的计算 4. 定时器初值的计算 7.3 MCS-51 单片机的串行通信 4. 串行数据通信的波特率 7.3.2 MCS-51的串行口 2. 串行通信控制寄存器SCON (98H) 7.3.3 串行口的工作方式 3. 方式2(固定波特率的11位异步接收/发送方式) 7.3.4 串行口的通信波特率 为什么51系列单片机常用11.0592MHz的晶振设计? 因为它能够准确地划分成时钟频率,与UART(通用异步接收器/发送器)常见的波特率相关。特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振都是准确,常被使用的。用11.0592MHz可以得到准确的数值,而用12MHz就不能得到整数数值。通信是一定要准确发送和接受的,否则积累误差就会产生。 【例题】设晶振fosc为11.0592MHz,选定定时器工作方式2,求4800bps、9600bps时的初值。 解:定时器方式2的初始值X的公式经过推导可得到: X = 256-[fosc×(SMOD+1)]/(384×波特率) 故: X1=256-(11.0592×106×1)/(384×4800) = FAH X2 =256-(11.0592×106×1)/(384×9600) = FDH 看得出来,采用11.0592MHz全是整数值结果,而采用12MHz则不是整数结果。 7.3.5 串行口的应用 4.单片机与PC的通信 3.4.5 串行芯片MAX232的应用 EIA RS-232C总线标准与接口电路 EIA RS-232C是异步串行通信中应用最广泛的标准总线,是美国EIA(Electronic Industries Association,电子工业联合会)开发公布的通信协议。适合于数据传输速率在0~20kb/s范围内的通信,包括了按位串行传输的电气和机械方面的规定。在微机通信接口中被广泛采用。 其特点
显示全部
相似文档