一,定时器怎么定时
定时器的原理: 每经过一个机器周期,就加1。
在哪里加1: 寄存器中加。
思考:
1.1 什么是晶振?
晶振,又称数字电路的"心脏”,是各种电子产品里面必不可少的频率元器件。数字电路的所有工作都离不开时钟,晶振的好坏、晶振电路设计的好坏,会影响到整个系统的稳定性。
1.2 什么是时钟周期?
时钟周期也称为振荡周期,定义为时钟频率的倒数(时钟频率是晶震1s震荡的次数),时钟周期是计算机中最基本的、最小的时同单位,在一个时钟周期内,CPU仅完成一个最基本的动作。时钟频率越高,时钟周期越小,工作效率更高。
1.3 什么是机器周期?
51单片机有着固定的机器周期,一个机器周期包含6个状态,而一个状态的完成需要2个时钟周期。因此,一个机器周期等于12个时钟周期。
1.4 加1经过了多少时间?
1MHz = 10^3KHZ = 10^6Hz
当晶振频率是11059200Hz时候
时钟周期等于1/11059200秒
机器周期等于12/11059200秒=1.085微秒
二,TCON为定时器T0、T1的控制寄存器,同时也锁存T0、T1溢出中断源和外部请求中断源等,TCON格式如下:
TF1: 定时器T1溢出标志。T1被允许计数以后,从初值开始加1计数。当最高位产生溢出时由硬件置“1”TF1,向CPU请求中断,一直保持到CPU响应中断时,才由硬件清“0”TF1 (TF1也可由程序查询清“0”)。
TR1: 定时器T1的运行控制位。该位由软件置位和清零。当GATE (TMOD.7) =0,TR1=1时就允许T1开始计数,TR1=0时禁止T1计数。当GATE (TMOD.7) =1,TR1=1且INT1输入高电平时,才允许T1计数。
TF0:定时器T0溢出中断标志。T0被允许计数以后,从初值开始加1计数,当最高位产生溢出时,由硬件置“1”TF0,向CPU请求中断,一直保持CPU响应该中断时,才由硬件清“0”TF0( TF0也可由程序查询清“0”)。
TR0: 定时器T0的运行控制位。该位由软件置位和清零。当GATE (TMOD.7) =0,TR0=1时就允许T0开始计数,TR0=0时禁止T1计数。当GATE (TMOD.7) =1,TR0=1且INT0输入高电平时,才允许T0计数
IE1: 外部中断1请求源 (INTI/P3.3) 标志。IE1=1,外部中断向CPU请求中断,当CPU响应该中断时由硬件清“0”IE1。
IE0:外部中断0请求源 (INTO/P3.2) 标志。IE0=1,外部中断0向CPU请求中断,当CPU响应外IE0:部中断时,由硬件清“0”IE0(边沿触发方式)。
三,加1经过了多少时间
当晶振频率是11059200Hz时候
时钟周期等于1/11059200秒
机器周期等于12/11059200秒=1.085微秒
1)在哪里加1,最大计数时间,也就是爆表了能计算多长?
在TH和TL寄存器中加1,默认是从0开始数数,最多能数2的16次方=65536下,等于71ms
2)如何算出10ms定时器的初值?
就不让他从0开始数数,10ms需要数9216下,你让他从65526-9126=56320 (16进制表示为0xDC00) 开始数数
这样TL0=0x00;TH0=0xDC(16位定时器TL0 和 TH0 是分别低位和高位的 8 位寄存器)