MCS-51 单片机的定时器/计数器

发布者:楼高峰最新更新时间:2022-12-09 来源: zhihu关键字:MCS-51  单片机  定时器  计数器 手机看文章 扫描二维码
随时随地手机看文章

MCS-51 单片机的定时器/计数器

主要内容:定时器/计数器的结构、定时器/计数器的4 种工作方式、对外部输入的计数信号的要求、定时器/计数器的编程和应用。


概述:两个可编程的定时器/计数器T1、T0。


两种工作模式:

(1)计数器工作模式

(2)定时器工作模式

4种工作方式(方式0-方式3)。

6.1 定时器/计数器的结构

TMOD:选择定时器/计数器T0、T1的工作模式和工作方式。

TCON:控制T0、T1的启动和停止计数,同时包含了T0、T1的状态。

单片机复位时,两个寄存器的所有位都被清0。

6.1.1 工作方式控制寄存器TMOD

8位分为两组,高4位控制T1,低4位控制T0。

(1)GATE——门控位

0:以TRX(X=0,1)来启动定时器/计数器运行。

1:用外中断引脚(INT0*或INT1*)上的高电平和TRX来启动定时器/计数器运行。

(2)M1、M0——工作方式选择位

M1 M0 工 作 方 式

0 0 方式0,13位定时器/计数器。

0 1 方式1,16位定时器/计数器。

1 0 方式2,8位常数自动重新装载

1 1 方式3,仅适用于T0,T0分成两个8位计数器,T1停止计数。

(3) C/T*——计数器模式和定时器模式选择位

0:定时器模式。

1:计数器模式。

6.1.2 定时器/计数器控制寄存器TCON

低4位与外部中断有关,已介绍。高4位的功能如下:

(1) TF1、TF0——计数溢出标志位

(2) TR1、TR0——计数运行控制位

1:启动定时器/计数器工作

0:停止定时器/计数器工作

6.2 定时器/计数器的4种工作方式

6.2.1 方式0

M1、M0为00 ,定时器/计数器的框图:

为13位的计数器 ,C/T* 位决定工作模式:

0:开关打在上面,为定时器工作模式;

1:开关打在下面,为计数器工作模式,计数脉冲为P3.4、P3.5引脚上的外部输入脉冲,当引脚上发生负跳变时,计数器加1。

GATE位:决定定时器/计数器的运行取决于TRX一个条件还是TRX和INTX*引脚两个条件。

(1)0:A点(见图6-2)是否计数,仅取决于TRX的状态。

(2)1:B点电位由INTX*的输入电平和TRX的状态这两个条件来确定。是否计数是由TRX和INTX*二个条件来控制的。

6.2.2 方式1


M1、M0=01,16位的计数器。

6.2.3 方式2

计数满后自动装入计数初值。

M1、M0=10 ,等效框图如下:

TLX作为常数缓冲器,当TLX计数溢出时,在置“1”溢出标志TFX的同时,还自动的将THX中的初值送至TLX,使TLX从初值开始重新计数。定时器/计数器的方式2工作过程如图6-5(X=0,1)。

省去用户软件中重装初值的程序,精确的定时。

6.2.4 方式3

增加一个附加的8位定时器/计数器,从而具有3个定时器/计数器。只适用于定时器/计数器T0。T1不能工作在方式3,T1方式3时相当于TR1=0,停止计数(此时T1可用来作串行口波特率产生器)。

1.工作方式3下的T0

T0分为两个独立的8位计数器:TL0和TH0 。TL0使用T0的状态控制位C/T*、GATE、TR0、,而TH0被固定为一个8位定时器(不能作外部计数模式),并使用定时器T1的状态控制位TR1和TF1,同时占用定时器T1的中断请求源TF1。 各引脚与T0的逻辑关系如图所示:

2.T0工作在方式3下T1的各种工作方式

当T1用作串行口的波特率发生器时, T0才工作在方式3。T0处于方式3时, T1可定为方式0、方式1和方式2,用来作为串行口的波特率发生器,或不需要中断的场合。

(1)T1工作在方式0

(2) T1工作在方式1

(3) T1工作在方式2

6.3 定时器/计数器对输入信号的要求

计数器模式时,计数脉冲来自外部输入引脚T0或T1。当输入信号产生负跳变时,计数值增1。每个机器周期S5P2期间,都对外部输入引脚T0或T1进行采样。如在第1个机器周期中采得值为1,而在下一个机器周期中采得的值为0,则在紧跟着的再下一个机器周期S3P1期间,计数器加1。由于确认一次负跳变要花2个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率1/24。

外部计数脉冲的最高频率为系统振荡器频率的1/24,例如选用12MHz频率的晶体,则可输入500KHz的外部脉冲。

输入信号的高、低电平至少要保持一个机器周期。如图6-10所示,图中Tcy为机器周期。

