1硬件连接
定时器是单片机内部的特殊功能模块。
在控制系统中,常常要求有一些实时时钟以实现定时或者延时控制,如定时中断、定时检测、定时扫描等等,也往往要求有计数器,对外部事件进行计数。
要实现定时或者延时功能,一般有三种方法:软件定时,不可编程硬件定时,可编程硬件定时。
软件定时——让软件循环执行一段程序,程序本身并无执行目的,而是通过执行程序延时固定的时间,也就是以前的程序中经常使用的延时程序。这种方法降低了cpu的利用率。
不可编程硬件定时——如外部芯片555 时基电路,通过外部阻容,达到一定的延时功能,改变阻容大小可以改变延时长度。这种定时器取决于硬件,设定好以后不能通过软件更改。
可编程定时器——这种定时器的定时值可以通过软件确定和修改,使用灵活便捷。
本节所讲的定时器为第三种,可编程定时器,51单片机中T0/T1为2个相同的16位定时/计数器。
定时/计数器的结构:
TCON控制寄存器:
TCON用于控制外部中断和定时/计数器启动和中断,低4位用于控制外部中断,高4位用于控制定时/计数器T0和T1。
TCON.0~TCON.3(IT0、IE0、IT1、IE1)均为外部中断相关位,详见外部中断。
TR0(TCON.4):定时/计数器T0运行控制位。TR0=1时,T0开始工作;TR0=0时,T0停止工作。TR0由软件置1或清0。所以,用软件可控制定时/计数器的启动与停止。
TF0(TCON.5):定时/计数器T0溢出中断请求标志位。TF0=1时,申请进去定时器中断。T0计数溢出时由硬件自动置TF0为1。CPU响应中断后TF0由硬件自动清0。T0工作时,CPU可随时查询TF0的状态。所以,TF0可用作查询测试的标志。TF0也可以用软件置1或清0,同硬件置1或清0的效果一样。
TR1(TCON.6):定时/计数器T1运行控制位,其功能与TR0类同。
TF1(TCON.7):定时/计数器T1溢出中断请求标志位,其功能与TF0类同。
TMOD模式控制寄存器:
图 3 TMOD模式控制寄存器格式
TMOD用于设置定时/计数器的工