万福君、潘松峰
启动计数器1,并在INT1引脚高电平时启动定时(可利用外部中断读取计时值)
P174图6-3定时器/计数器方式0工作逻辑图
2、方式1 定时器/计数器工作例程
16位定时器/计数器方式:定时时间长,可用于高频计数,并可方便的用于测量信号的频率。
例:
MOV TMOD,#95H ;设置定时/计数器1为16位定时方式,由INT1引脚高电平且
;TR1置1时启动
;设置定时/计数器0为16位计数方式,由T0引脚输入计数脉冲
;TR0置1时立即启动
MOV TH0,#XXH;设置定时器1的定时参数(高位字节)
MOV TL0,#XXH;(低位字节)
MOV TH1,#XXH;设置计数器0的计数参数(高位字节)
MOV TL1,#XXH;(低位字节)
;以上参数设置指令,必须在中断处理程序的开始重写,即每
;次中断都要设置一次
SETB TR0;启动计数器0
SETB TR1;启动计数器1,并在INT1引脚高电平时启动
3、 方式2 定时器/计数器工作例程
自动再装入的8位定时器/计数器:
定时器/计数器的高8位用于重装值(计数初值)寄存器,低8位用于做运行定时器/计数器
这种方式不丢失计数值。用于反复定时(如用于系统时钟定时器和串行口的波特率发生器且波特率发生器只能用方式2工作);另外还可以用于反复等量计数(装箱流水线)
例:
MOV TMOD,#0A6H ;设置定时/计数器1为8位自动重装定时方式,由INT1引脚高
;电平且TR1置1时启动
;设置定时/计数器0为8位自动重装计数方式,由T0引脚输入计
;数脉冲,TR0置1时立即启动
MOV TH0,#XXH;设置计数器1的计数参数(高位字节:重装用)
MOV TL0,#XXH;(低位字节:定时用)
MOV TH1,#XXH;设置定时器0的定时参数(高位字节:重装用)
MOV TL1,#XXH;(低位字节:)
;以上参数设置指令,不用在中断处理程序的开始重写,可自
;动重装,除非要改写运行参数
SETB TR0;启动计数器0
SETB TR1;启动定时器1,并在INT1引脚高电平时启动
4、 方式3 定时器/计数器工作例程
将T0分成两个独立的计数器,TL0组成完整的8位计数器;TH0组成只能计时的8位定时器。这种方式不常用,往往是在既有串行口的波特率发生器,又需要两个8位定时器的场合(这是在51系列初期解决定时器比较少的问题时不得已的方法,在52单片机中增加了T2)
T0具有以上4种工作方式,T1只具有前面3种工作方式
例:
MOV TMOD,#27H ;设置
定时/计数器1为8位自动重装定时方式(可用于波特率
;发生器,不允许中断),
;设置定时/计数器0为两个8位计数方式,由T0引脚输入TL0计
;数脉冲,TR0置1时启动TL0定时/计数器,TR1置1时启动TH0
;定时器,
MOV TH0,#XXH;设置定时器TH0的计数参数