6.4 定时器/计数器的编程和应用

4种工作方式中,方式0与方式1基本相同,由于方式0是为兼容MCS-48而设,初值计算复杂,在实际应用中,一般不用方式0,而采用方式1。

6.4.1 方式1应用

例6-1 假设系统时钟频率采用6MHz,要在P1.0上输出一个周期为2ms的方波,如图所示。


方波的周期用T0来确定,让T0每隔1ms计数溢出1次,既T0每隔1ms产生一次中断,CPU相应中断后,在中断服务程序中对P1.0取反。

(1)计算初值X

定时时间=(216−X)×12/晶振频率

设初值为X,则有:(2^16-X)×2×10^(-6)=1×10-3216-X=500

因为单个系统时钟周期为:(1/6m*12)

备注:12分频

所以:X=65036

X化为16进制,即X=FE0CH=1111111000001100B。

所以,T0的初值为:TH0=0FEH TL0=0CH

(2)初始化程序设计:

主要是对寄存器IP、IE、TCON、TMOD的相应位进行正确设置,将计数初值送入定时器中。

(3)程序设计

中断服务程序除了完成要求的产生方波这一工作之外,还要注意将计数初值重新装入定时器中,为下一次产生中断作准备。

ORG 0000H

RESET: AJMP MAIN ;转主程序

ORG 000BH;T0的中断入口

AJMP IT0P;转T0中断处理程序IT0P

ORG 0100H

MAIN: MOV SP,#60H ;设堆栈指针

MOV TMOD,#01H;设置T0味方式一

ACALL PT0M0;调用子程序PT0M0

HERE: AJMP HERE ;自身跳转

PT0M0:MOV TL0,#0CH;T0中断服务程序,T0重新置初值

MOV TH0,#0FEH

SETB TR0;启动T0

SETB ET0;允许T0中断

SETB EA;CPU开中断

RET

IT0P: MOV TL0,#0CH;T0中断服务子程序,T0置初值

MOV TH0,#0FEH

CPL P1.0 ;P1.0的状态取反

RETI

END


关键字:MCS-51  单片机  定时器  计数器 引用地址:MCS-51 单片机的定时器/计数器

上一篇:MCS-51 单片机的串行通信(RS-232/UART)
下一篇:MCS-51 单片机的中断系统

推荐阅读最新更新时间:2024-11-06 13:46

