首页 > 女表 > 问答 > IW371446怎么计时,51单片机的定时器计时怎样计算

IW371446怎么计时,51单片机的定时器计时怎样计算

来源:整理 时间:2023-06-14 16:23:57 编辑:手表大全 手机版

本文目录一览

1,51单片机的定时器计时怎样计算

51但单片机的定时,要先计算,然后根据要求编写程序,计算会用到公式: t=Tc×(2L-TC)=12/f×(2L-TC) t是定时时间 Tc是机器周期 fs是晶振频率 L是计数器的长度 对于T0,T1有下面三种方式: 方式0:L=13 方式1:L=16 方式2:L=8 对于T2:L=16 然后剩下的就是按照算出的常数编写程序了,就靠你自己了。。。。
给你个软件,
TMOD=0x01; TH0=(65536-50000)/256;//定时50毫秒 TL0=(65536-50000)%256;//定时50毫秒 TR0=1;

51单片机的定时器计时怎样计算

2,61单片机怎么数脉冲计时

61单片机中有两个独立的16位定时/计数器,分别称为TimerA和TimerB,其脉冲输入引脚分别是:IOB2 EXT1 外部中断申请(或计数脉冲)输入,下降沿触发,应设置为输入;IOB3 EXT2 功能与EXT1基本相同。预先需要设置。61单片机的功能,比MCS-51单片机强,设置起来,也比较麻烦。
51单片机可以用外部中断,可以用上升沿或者下降沿触发有效,来了一个脉冲进入一次中断,然后设置一个寄存器,中断一次加1,计数到你想要的值的时候弹出,去做你的其他工作!
pic单片机为1至2机器周期指令,每个机器周期需要4个时钟脉冲。所以,pic18单片机的时钟频率/8 = 输入的最高脉冲频率。这是对外部脉冲进行计数,执行指令所需的最短时间。

61单片机怎么数脉冲计时

3,51单片机怎么实现计时

嘿嘿 还是让俺来帮你解决吧1 关于定时器定时时间的计算问题: 如果使用的是12M晶振计算,指令周期1uS,定时器是加1计数器,即是对内部时钟即指令周期脉冲计数 每当1uS到时,计数器加1。 假设 定时器的初始值=X,则每到1uS 计数器的值就加1 ,则计数器值=X+1+1+...+1 值越来越大,最后达到FFFFH+1 就会产生溢出 结果计数器值回0(FFFFH+1=65536) 可以推出 定时时间=计数的1的个数×1uS=(65536—X )1 uS 结论: 定时时间跟初始值即时间常数X有关。 如果要定时0.5毫秒=500uS 根据定时时间公式 500=(65536—X ) 即X=(65536-500) 一般把高8位送TH0 即 (65536-500)/256把 (65536-500)%256即除上256后的余数 即低8位数送给TL0 每当定时时间到 计数器值都回0 必须重新送时间常数X2每条指令的时间怎么算? 答复: 可以查指令表 每一条指令的执行时间的周期数 都是固定的 如 NOP 为一个机器周期 MOV R6,#200; 为2个机器周期 机器周期=12/晶振频率 如果晶振频率=12MHZ 则机器周期=1 uS 就可以知道 ; 执行NOP指令的执行时间为 1 uS 执行MOV R6,#200指令的执行时间为 2 uS 因此 是可以精确计算出指令的延时时间的 呵呵 就介绍这些吧 满意就 给加分吧
定时器的初值问题:定时器一旦启动,就会在原来的数值上开始加1计数,若在程序开始时我们没有设置TH0和TL0,他们的默认值都是0,假设时钟频率为12MHZ,12个时钟周期为一个机器周期,那么此时机器周期就是1us,计满TH0和TL0就需要2的16次方-1个数,即65535,再来一个脉冲就会溢出,即向CPU申请中断。因此溢出一次需要65536us,大约65.5ms,如果我们要定时50ms的话,那么就需要先给TH0和TL0装初值,在初值的基础上计数50000个后,定时器溢出,此时刚好是50ms中断一次,当需要定时1s时,产生20次的50ms的定时器中断后便认为是1s,这样就能精确控制时间。计算方法:当用定时器的方式1时,设机器周期为Tcy,定时器产生一次中断的时间为t,那么需要计数的个数为N=t/Tcy,装入THX、TLX的数分别为 THX=(65536-N)/256 TLX=(65536-N)%256
#include#define uchar unsigned char #define uint unsigned int uchar count,second; void main(void) { tmod=0x01; th0=(65536-50000)/256; tl0=(65536-50000)%256; tr0=1; et0=1; ea=1; while(1); } void timet0(void) interrupt 1 using 0 { th0=(65536-50000)/256; tl0=(65536-50000)%256; count++; if(count==20) { count=0; second--; if(second==300) second=0; } }
如果使用的是12M晶振计算,指令周期1uS,定时器是加1计数器,即是对内部时钟即指令周期脉冲计数 每当1uS到时,计数器加1。 假设 定时器的初始值=X,则每到1uS 计数器的值就加1 ,则计数器值=X+1+1+...+1 值越来越大,最后达到FFFFH+1 就会产生溢出 结果计数器值回0(FFFFH+1=65536)可以推出 定时时间=计数的1的个数×1uS=(65536—X )1 uS 结论: 定时时间跟初始值即时间常数X有关。 如果要定时0.5毫秒=500uS 根据定时时间公式 500=(65536—X )即X=(65536-500) 一般把高8位送TH0 , 即 (65536-500)/256把 (65536-500)%256即除上256后的余数, 即低8位数送给TL0 ,每当定时时间到 计数器值都回0 必须重新送时间常数X。 51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是52系列的单片机一般不具备自编程能力。

51单片机怎么实现计时


文章TAG:怎么计时51单片机IW371446怎么计时

最近更新

女表排行榜推荐