万福君、潘松峰
程序标志保护
第6章∶定时器/计数器、串行通讯口及中断系统
第一节∶定时器和计数器(控制程序执行节奏的核心)
一、定时器和计数器的控制与状态寄存器
1、定时器和计数器的数量以及与系统时钟的关系
T0、T1、(T2)---16位加1计数器
脉冲源变化形成计时和计数的功能不同
计数器时,Tx(P3.4和P3.5)用于外部信号计数,由外部脉冲的下降沿触发(计数的最大频率为主频的1/24以保证正确判断计数脉冲的变化)
定时器时,系统时钟12分频 (计时器方式)
2、定时器的4种工作方式的设置及有关功能寄存器
工作方式控制寄存器TMOD∶T1∶(GATE、C/T\、M1、M0) T0∶(GATE、C/T\、M1、M0)
GATE:用于选通控制:
=0时—只要TRX=1即选通定时/计数器工作
=1时—只有当INTX端口为高电平,且TRX=1时才选通
C/T:用于选择计数器或定时器模式,----即选择脉冲源
=1时为计数器、
=0时为定时器,
M1、M0 用于定义工作方式
0 0 方式0 13位计数器
0 1 方式1 16位计数器
1 0 方式2 自动再装入的8位计数器
1 1 方式3 将T0分成两个8位计数器并占用T1的控制寄存器状态位
启停与中断控制寄存器TCON∶
T1∶(TF1、TR1);T0∶(TF0、TR0);
INT1∶(IE1、IT1);INT0∶(IE0、IT0)
TFx:溢出中断请求标志位 (硬件自动复位)(只用于检测)
TRx:定时器起停控制位
IEx:外部中断请求标志位(只用于检测)
ITx:外部中断触发形式设定位 =0 低电平触发 =1 下降沿触发
T2CON:(TF2,EXF2,RCLK,TCLK,EXEN2,TR2,C/T2,CP/RL2)
TF2: 溢出中断请求标志位 (由软件复位)
EXF2: T2外部中断请求标志位
RCLK: 串行口接收时钟标志位
TCLK: 串行口发送时钟标志位
EXEN2:T2外部采样允许标志(1允许;0不允许)
TR2: T2定时器起停控制位
C/T2: 用于选择计数器或定时器模式
CP/RL2:捕获/再装入选择标志位
二、定时和计数方式的用途和例程举例
1、 方式0 定时器/计数器工作例程
13位! 这种方式好象是为了在编程时方便用过48系列单片机的人
例:
MOV TMOD,#84H ;设置定时/计数器1为13位定时方式,由INT1引脚高电平且,TR1置1时启动(可用于监测INT1引脚脉冲宽度)
设置定时/计数器0为13位计数方式,由T0引脚输入计数脉冲,TR0置1时立即启动
MOV TH0,#XXH;设置定时器1的定时参数(高位字节)
MOV TL0,#XXH;(低位字节)
MOV TH1,#XXH;设置计数器0的计数参数(高位字节)
MOV TL1,#XXH;(低位字节)
;以上参数设置指令,必须在中断处理程序的开始重写,即每次中断都要设置一次
SETB TR0;启动计数器0
SETB TR1;