什么是晶振
晶振(晶体震荡器),又称数字电路的“心脏”,是各种电子产品里面必不可少的频率元器件。数字电 路的所有工作都离不开时钟,晶振的好坏、晶振电路设计的好坏,会影响到整个系统的稳定性。
什么是时钟周期
时钟周期也称为振荡周期,定义为时钟频率的倒数。时钟周期是计算机中最基本的、最小的时间单 位。在一个时钟周期内,CPU仅完成一个最基本的动作。时钟周期是一个时间的量。更小的时钟周 期就意味着更高的工作频率
什么是机器周期
机器周期也称为CPU周期。在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶 段(如取指、译码、执行等),每一阶段完成一个基本操作。完成一个基本操作所需要的时间称为 机器周期。一般情况下,一个机器周期由若干个时钟周期组成
当晶振频率是11.0592MHz的时候,等于11059.2KHz = 11059200Hz 机器周期 = 12 x 时钟周期 =12 x (1/时钟频率) 秒 = 12 / 时钟频率 秒 = 12 / 11059200 秒 = 12 000 000 / 11059200 微秒 = 1.085 微秒
在TH0/1和TL0/1寄存器中加1,默认是从0开始数数,最多能数65536下,累计计时71ms
从56320数到65536差不多为10ms
代码示例:
#include "reg52.h" sbit led = P3^6; void main() { int cnt = 0; led = 1; //1. 配置定时器0工作模式位16位计时 TMOD = 0x01; //2. 给初值,定一个10ms出来 TL0=0x00; TH0=0xDC; //3. 开始计时 TR0 = 1; TF0 = 0; while(1){ if(TF0 == 1)//当爆表的时候,硬件会修改bit5(TF0)位上面的数据,改成1 { TF0 = 0;//不用中断,必须软件清零 cnt++; //统计爆表的次数 //重新给初值 TL0=0x00; TH0=0xDC; if(cnt == 100){//爆表100次,经过了1s cnt = 0; //当100次表示1s,重新让cnt从0开始,计算下一次的1s led = !led;//每经过1s,翻转led的状态 } } } }