51 机器周期 时钟周期 晶振频率 定时器初值计算 [李园7舍_404]

 背景:51单片机引出的概念。

 

1 机器周期

        在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期(如单片机中“计数器”完成加1这个过程也是一个机器周期)。一般情况下,一个机器周期由若干个S周期(时钟周期)组成。通常用内存中读取一个指令字的最短时间来规定CPU周期,(也就是 计算机通过内部或外部总线进行一次信息传输从而完成一个或几个微操作所需要的时间)),它一般由12个时钟周期组成。

 

2 时钟周期

        时钟周期=1秒/晶振频率,晶振频率的值即为时钟频率的值。因此单片机的机器周期=12秒/晶振频率。

 

3 晶振频率

        单片机开发板、学习板成型之时相应的晶振频率也已经被确定了。51单片机常用的晶振频率有11.059 2MHz、12MHz或其它值,^-^。

 

4 定时器初值计算

        定时器一旦被启动,它就会在原来初值的基础之上加1,当计满时重新归0。51单片机的定时器寄存器为16位,假设此51单片机的晶振频率为12MHZ,则根据机器周期概念及机器周期、时钟周期、晶振频率关系可知机器周期(即计数一次的时间)= 12 * (1 / 12MHZ) = 1us。这就表明,此51单片机的定时寄存器实现加1操作这个过程将要花1us的时间[ “计数这个硬件结构”达到加1的结果需要12个脉冲(或高电平) 么 ],如果此16位寄存器从0开始计数,则计到此寄存器下次为0时需要计2的16次方(65536)个数(计满只需要65535个数),所以定时器一次最多可以计时65536us。

        如果现在需要定时器每次定时时间T少于65536us,则需要给定时器寄存器设一个初值N。根据计m个数就对应m us可得 N = (65536 - T)。得到的N值就是需要装入定时器寄存器的值。

        咱们的51单片机定时器寄存器为16位,分高8位THn和低8位TLn(n=0, 1, 2).....,一般咱还得以8位为单位进行装值。将高8位THn装入N / 256(取模),将低8位TLn装入 N % 256即可,这两种运算得到的结果都是10进制的,将得到的值换算为二进制(或16)再装入高、低8位。得到定时器初值计算公式:

THn = (65536 - T) / 256

TLn = (65536 - T) % 256

其中THn,TLn表示响应定时器寄存器的高低8位。T表示需要被定时的微秒数, ‘/’表示取模运算, ‘%’表示取余运算


为什么对高8位取模对低8位取余就可以呢?

 

图1. N 取模 取余原理图

        图中将8个二进制位看成一个单位,低8位表示数的范围[0, 255],高8位表示数的范围[0, 255 * 256],得到高8位是低8位的256倍。不防将此16位表示的十进制数看成256进制数。呵呵,然后对数的求模值放在256位(此位的值等于实际值(8位二进制换算得来)乘以权值256),对数的求余放在个位(此位的值等于实际值(8位二进制换算得来)乘以权值1),然后将得来的数求和就是此数了。就相当于一个十进制数K一样,K取10 的模得到十位的值,K取10的余得到个位的值。没注意就想到了这点,忽悠出来一个256进制数的求模求余算法。

        我猜一下:我觉得关于十进制数的算法应该是符合任意一种进制数的算法的,小学的数学只是以十进制为载体,思想可用于任意进制数,然后数也可以是任意进制的,看此进制数在现实生活中的用途来决定其出现的频率了    ,在记录知识点的同时发表了点不成文的感概,属个人情感^-^


Note Over.

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值