51 单片机编程常常要求对时刻进行某种操作,比方数码管的动态扫描显现、延时等等……关于守时或延时,一般有三种办法完成:
①、软件守时:如常用的延时程序 Delay(),在守时过程中,CPU 循环测验延时变量是否满意条件,此刻 CPU 运用率低下;
②、硬件守时:如外部芯片555 时基电路,经过外部阻容,到达必定的延时功用,改动阻容巨细能够改动延时长度,这种守时器取决于硬件,设定好今后不能经过软件更改;
③、守时器:运用单片机内部守时器,完成对时刻的操作。
1、守时器功用:
(1)、守时:发生一个规范的时刻距离:如 20 ms,100 ms 等,单片机运用这种方法能够发生一个契合某一要求的脉冲方波;
(2)、计数:对外部的事情(脉冲)进行核算,很明显外部事情的发生是随机的,单片机不可能预知外部事情何时发生,但能够进行核算,当到达所要求的数值时,单片机进行相应的操作。
2、四种作业形式:
形式 0:13 位计数器形式
在某一个初值的基础上加 1 计数,当计数器计满为全“1”,再来一个计数脉冲时,就发生一个“溢出中止信号”TF1=1。
注:因为低 8 位计数器中的高三位没有参加作业,故填装初值时应“避开”此三位。
形式 1:16 位守时/计数模式
类同于形式 0,因为两个计数器为完好的 8 位,故将核算好的 16 位初值可直接填装到 TH、TL 中。
形式 2:8 位主动重装初值形式
TL 做计数器,TH 做初值寄存器,作业前 TL1,TH1 别离预置相同的初值,TL1 计数时,发生溢出的一起,将 TH1 中的初值主动重装 TL1,TL1 持续计数。
形式 3:组合扩展形式(仅适用于 T0)
将 T0 和 T1 从头进行“拆分、组合”,将 T0 变为由 TH0,TL0 组成的两个独立的 8 位守时/计数器。
弥补:四种形式比较:
3、守时器参数:
(1)、守时器的个数:网上见到的 51 单片机教程都说守时器有 2 个:守时器 0 和守时器 1,实际上有的单片机有 3 个守时器,如博主买的开发板上的单片机:STC89C54RD+,因而,编程时留意看好有几个守时器……
(2)、TL,TH:初值寄存器,别离是低 8 位,高 8 位,后边加上一个数字 0 或 1,代表守时器 0 或守时器 1
(3)、TMOD:形式操控寄存器,归于 SFR 特别功用寄存器,地址:89H,决议守时/计数器的四种作业形式,8 位
GATE 选通门:GATE=0 时,只需 TR=1,计数器就开端作业
GATE=1 时,只要 INT=TR=1 时,计数器作业(用来丈量 INT 脚高电平脉冲的宽度)
C/T:计数器输入脉冲挑选开关,决议着计数器的“守时”或“计数”的两种作业方法
C/T=0:守时方法:计数器接纳内部时钟信号 fosc
C/T=1:计数方法:计数器接纳引脚上的外部信号
M1、M0 形式挑选:确认 4 种作业形式
(4)、TCON:操控寄存器,归于 SFR 特别功用寄存器,地址:88H,8 位
TF:守时器溢出标志,计数器溢出时硬件主动置位,即 TF=1,进入中止后再由硬件主动铲除(TF=0)
TR:计数器的操控位
TR=1:计数器开端作业
TR=0:计数器中止计数
IE:外部中止 INT 的恳求标志
当单片机检测到 INT 引脚上有下降沿时,IE=1 请求中止,进入中止服务程序时,硬件主动铲除 IE 标志
IT:外中止触发类型操控
IT=1 时,外中止信号的下降沿触发 IE 标志
IT=0 时,外中止信号的低电平触发 IE 标志
(5)、作为“守时器”运用时,“守时”与“初值”的联系如下:
T = ( M – TC ) ×t
其间:T:守时时刻
M:计数器的模
TC:计数初值
t:计数器计数脉冲的周期(t = fosc / 12)
注:详细核算实例,拜见前面“四种形式比较”中的第二张图……