定时器原理 定时器是单片机内部的特殊功能模块。 在控制系统中,常常要求有一些实时时钟以实现定时或者延时控制,如定时中断、定时检测、定时扫描等等,也往往要求有计数器,对外部事件进行计数。 要实现定时或者延时功能,一般有三种方法:软件定时,不可编程硬件定时,可编程硬件定时。 软件定时——让软件循环执行一段程序,程序本身并无执行目的,而是通过执行程序延时固定的时间,也就是以前的程序中经常使用的延时程序。这种方法降低了cpu 的利用率。 不可编程硬件定时——如外部芯片555 时基电路,通过外部阻容,达到一定的延时功能,改变阻容大小可以改变延时长度。这种定时器取决于硬件,设定好以后不能通过软件更改。 可编程定时器——这种定时器的定时值可以通过软件确定和修改,使用灵活。 T0/T1 2 个相同的16 位定时/计数器 TR. 定时计数器的启动控制开关。 TR=1:计数器开始计数; TR=0:计数器停止计数。 C/T. 计数器输入脉冲选择开关,决定着计数器的“定时”或“计数”的两种工作方式。 C/T=0:计数器接收内部时钟信号fosc--- 定时方式;C/T=1:计数器接收引脚上的外部 信号---计数方式。 F. 计数器溢出标志。 TF=1 :定时或计数时间到,可以采用查询或中断方式处理; 初值寄存器:预装用来决定计数器产生溢出周期的参数, 此参数决定着定时或计数的周期。通常要预算并送入初值寄存器中。 定时/计数器的4 种工作模式,由特殊功能寄存器TMOD 决定 模式0:13 位定时/计数器 在某一个初值的基础上加1 计数,当计数器计满为全“1”,再来一个计数脉冲时,就产生一个“溢出中断信号”TF1=1。 由于低8 位计数器中的高三位没有参与工作,故填装初值时应“避开”此三位。 模式1:16 位定时/计数器 类同于模式0。由于两个计数器为完整的8 位,故将计算好的16 位初值可直接填装到TH、TL 中。 模式2:8 位自动重装值模式 TL 做计数器,TH 做初值寄存器,工作前TL1,TH1 分别预置相同的初值。 TL1 计数时, 产生溢出的同时, 将TH1 中的初值自动重装TL1。TL1 继续计数。 8 位计数器的模式,定时或计数的范围远远小于模式0 和模式1; 具备初值“硬件自动重装”功能,非常适合进行重复性定时的场合,如产生连续方波信号等。 编成中省去了软件重装初值的麻烦; 式3:组合扩展模式(只适用于T0) GATE 选通门: GATE=0 时,只要TR=1,计数器就开始工作; GATE=1 时,只有INT=TR=“1”时,计数器工作(用来测量INT 脚高电平脉冲的宽度)。 C/T 计数、定时方式选择位: C/T=1 时,计数方式。 C/T=0 时:定时方式。 M1 、M0 模式选择:确定四种工作模式. TF0 定时器T0 的溢出标志: 计数器溢出时硬件自动置位,即TR=1。进入中断后再由硬件自动清除(TF0=0); TR0 计数器T0 的控制位: 由软件设定: TR0=1 计数器开始工作; TR0=0 计数器停止计数。 TF1、TR1 同上。 IE1,IE0 外部中断INT1,INT0 的请求标志: 当单片机检测到INT 引脚上有下降沿时,IE=1 申请中断.进入中断服务程序时,硬件自动清除IE 标志. IT1,IT0 外中断触发类型控制: IT=1 时,外中断信号的下降沿触发IE 标志; IT=0 时,外中断信号的低电平触发IE 标志。 主编:高悦 实习编辑:樊兴旺 文章来源:西邮通院科协微信组 |
|