① 51单片机工作在定时计算器方式3时,最大计算值是多少
工作方式3:8位定时器/计数器工作模式,最多可计数2的8次方次,即:256次,计数值0~255;
② 单片机如何计算初值
一般最直接的想法就是,指定一个计时值x,然后从0开始累加计数,计数到x表示时间到,可以处理事务了。这种处理方法,需要一个数值比较器,每计一次数,就比较一下。这对单片机或者说硬件电路来讲,一个8位计数器就需要包含一个8位数值比较器,实在不够简便。
第二种想法,是指定一个计时值x,然后进行减计数,减计数到0表示时间到。这也要一个比较器,只不过是个0值比较器,硬件电路上比上一种要简单一些,但减计数器还是不常用。我们知道累加器才是最简便的硬件电路之一。
上面两种方法,都是软件实现的定时器的合理想法。那么硬件电路实现定时最简便的方法是什么呢?
那就是用累加器来实现。比如一个8位的累加器,可以从0累加计数,计数到256时溢出,产生溢出信号,就可以触发事务处理了。
要是我们只需要计数10次就够了,则可以将计数初值定义为246。那样,计数10次后就可以达到256,产生溢出信号了。
所以就有了(2^n-x)。n是计数器的位数;2^n就是最大计数值;x是计数初值。整个这段,表示我们需要的计时次数。
计数器每次计数的时间间隔是t,及计数周期。那么总的计时时长m=计数周期×计数次数=t×(2^n-x),也就是m=(2^n-x)×t。
计数位数n由选用的单片机确定,通常等于8,12,16或32等等,即8位、12位等计数器。计数周期t由定时器基础时钟确定,可通过设置定时器时钟源和选择时钟分频数确定。这两项灵活性不大,一般在程序初始化时就应设定。
初值x可以在应用时,根据定时需求进行修改确定。
协调好n,t和x三者的设定,就可以完美实现定时功能了。
③ 在单片机里1到65535的数值定义
在单片机里1到65535的数值定义单片机一般为8位,就是1个字节,一个字节最大为十进制的255,十六进制的FF;那么16位的单片机就是2个字节长度,255*255=65535,这就是16位单片机钟双字节寄存器的长度。
=65.535ms,计数器初值设置50ms,65536-50000=15536=3CB0H,,使用一个计数器计数20(10个=500ms取反,常用1s闪烁使用)个50ms=1s。
主要寄存器:
(1)累加器A累加器A是微处理器中使用最频繁的寄存器。在算术和逻辑运算时它有双功能:运算前,用于保存一个操作数;运算后,用于保存所得的和、差或逻辑运算结果。
(2)数据寄存器DR数据寄存器通过数据总线向存储器和输入/输出设备送(写)或取(读)数据的暂存单元。它可以保存一条正在译码的指令,也可以保存正在送往存储器中存储的一个数据字节等等。
④ 单片机定时器/计数器四种工作方式区别
方式0:13位定时计数方式,最大计数值为2^13=8192,定时8192个机器周期。此方式已经不再用了,是为了和以前的单片机兼容,学初者不用掌握。
方式1:16位定时计数方式,最大计数值为2^16=65536,定时65536个机器周期。此方式可实现最大的定时时间和最大计数次数。是最常用方式之一。
方式2:8位自动重装计数方式,最大计数值为2^8=256,定时256个机器周期。此方式工作时定时或计数到了不用重装初值,精度较高。另外在串口通讯时常用此方式。是最常用方式之一。
方式3:特殊工作方式。将定时器0分成两个8位功能不全的定时计数器,要占用T1部分功能。也不常用。
⑤ 51单片机的方式0下,最大计数值为多少个机器周期方式1呢
晶振频率为6MHZ,则振荡周期Tosc=1/6 uS。
工作方式0:此时为13位定时/计数器,则最大计数值为2的13次方(即8192)
工作方式1:为16位定时/计数器,则最大计数值为2的16次方(即65536)
工作方式2:为自动重装初值的8位定时器/计数器,则最大计数值为2的8次方(即256)
由于定时器/计数器每加1占用的时间为1个机器周期
因此各自最大定时时间如下:
工作方式0:最大定时时间 TM = 8192*MC
工作方式1:最大定时时间 TM = 65536*MC
工作方式2:最大定时时间 TM = 256*MC
其中MC为内部机器脉冲周期(即机器周期)
晶振为6MHz,如果按常规标准的12分频的51系列单片机算的话(MC = 12*Tosc = 2微秒)。
则各自最大定时时间如下:
工作方式0:最大定时时间 TM = 8192*MC =16384 uS
工作方式1:最大定时时间 TM = 65536*MC =131072 uS
工作方式2:最大定时时间 TM = 256*MC = 512 uS
其中MC为内部机器脉冲周期(即机器周期)。