前言
前几天一直在忙挑战杯的决赛,好几天没能睡上安稳觉,今天下午答辩结束,终于有空能够继续总结笔记写博客了。(在此先感谢下带队的张总与带队老师)。
正文
定时器介绍:51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成,可以取代掉占用cpu资源的delay函数。
如上图示,我的51单片机外接了一个11.0592MHZ的外部晶振,我们算一下:
按照时钟周期的计算公式
1个时钟周期 =1/晶振周期 = 1/Fosc
本机时钟周期=1/(11.05926M) (s)= 1/11.05926/1000000 (s) = 1/1105926 s
所以我的单片机每隔12*(1/1105926)s就加1一次。所以从0到65535所需时间一共
12*(1/1105926)*65535=0.07110964s=71.10964ms
如果需要定义1个10ms,则设初值为x
(65535-x)*机器周期=0.01s
则x=56319。
分类
51单片机定时器0内部的具有两个一字节的寄存器TH0(高位寄存器)和TL0(低位寄存器),最大能存65535。
当单片机每一个机器周期产生一个脉冲时,计数器就加一。当计数达到溢出值65535后,就会产生一个中断信号,系统捕捉到信号,这个时间段就是周期。
定时器由两个寄存器控制,分别是工作模式寄存器TMOD和控制寄存器TCON。
工作模式寄存器TMOD
工作模式寄存器TMOD是用于控制定时器0/1的工作模式(模式1:TH0和TL0两个寄存器都使用)。而设置初始值只需要对TMOD的M0、M1进行设置就行了,其他均设0即可。定时器1的不用配置,定时器0配置如下
GATE=0
C/T=0:0代表用作定时器,1代表用作计数器
TMOD=0x01
M1M0 | 工作模式 | 说明 |
---|---|---|
00 | 模式1 | 当TMOD的D5位置0,D4位置1时,即为定时器T1的模式一,该模式对应的是一个16位的定时器,寄存器TH1和TL1即为T1初值的高8位和低8位,定时时间为:(65536-T1的初值)振荡周期12 |
01 | 模式2 | 当TMOD的D5位置1,D4位置0时,即为定时器T1的模式二,该模式对应的是一个可以自动装载的8位定时器,当定时器计数满了(计数溢出时),会自动把TH1中的内容重新装载到TL1中,那么模式二计数的最长时间即为(257-T1的初值)振 |