1. 单片机定时器原理
传统51单片机定时器是16位的定时器,系统时钟给它提供时钟源,每一个脉冲使定时器加一,直到溢出会产生定时器中断。
2. 51单片机定时计数器原理
其实就是计数器原理,所谓的定时器就是用计数器来实现的一个功能而已。
计数器的原理,很简单,就是给个方波信号,一个方波,就加1即可,最简单的都能用数字电子技术里的或门,与门,非门来实现的。专门做计数的芯片也是一大堆,这里我们就不讨论怎么用或门,非门,与门,做出一个计数器了吧。
那么怎么用计数器实现定时器的功能呢?其实很简单,只要你给计数器的方波是规律的就可以了啊,比如做一个一秒钟输出一个方波的电路,然后把这个方波给计数器,即可,那么这个计数器就是一个定时器了,假设计数器一开始是0,一个方波以后,计数器就变成了1,对吧,但是计数器的方波来源是稳定的,一秒钟就给一个方波,那么这个就是个1s的定时器了吧,我们可以通过计数器的数值,来确定时间了吧,这样就可以完成定时的功能了吧。
单片机也是通过这种手段来形成的,你可能就要问了,那我单片机不是没有方波发射的装置吗?对不起,单片机芯片内部自己内置了,所以你不需要自己做这个方波发生装置,那么单片机是用什么来形成方波的呢?答案是你外置的晶振,单片机是通过你外部的那个晶振来实现的,而且晶振也是你单片机能跑起来的关键,他是单片机的CPU等内部部件工作的时间标准,比如晶振12MHZ,就是这个晶振1秒钟,能有12M个方波形成懂吧,所以这个频率是很高的了,但是单片机一般不在这么高的频率上工作,所以CPU的时间单位,不是晶振的频率,一般是要进行降频处理的,也叫分频,像51单片机,很多都是12分频的,即外部晶振是12MHZ,内部CPU工作的频率只有1MHZ,内部的计数器一般也不能在那么高的频率下工作,所以也是分频的,你最需要了解的是计数器或定时器里的数值加1,对应的时间是多少,一般都是1ms这样的整数倍。
然后计数器呢?计数器就是用晶振分频后的方波来工作的,晶振工作稳定,频率稳定,那么定时器就稳定,而如果你不用定时器的时候呢?那么计数器的计数端,就和来自晶振的方波,切断,切换成对应的IO端口的线路即可,而外部的端口,他们的波形和频率都不确定,所以就不是定时器了,如果你在外部,加个稳定的方波装置,计数器也就是定时器了,只不过这个需要自己去实现,岂不是麻烦?所以一般都用单片机内部自带的,方便而已。
3. 51单片机定时器的工作原理
单片机内有两个16位的寄存器,用于定时计数,一个机器周期计数一次,直到计数器溢出再执行中断代码。
4. 单片机计时器原理
单片机用一个振荡器(比如晶体振荡器)作为时间基准,和石英手表里面的振荡器差不多,振荡器每震荡一次的时间间隔是一样的,可以通过振荡器的参数算出来的,每次振荡会产生一个脉冲信号给单片机,单片机只要数数字就能计算时间了。
5. 用51单片机显示交通灯倒计时原理是什么
就是实时显示剩余数时间,并且以秒为单位,每秒刷新一次显示,其原理是通过单片机端口驱动LED字段显示对应数字。
6. 单片机定时器原理及使用
这里通俗的说下C51单片机的定时器的工作原理,C51单片机的定时器是由计数器构成的,所计量的时间是通过计算固定周期的脉冲个数的累计获得的,通过设置定时器的工作模式,可以由16位(高、低两个8位)寄存器模式或其他位数的寄存器模式来计数,以16位计数模式来讨论,那就是无论那种工作模式只有当计数用的寄存器的各个位全部置1,也就是满值后下一个计数脉冲进入时使寄存器产生溢出,而这个溢出才会使计数产生中断从而完成一次定时控制,因此,如果我们想产生某个时长的定时,那么我需要将这个时长根据单片机运行的时钟频率、周期等等相关因素换算成需要计数的个数,进而在这个满值的16位寄存器中扣除需要计数的个数,启动运行后当计数值补充满了寄存器就完成了一次计时,而一个16位寄存器满值为2的16次方=65536,假如一个计数脉冲的周期为1us,那么满值后就会耗时65536us,假如我们需要计时36us,那么我们只需要为寄存器赋值65500就可以了,这里需要注意的是,因为C51单片机的寄存器是8位的,我们需要将这个65500拆分出高8位数据装入THx中计算方法为THx=65500/256,再计算出低8位数据装入TLx中,THx=65500%256。
7. 51单片机定时器原理
很简单,就是系统时钟同步触发定时器计数(向上或向下),定时器与比较寄存器内的预设值比较,当达到预设值或者向下计数归零后再次载入预设值到比较寄存器里面,定时器启动和停止都受到TON标志位计算,对其操作即可。
8. 单片机定时和计数原理的循环
单片机的定时器是用内部时钟信号,计脉冲的个数,
计数器是计外面的脉冲个数,
定时器用的脉冲频率是晶振频率的1/12.当计数个数达到一定值后,产生溢出,产生一个中断信号.
而计数器用的脉冲外面的脉冲,从io输入,当计数个数达到一定值后,产生溢出,产生一个中断信号.
两者工作原理差不多.都是计数
,用的信号来源不同.
9. 用51单片机显示交通灯倒计时原理是什么
void main()
{
P3 = 0;
P1 = 0;
P2 = 0xff;
initTimer();
TR0=1;
ET0=1;
EA=1;
while(1)
{
switch(state)
{
// 状态跳转
case 0:
if(ct == 0)
{
P3=0;P1=0;P2=0xff;
ct = 10;
state = 1;
}
break;
case 1:
if(ct == 0)
{
P3=0;P1=0;P2=0xff;
ct = 2;
state = 2;
}
break;
case 2:
if(ct == 0)
{
P3=0;P1=0;P2=0xff;
ct = 2;
state = 3;
}
break;
case 3:
if(ct == 0)
{
P3=0;P1=0;P2=0xff;
ct = 10;
state = 4;
}
break;
case 4:
if(ct == 0)
{
P3=0;P1=0;P2=0xff;
ct = 2;
state = 5;
}
break;
case 5:
if(ct == 0)
{
P3=0;P1=0;P2=0xff;
ct = 2;
state = 0;
}
break;
default:break;
}
// 执行
switch(state)
{
case 0:
//东西绿灯,南北红灯,倒计时30秒;
E_G = 1;W_G = 1;S_R = 1;N_R = 1;
break;
case 1:
//数码管倒计时10秒;
E_G = 1;W_G = 1;S_R = 1;N_R = 1;
display(ct,0);
display(ct,2);
display(ct+2,1);
display(ct+2,3);
break;
case 2:
//东西黄灯,倒计时2秒;
E_Y = 1;W_Y = 1;S_R = 1;N_R = 1;
display(ct,1);
display(ct,3);
break;
case 3:
//南北绿灯,东西红灯,倒计时30秒;
E_R = 1;W_R = 1;S_G = 1;N_G = 1;
break;
case 4:
//数码管倒计时10秒;
E_R = 1;W_R = 1;S_G = 1;N_G = 1;
display(ct,1);
display(ct,3);
display(ct+2,0);
display(ct+2,2);
break;
case 5:
//南北黄灯,倒计时2秒;
E_R = 1;W_R = 1;S_Y = 1;N_Y = 1;
display(ct,0);
display(ct,2);
break;
default:break;
}
}
}
10. 单片机倒计时工作原理
单片机倒计时工作原理。在程序中设置一个时间然后不断的减少时间,时间减少为0时就是倒计时时间到了。