单片机中用定时器 和计数器来求频率 计算公式是怎么写的???
这是由定时器寄存器的位数决定的。
(1)模式0
定时器寄存器配置为13
位寄存器,该13
位寄存器包含THn
全部8
个位及TLn
的低5
位,TLn
的高3
位不定可将其忽略。2的13次方是8192,所以模式0的模就是8192。
(2)模式1
使用了THn
及TLn
全部16
位,2的16次方是65536,所以模式1的模就是65536。
(3)模式2
8位的,所以模是256。
单片机在不同的工作方式下,计数器的位数不同,因而最大计数值也不同。现在设最大计数值为M,那么在各方式下的M值如下;
方式0:M=2^13=8192
方式1:M=2^16=65536
方式2:M=2^8=256
方式3:定时器0分为两个8为定时器,所以两个M均为256.
因为定时器是做加1计数,并在计满溢出时产生中断,因此初值X可以这样计算:
X=M-计数值
现在举例说明定时处置的计算方法,若80C51主频为6MHz,要求产生1ms的定时,计算初值。
在6MHz的主频下,计数器每加1所需的时间是2uS。若果要产生1ms的计时就需要“加1” 500次。那么500即为计数值,如果要求在方式1下工作,则计数初值X=M-计数值=65536-500=65036=FE0CH
f=n/(n1*f1)=n/f1/n1=(采样时间)/(脉冲个数)
f:频率
n:定时器的数据(程序里面定义好得)
f1:晶振频率(n/f1为 采样时间)
n1:计数器的值(脉冲个数)
也可以用65535-你计数大小,将得到的数转换成16进制数,所得到的高两字节就是thx,低两字节就是tlx。直接用16进制形式赋值即可。如计时50ms,用65535-50000=15535=0x3caf,则thx=0x3c,tlx=0xaf.这样应该容易理解一点!
12M的晶振近似计数器计数1,为1us,比如定时20ms=20000us则定时器初值设定为65535-20000.频率是时间的倒数,反一下就可以了
看你用的是哪种方式定时
请教如何用51单片机的一个定时器计算三路开关量输入的频率
sbit ioIn1 = P1^1;sbit ioIn2 = P1^2;bit gbFinish0 = 0; \/\/接收到开关量0 bit gbFinish1 = 0; \/\/接收到开关量1 bit gbFinish2 = 0; \/\/接收到开关量2 bit gbTimerFinish = 0; \/\/定时器一秒定时结束标志 unsigned int guiCnt0 = 0; \/\/开关量0计数器 unsigned int guiCnt1...
单片机如何检测信号的频率
如果被测信号频率远大于单片机工作频率(机器周期),可以通过外部可编程分频器降到单片机可以接受的频率范围。如果被测信号频率稍低于单片机工作频率,可以采用单片机定时器从计数引脚输入信号,程序设定计数门限时间的方法来测量频率。如果被测信号频率远低于单片机工作频率,那么可以采用信号输入外部中断引脚作...
单片机,当定时器\/计数器工作方式于1下,晶振频率为6M,请计算最短定时时间...
定时器是通过计数溢出来计时的,工作方式1是16位计数方式。晶振频率为6M,那么计数器加1需要一个机器周期2us。机器周期=12\/fosc,fosc为晶振频率。计数初值为1时,定时最短为2us,最长是计2的16次方(即65536),最长时间=2*65536us=131.072ms 。在工作方式1下,定时时间:t=(65536-T0初始值)*...
PLC的定时器和计数器分别具体有什么作用?
1、计数器作用 在数字电子技术中应用的最多的时序逻辑电路。计数器不仅能用于对时钟脉冲计数,还可以用于分频、定时、产生节拍脉冲和脉冲序列以及进行数字运算等。但是并无法显示计算结果,一般都是要通过外接LCD或LED屏才能显示。 2、定时器作用 用定时器来控制开关或工作时间。 扩展资料 计数器应用: 计数器应用包括通...
【PLC】分别用定时器,计数器实现60小时计时,试进行I\/O分配,画出梯形图...
如图所示:计数器有用于工业上的特点有:1、有6位LED数码显示;2、同时有分A和B两路计数输入;3、计数频率可达20KHz;4、还具有带LED报警灯指示;5、同时支持RS485、RS232串行接口,输出、电源、通讯相互之间采用光电隔离互不干扰。
定时器和计数器的区别有哪些?
定时器的初值的计算如下:在定时器模式下,计数器的计数脉冲来自于晶振脉冲的12分频信号,即对机器周期进行计数。若选择12M晶振,则定时器的计数频率为1MHZ。假设定时时间为T,机器周期为T1,即12\/晶振频率。X为定时器初值。则 X=2^n-T\/T1。方式0,n=13,方式1时,n=16,方式2和方式3,n=8...
单片机定时器计数器如何使用
2.方式0为13长度计数(TL0高3位不使用),设计数初值为X,则(8192-X)*1us=2500us,得X=5692D。X=1011000111100B。因为TL0高3位不用,所以10110001-00011100B得TH0=B1H,TL0=1CH 3.由控制寄存器TCON的TR0位来控制定时的启动和停止,TR0=1启动,TR0=0停止 C语言程序如下(编译器Keil C)include...
设MCS-51单片机使用的晶振是12MHz,欲使用定时器\/计数器1实现50ms定时中...
不管使用什么工作方式都是可以完成的,这个取决于你设置的定时\/计数器的初值。下面使用方式一和方式二来分别说明。一、使用方式一:晶振频率为12MHz,机器周期为1us,50ms时间需要计数50000次,故计数器初值为(65536-50000),65536是因为方式一中,定时\/计数器的最大值为65536(2^16),当然写程序时不...
某系统采用51系统单片机,晶振频率为12MHz,使用定时\/计数器0,方式1,要...
你好,对12MHz 1个机器周期 1us 12\/fosc = 1us。定时计算公式是 M = 2^K-X*Fosc\/12 12MHz 所以要求30ms的话,X等于30,然后K为16,得到65536-30000=25536,定时器THx=0x63(十进制99),TLx=0xc0(十进制192)
AT89S51单片机的定时器\/计数器T0工作于定时模式,晶振频率fosc为12MHz...
一个机器周期为1us,2ms=2000us,65536-2000=63536=0xf830 所以TH0 = 0xf8,TL0 = 0x30。