51单片机学习
- 一、先知先会
- 1、CPU时序的有关知识
- 1.1、周期换算
- 2、在学习定时器之前需要明白的
- 3、定时/计数器的工作原理
- 4、51单片机定时器结构
- 二、定时/计数器的控制
- 1、工作方式寄存器TMOD
- 2、控制寄存器TCON
- 3、定时/计数器的工作方式
- 方式0:13位计数器(`TR0`控制型)
- 方式1:16位加1计数器
- 方式2:8位自动重装(重装初值)
- 方式3:只适用于定时/计数器`T0`
- 使用定时器,该做哪些工作
一、先知先会
1、CPU时序的有关知识
- 振荡周期:为单片机
提供定时信号
的振荡源的周期(晶振
周期或外加
振荡周期) - 状态周期:
2个振荡
周期为1个状态
周期,用S表示。振荡周期又称S周期
或时钟周期
。 - 机器周期:
1个机器
周期=6个状态
周期=12个振荡
周期。 - 指令周期:完成
1条指令
所占用的全部时间,它以机器周期
为单位。
1.1、周期换算
2、在学习定时器之前需要明白的
(1)51单片机有两组
定时器/计数器;
因为既可以定时
,也可以计数
,所以称为定时/计数器。
(2)定时/计数器和单片机的CPU是相互独立
的。
定时/计数器工作过程是自动完成的
,不需要CPU的参与。
(3)51单片机中的定时/计数器是根据机器内部的时钟
或者是外部脉冲信号
对寄存器中的数据加1
;
(4)有了定时/计数器之后,可以增加单片机的效率。
一些简单的重复加1的工作
可以交给定时/计数器处理,CPU转而处理一些复杂的事情。同时可以实现精确定时
。
3、定时/计数器的工作原理
4、51单片机定时器结构
定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器THx和TLx组成。TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。
二、定时/计数器的控制
51单片机定时/计数器的工作由两个特殊功能寄存器
控制。TMOD
用于设置其工作方式
;TCON
用于控制其启动和中断申请
。
1、工作方式寄存器TMOD
工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。
其格式如下:
-
GATE
是门控位, GATE=0
时,用于控制定时器的启动是否受外部中断源信号的影响。只要用软件使TCON
中的TR0
或TR1
为1,就可以启动定时/计数器工作。
GATE=1
时,需要用软件使TCON
中的TR0
或TR1
为1,同时外部中断引脚INTO/1
也为高电平
时,才可以启动定时/计数器工作。【相较于上面的方式,该方式多一个外加高电平(所以常用上面的方式)】
-
C/T
:定时/计数模式选择位。C/T =0为定时模式;C/T =1为计数模式。
-
M1M0
:工作方式设置位。定时/计数器有四种工作方式。
2、控制寄存器TCON
TCON的低4位用于控制外部中断
,已在【中断部分】介绍。TCON的高4位用于控制定时/计数器
的启动和中断申请。
其格式如下:
TF1
(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可以用软件置1或清0,同硬件置1或清0的效果一样。TR1
(TCON.6):T1运行控制位。TR1置1时,T1开始工作;TR1置0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/计数器的启动与停止。TF0
(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。TR0
(TCON.4):T0运行控制位,其功能与TR1类同。
3、定时/计数器的工作方式
方式0:13位计数器(TR0
控制型)
当GATE=0
经过反相器
,为1,经过或门
还是为1(此时不用管INT0引脚
,因为或
门嘛),再经过与门
(此时等于多少就由TR0
来控制),当TR0=1
时导通,开始计数,否则不导通。【由TR0
控制】
当GATE=1
经过反相器
,为0,此时还得看INT0引脚
,若为1,经过或门
为1(否则为0,计时器就开启不了),再经过与门
(此时结果为多少就由TR0
来控制),当TR0=1
时导通,开始计数。【由TR0
控制】
方式1:16位加1计数器
方式2:8位自动重装(重装初值)
方式3:只适用于定时/计数器T0
通常使用方式1
和方式2
使用定时器,该做哪些工作
初始化程序应完成如下工作:【编写程序也是按如下步骤进行】
- 对
TMOD
赋值,以确定T0
和T1
的工作方式; - 计算初值,并将其写入
TH0
、TL0
或TH1
、TL1
; - 打开计时器0 中断 开关
ET0
; - 中断方式,则对
EA
(总中断开关)赋值,打开
定时器中断; - 使
TR0
或TR1
置位,启动
定时/计数器定时
或计数
。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)