51单片机定时器使用时非常重要的6点经验详细的总结

发布者:小九分析仪最新更新时间:2023-10-10 来源: elecfans关键字:51单片机  定时器  寄存器 手机看文章 扫描二维码
随时随地手机看文章

单片机定时器的使用可以说非常简单,只要掌握原理,有一点的C语言基础就行了。要点有以下几个:

1. 一定要知道英文缩写的原形,这样寄存器的名字就不用记了。

理解是最好的记忆方法。好的教材一定会给出所有英文缩写的原形。

2. 尽量用形像的方法记忆。

比如TCON和TMOD两个寄存器各位上的功能,教程一般有个图表,你就在学习中不断回忆那个图表的形像。

3. TMOD:定时器/计数器模式控制寄存器(TIMER/COUNTER MODE CONTROL REGISTER)

定时器/计数器模式控制寄存器TMOD是一个逐位定义的8位寄存器,但只能使用字节寻址,其字节地址为89H。其格式为:其中低四位定义定时器/计数器C/T0,高四位定义定时器/计数器C/T1,各位的说明:

(1)GATE——门控制。

GATE=1时,由外部中断引脚INT0、INT1来启动定时器T0、T1。

当INT0引脚为高电平时TR0置位,启动定时器T0;

当INT1引脚为高电平时TR1置位,启动定时器T1。

GATE=0时,仅由TR0,TR1置位分别启动定时器T0、T1。

(2)C/T——功能选择位

C/T=0时为定时功能,C/T=1时为计数功能。

置位时选择计数功能,清零时选择定时功能。

(3)M0、M1——方式选择功能

由于有2位,因此有4种工作方式:

M1M0 工作方式 计数器模式 TMOD(设置定时器模式)

0 0 方式0 13位计数器 TMOD=0x00

0 1 方式1 16位计数器 TMOD=0x01

1 0 方式2 自动重装8位计数器 TMOD=0x02

1 1 方式3 T0分为2个8位独立计数器,T1为无中断重装8位计数器 TMOD=0x03

单片机定时器0设置为工作方式1为TMOD=0x01

这里我们一定要知道,TMOD的T是TIMER/COUNTER的意思,MOD是MODE的意思。至于每位上的功能,你只要记住图表,并知道每个英文缩写的原型就可以了。

在程序中用到TMOD时,先立即回忆图表,并根据缩写的单词原形理出每位的意义,如果意义不是很清楚,就查下手册,几次下来,TMOD的图表就已经在脑子里了。

8位 GATE位,本身是门的意思。

7位 C/T Counter/Timer

6位 M1 Mode 1

5位 M0 Mode 0

4. TCON: 定时器/计数器控制寄存器(TIMER/COUNTER CONTROL REGISTER)

TMOD分成2段,TCON控制更加精细,分成四段,在本文中只要用到高四段。

TF0(TF1)——计数溢出标志位,当计数器计数溢出时,该位置1。

(1)TR0(TR1)——定时器运行控制位

当TR0(TR1)=0 停止定时器/计数器工作

当TR0(TR1)=1 启动定时器/计数器工作

(2)IE0(IE1)——外中断请求标志位

当CPU采样到P3.2(P3.3)出现有效中断请求时,此位由硬件置1。在中断响应完成后转向中断服务时,再由硬件自动清0。

(3)IT0(IT1)——外中断请求信号方式控制位

当IT0(IT1)=1 脉冲方式(后沿负跳有效)

当IT0(IT1)=0 电平方式(低电平有效)此位由软件置1或清0。

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

当计数器产生计数溢出时,此位由硬件置1。当转向中断服务时,再有硬件自动清0。计数溢出的标志位的使用有两种情况:采用中断方式时,作中断请求标志位来使用;采用查询方式时,作查询状态位来使用。注意记忆方法,理解单词原形,就绝对不会把TF和TR搞混。TF的F也就是溢出Over Flow的F。TR的R就是运行Run。默认是0不运行,当然要置1才运行。

5. STC单片机STC89C52RC定时器延时时间的计算

延时时间要根据晶振频率计算,不同板子可能有所不同。

时钟周期:

1/时钟源,晶振频率是11.0592M,那么时钟周期就是 1/11059200秒

机器周期:

一般51单片机是12个时钟周期,也就是 12/11059200秒

单次定时最长时间:

如果是16位的计数器,16位最大值是65535,共可计数65536次。基本的常数一定要记住,还要记住8位最大值是255,共可计数256次,还要记住8位上每位代表的数值。

12 * 65536/11059200 = 0.0711 s,也就是,71 ms内的定时可以单次定时就完成。如果定时时间超过71 ms,就要循环了。

一次定时需要几次机器周期:

计算公式:定时秒数/机器周期

比如要定时1秒, 1/(12/11059200)= 921600次,16位计数器最大可计数65536次,921600次早就益出了。我们可以每次定时10 ms,循环100次就可以定时1秒了,1 s缩小100百倍就是10 ms, 也就是每次需要计数9216次。

确实计数器初始值:

定时10 ms时,如果计数器从0开始计数,就不知道什么时候到了9216次。所以应该计数了9216次,16位计数器最多计数95536次,然后就溢出,一溢出TCON的TF位就会置1,只要经常检测TF位就可以知道什么时候完成10ms的定时了。

计算公式:计数器初始值=最大计数次数 - 需要计数次数

如果定时10 ms,计数器的初始值就是 65536 - 9216

计算计数器的高位和低位:

16位的计数器,也就是两个8位组成,8位的最大计数次数是256。所以:

计数器高位 = 初始值/256

计数器低位 = 初始值%6

6.STC89C52RC单片机定时器示例代码:

51单片机定时器使用时非常重要的6点经验详细的总结


关键字:51单片机  定时器  寄存器 引用地址:51单片机定时器使用时非常重要的6点经验详细的总结

上一篇:基于STC89C52和IC射频卡设计的射频识别锁系统解决方案
下一篇:如何将51单片机进行内存优化

推荐阅读最新更新时间:2024-10-29 22:32

89C51单片机的接线及调试
拿到一块芯片,想要使用它,首先必须要知道怎样连线,我们用的一块称之为89C51的芯片,下面我们就看一下如何给它连线。 1、电源:这当然是必不可少的了。单片机使用的是5V电源,其中正极接40管脚,负极(地)接20管脚。 2、振蒎电路:单片机是一种时序电路    拿到一块芯片,想要使用它,首先必须要知道怎样连线,我们用的一块称之为89C51的芯片,下面我们就看一下如何给它连线。 1、 电源:这当然是必不可少的了。单片机使用的是5V电源,其中正极接40管脚,负极(地)接20管脚。 2、振蒎电路:单片机是一种时序电路,必须供给脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接18、19脚。只要买来晶体震荡器,电容
[单片机]
89C<font color='red'>51单片机</font>的接线及调试
ATmega 16单片机的EEPROM存储器的相关寄存器(三)
EEPROM存储器的相关寄存器 1.EEARH、EEARL EEPROM地址寄存器 2.EEDR EEPROM数据寄存器 3.EECR EEPROM控制寄存器 EERIE EEMWE EEWE EERE 位 7..4 Res:保留 保留位,读操作返回值为零。 位 3 EERIE:EEPROM中断准备好使能 若SREG的I为 1 ,则置位EERIE将使能EEPROM准备好中断。清零EERIE则禁止此中断。当I=EERIE=1且EEWE清零时,则单片机产生一个中断表示写操作完成。 位2 EEMWE:EEPROM主机写使能 EEMWE决定了EEWE置位是否可以启动EEPROM写操作。当
[单片机]
手把手教你学51单片机:硬件基础知识学习
一、电磁干扰 使用去耦电容来达到电磁兼容目的。 二、去耦电容的应用 类比电流和水流,可得到去耦电容的作用: (1)缓冲作用:防止电流不稳定时对电子元器件的冲击。 (2)稳定作用:稳定电压电流,使之不产生大的波动。 故该如何选取电容: (1)耐压值:一般选取系统电压的1.5倍到2倍。 (2)滤波电容:一般为0.1uf,滤除高频信号干扰,可加在电源处作为去耦高频电容。 (3)稳定电压:较大电流通过时会加大电容用来稳压。 三、三极管 3.1三极管分类 NPN、PNP 3.2三极管原理 3.2.1口诀 箭头指內PNP,导通电压顺箭头过,电压导通,电流控制。 3.2.2电流控制 三极
[单片机]
手把手教你学<font color='red'>51单片机</font>:硬件基础知识学习
51单片机的存储组织
MCS-51单片机的存储器组织结构 特点:哈佛结构,程序存储器与数据存储器分开,两者各有一个相互独立的64K(0x0000 ~ 0xFFFF)的寻址空间(准确地说,内部数据存储器与外部数据存储器不是一回事)。 程序存储器: ① 用于存放程序(可执行的二进制代码映像文件,包括程序中的数据信息),还包括初始化代码等固件。 ② 为只读存储器。注意,这里的 只读 ,是指单片机(CPU)在正常工作时对其的访问方式是只读的;而现在大多数单片机的程序存储器(不管是内部还是外部)都采用了FLASH ROM,来取代以前所用的ROM、E2PROM等,可方便地进行在线编程(ISP)。 ③ 标准8051的内部程序存储器大小为4KB(0x0000
[单片机]
ATMEGA16定时器0
T/C0 是一个八位定时器,主要有定时、外部事件计数、产生PWM 波形这几个功能,我们在使用这些功能之前,首先要设置T/C0 工作在合适的工作模式下。T/C0 有四种工作模式,分别是普通模式、CTC 模式、快速PWM、相位可调的PWM 模式四种。模式设置通过T/C0 的控制寄存器TCCR0 来完成。 1.普通模式 在此模式下,T/C0 的计数寄存器TCNT0 在时钟的驱动下不停累加。当计满后(计数值达到最大,8 位寄存器最大计数值为0xff),由于数值的溢出寄存器清零重新开始累加。当计数器溢出后,TIFR 中的溢出标志位TOV0 会置位,也可触发中断。所以我们可以通过查询或中断的方式得知定时器的溢出从而进行相关处理。此模式适合
[单片机]
MSP430寄存器中文注释----串口寄存器
/************************************************************ * USART 串口寄存器 UCTL , UTCTL , URCTL 定义的各个位 可串口1 串口2公用 ************************************************************/ /* UCTL 串口控制寄存器*/ #define PENA 0x80 /*校验允许位*/ #define PEV 0x40 /*偶校验 为0时为奇校验*/ #define SPB 0x20
[单片机]
51单片机的工作原理
51单片机与很多单片机的工作原理是一致的,而且都遵循冯诺依曼架构,即就是数据区和代码区是区分开来的。在单片机中的具体表现就是程序ROM区和数据RAM区。 本文将以应用最广泛的51单片机为例来解析单片机的工作原理。 一、微处理器 主要包括ALU(算数逻辑运算单元)和控制部件。 先来说ALU,它执行的是单片机的数学运算(如:+、-、*、/、%、 、 、++、--等等)。逻辑运算单元执行单片机的逻辑运算(如:与、或、非、==、!、!=、同或、异或、||、&&等等)。其实说到这里,我们很容易就能想到C语言也是在执行以上这些逻辑运算和数学运算。 再来看一下控制部件,它是控制单片机的程序计数器PC向程序存储器获取指令和操作数的
[单片机]
51单片机实现音频频谱显示的快速算法研究
1 引言 在家庭影院、卡拉OK等音响系统中,实时显示音乐信号的频谱将为音响系统增添不少色彩。目前实际生产的音响系统产品,大多采用以下两种方法实现音频频谱显示:一是利用硬件滤波器和A/D转换器;二是利用DSP处理频谱显示。前者实现简单,但硬件成本高,后者软件和硬件实现都较复杂。这里针对单片机RAM资源少、运算速度慢的特点,提出一种切实可行的快速傅里叶变换算法实现频谱显示。 2 系统整体设计及原理 该系统设计由单片机SST89V58RD2、音频数据采样电路、A/D转换电路、频谱显示电路等部分组成。图1为系统整体设计原理框图。 该系统从功能上可划分成3部分:(1)音频数据采集电路实现模拟音频信号的采样保持和量化处
[单片机]
<font color='red'>51单片机</font>实现音频频谱显示的快速算法研究
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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