变频空调单片机测控系统的抗干扰设计
1引言 随着科学技术的发展,单片机在各种家电产品中得到了越来越广泛的应用,它的稳定性工作是衡量其质量好坏的重要指标。因此,有效地抑制单片机系统内部和外部的电磁噪声干扰,使单片机系统在实际运行环境中长期可靠地工作,是一个亟待解决的电磁兼容问题。 在我们设计的变频空调电控系统中,由于其所处环境比较恶劣,特别是在冬季与夏季强功率运行时,由压缩机、风机高速运转所引起的机械振动,电器设备(如斩波器、电动机等)所产生的干扰,室内外环境的温差(-20℃~40℃),都会影响单片机系统的正常工作。这就要求在设计单片机系统时必须考虑到各种影响其正常工作的因素,并采取相应的有效措施。当然,单片机系统的可靠性是由多种因素决定的,但系统的抗干扰性能是系
[单片机]
变频空调<font color='red'>单片机</font>测控系统的抗干扰设计
MCS-51单片机时序
一、时序:单片机时序是指单片机执行指令时应发出的控制信号的时间序列。这些控制信号在时间上的相互关系就是CPU的时序。它是一系列具有时间顺序的脉冲信号。 CPU发出的时序有两类:一类用于片内各功能部件的控制,它们是芯片设计师关注的问题,对用户没有什么意义。另一类用于片外存储器或I/O端口的控制,需要通过器件的控制引脚送到片外,这部分时序对分析硬件电路的原理至关重要,也是软件编程遵循的原则,需要认真掌握。 扩展阅读:什么是单片机的时序 二、时钟周期、机器周期和指令周期 1、 时钟周期:又称振荡周期。指为单片机提供定时信号的振荡源周期。是最小的时序单位。 振荡源的频率越高,单片机的工作速度越快。 时钟周期被分成两个节拍P1和
[单片机]
<font color='red'>MCS-51</font><font color='red'>单片机</font>时序
Microchip GDD X支持在Windows®、Linux或Mac®电脑上创建基于PIC® MCU的GUI
全球领先的整合单片机、混合信号、模拟器件和闪存专利解决方案的供应商——Microchip Technology Inc.(美国微芯科技公司)宣布推出其增强型可视化设计工具图形显示设计器X(GDD X),为采用Microchip 16位或32位PIC® MCU的应用提供了一种快速简便的方法来创建图形用户界面(GUI)屏幕。利用GDD X,开发人员可以在Windows®、Linux或Mac OS®操作系统中,自由地选择其工作环境。 现如今,图形用户界面广泛应用于从咖啡机到汽车仪表盘的各种产品。虽然图形用户界面的要求已变得司空见惯,但却没有供开发人员使用的兼具成本效益的工具。放置对话框、指导文本、按钮、滑块、刻度盘及其他GUI元素,同
[单片机]
51单片机T2定时器应用
定时器T2有三种工作模式,其中MODE 2为波特率发生器。 1、Mode 2:波特率发生器 串口方式1和3的波特率计算如下: 波特率bps=振荡器频率freq/ 则:RCAP2=65536-(freq/32/bps) 如果freq=11.0592MHZ,bps=9600,则:RCAP2 = 65500 RCAP2H = 255;RCAP2L = 220 此时的程序设置如下: uint a, bps = 96; // 9600 bps SCON |= 0x50; // 0101 0000串口方式1,允许接收 a=3456/bps; a=~a; RCAP2H = a/256; R
[单片机]
使用超高速闪存微控制器实现快速内存传输
达拉斯 半导体 超高速闪存 微控制器 具有双数据指针,具有自动递增/递减和切换选择功能。本应用笔记将采用一个数据指针的原始8051架构与DS89C430和DS89C450的新架构及其更高的数据移动效率进行了比较。本文提供了大量代码示例,以帮助理解该超高速微控制器的双数据指针的使用。 概述 嵌入式系统 设计人员和 程序员 一直在寻找巧妙的方法来突破其 8051 微控制器设计的性能极限。如果您的应用受到微控制器复制外部数据存储器缓冲器或读/写存储器映射外设的速率的限制,则可能会受益于使用更多片上 硬件 和更少软件的方案。本应用笔记介绍了使用 定时器 /计数器作为终止固定长度复制例程的方法。将这种方法与达拉斯的超高速 8051 架构及
[单片机]
使用超高速闪存<font color='red'>微控制器</font>实现快速内存传输
AVR单片机熔丝和解锁
AVR单片机的熔丝位配置是AVR单片机初学者很容易出错的地方,其实只要注意一些事项,还是能够尽量避免单片机被锁死,即使单片机被锁死,也可以使用一些方法解锁,本文讲述我在刚开始接触AVR单片机时熔丝位配置出现的一些问题。 1、AVR单片机的熔丝位是比较独到的特征,可以控制系统的时钟,JTAG调试、看门狗、芯片加密等等。图1是progisp软件,对于初学者来说,对熔丝位不熟悉,可以先将2处的编程熔丝对勾去掉,这样在编程的时候,就不会对熔丝位进行编程,单片机出厂的默认设置就可以使用。点击1处进入熔丝位配置界面。 图1 图2为位配置方式,这里的每一位都不能随意点击,尤其是熔丝低位控制时钟的地方,一般来说,直接对位进行配置并不
[单片机]
AVR<font color='red'>单片机</font>熔丝和解锁
一文读懂汽车控制芯片(MCU)分类及性能要求
01 控制类芯片介绍 控制类芯片主要就是指MCU(Microcontroller Unit),即微控制器,又叫单片机,是把CPU的主频与规格做适当缩减,并将存储器、定时器、A/D转换、时钟、I/O端口及串行通讯等多种功能模块和接口集成在单个芯片上,实现终端控制的功能,具有性能高、功耗低、可编程、灵活度高等优点。 车规级MCU示意图 ※资料来源:公开资料、编写单位提供 汽车是MCU的一个非常重要的应用领域,据IC Insights数据,2019年全球MCU应用于汽车电子的占比约为33%。高端车型中每辆车用到的MCU数量接近100个,从行车电脑、液晶仪表,到发动机、底盘,汽车中大大小小的组件都需要MCU进行把控。早期,汽车中应
[嵌入式]
一文读懂汽车控制芯片(<font color='red'>MCU</font>)分类及性能要求
MCS-51定时/计数器
定时/计数器的工作方式 MCS-51单片机内部的定时/计数器的结构如图1所示,定时器T0特性功能寄存器TL0(低8位)和TH0(高8位)构成,定时器T1由特性功能寄存器TL1(低8位)和TH1(高8位)构成。特殊功能寄存器TMOD控制定时寄存器的工作方式,TCON则用于控制定时器T0和T1的启动和停止计数,同时管理定时器T0和T1的溢出标志等。程序开始时需对TL0、TH0、TL1和TH1进行初始化编程,以定义它们的工作方式和控制T0和T1的计数。 TMOD和TCON这两个特殊功能寄存器的格式参见下表: . 定时/计数器的方式控制字TMOD,字节地址为89H,其格式如表1:
[单片机]
<font color='red'>MCS-51</font>定时/<font color='red'>计数器</font>
热门资源推荐
热门放大器推荐
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved