一、定时器有几种类型,各有什么特点

定时器有五种,其特点分别为:

1、接通延时型定时器:接通延时型定时器是各种PLC中最常见最基本的定时器,这种定时器在 SIEMENS的PLC中,称为SD型定时器。

定时器软件?定时器有几种类型,各有什么特点

2、断开延时型定时器:这种定时器是当输入条件00000为ON时无延时作用,只有在输入条件00000为OFF时产生延时作用。在SIEMENS的PLC中,称为SF型定时器。

3、保持型接通延时定时器:这种定时器是当输入条件00000为ON后,即产生锁存功能,即使输入条件00000又变为OFF,仍视输入条件为ON,当定时器的当前值等于设定值时,定时器动作,这种定时器在SIEMENS的PLC中,称为SS型定时器。

4、脉冲型定时器:这种定时器是当输入条件00000为ON后,定时器即时动作,但经过定时器所设定的时间后,即使输入条件00000仍为ON,定时器却变为OFF状态。

即这种定时器ON状态的维持时间是由设定值决定的。如果00000为ON的时续时间小于定时器的设定值,定时器的ON状态维持时间为输入条件00000为ON的持续时间。这种定时器在SIEMENS的PLC中,称为SP型定时器。

5、扩张型脉冲定时器:这种定时器与脉冲型定时器的区别是,只要输入条件00000出现了ON状态,不管其持续时间多长,均可使定时器为ON的维持的时间与定时器的设定值一致。这种定时器在SIEMENS的PLC中,称为SE型定时器。

定时器软件?定时器有几种类型,各有什么特点

扩展资料:

定时器的应用实例:

1、电热水器

许多家庭为了方便使用热水,让热水器24小时通电,其中很大部分电能消耗在了白天和夜间的反复加热上面。1000瓦功率的用电器,1小时消耗的电量是1度,那么1500瓦通电热水器每三小时热水器自动加热30分钟,每天加热时间是240分钟,每天耗电6度。

使用自动开关插座后,可以设定在早上起床前半个小时开始加热,起床后就能用上热水;设定下班回家半个小时前开始加热,回家就能洗个热水澡。

如果是三口之家,晚上热水器还需要工作一个半小时加热,一天下来热水器工作时间缩短为两个小时,节约3度电,同时还延长了热水器的使用寿命,集节能、方便、安全、实用于一体。

2、饮水机

很多家庭或者办公场所饮水机24小时通电,300瓦的饮水机每20分钟加热5分钟,每天加热24*60/20*5= 360分钟=6小时,每天耗电 0.3*6=1.8度,一年耗电648度。使用定时器后,设定在起床前和下班回家前15分钟通电,到家就能喝上,用上热水。

晚上在家的6点到12点可以让机器通电,每天加热100分钟,每天耗电0.3*1.7=0.51度,每月耗电15.3度,一年耗电183.6度。同时,饮用水加热6小时以上会产生亚硝酸盐,可致癌、产生血管等疾病,定时开关分时加热是最好的解决方案。

参考资料来源:百度百科-时间定时器

参考资料来源:百度百科-定时器(用于定时的机械或电子装置)

二、利用单片机定时器制作数字时钟

下面是时间程序,直接下来用就行了.

/*******************************************************************************

********************************************************************************

*描述:*

*简易电子时钟,LED数码管显示*

* K1---时调整*

* K2---分调整*

**

*上电时初始化显示: 12-00-00*

**

***********************

************

************

***************************

************

************

***********************

**

**

*******************************************************************************/

#include<reg51.h>

#include<intrins.h>

unsigned char data dis_digit;

unsigned char key_s, key_v;

unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0,// 0, 1, 2, 3

0x99,0x92,0x82,0xf8,0x80,0x90, 0xff};// 4, 5, 6, 7, 8, 9, off

unsigned char data dis_buf[8];

unsigned char data dis_index;

unsigned char hour,min,sec;

unsigned char sec100;

sbit K1= P3^2;

sbit K2= P3^3;

bit scan_key();

void proc_key();

void inc_sec();

void inc_min();

void inc_hour();

void display();

void delayms(unsigned char ms);

void main(void)

{

P0= 0xff;

P2= 0xff;

TMOD= 0x11;//定时器0, 1工作模式1, 16位定时方式

TH1= 0xdc;

TL1= 0;

TH0= 0xFC;

TL0= 0x17;

hour= 12;

min= 00;

sec= 00;

sec100= 0;

dis_buf[0]= dis_code[hour/ 10];//时十位

dis_buf[1]= dis_code[hour% 10];//时个位

dis_buf[3]= dis_code[min/ 10];//分十位

dis_buf[4]= dis_code[min% 10];//分个位

dis_buf[6]= dis_code[sec/ 10];//秒十位

dis_buf[7]= dis_code[sec% 10];//秒个位

dis_buf[2]= 0xbf;//显示"-"

dis_buf[5]= 0xbf;//显示"-"

dis_digit= 0xfe;

dis_index= 0;

TCON= 0x01;

IE= 0x8a;//使能timer0,1中断

TR0= 1;

TR1= 1;

key_v= 0x03;

while(1)

{

if(scan_key())

{

delayms(10);

if(scan_key())

{

key_v= key_s;

proc_key();

}

}

}

}

bit scan_key()

{

key_s= 0x00;

key_s|= K2;

key_s<<= 1;

key_s|= K1;

return(key_s ^ key_v);

}

void proc_key()

{

EA= 0;

if((key_v& 0x01)== 0)// K1

{

inc_hour();

}

else if((key_v& 0x02)== 0)// K2

{

min++;

if(min> 59)

{

min= 0;

}

dis_buf[3]= dis_code[min/ 10];//分十位

dis_buf[4]= dis_code[min% 10];//分个位

}

EA= 1;

}

void timer0() interrupt 1

//定时器0中断服务程序,用于数码管的动态扫描

// dis_index---显示索引,用于标识当前显示的数码管和缓冲区的偏移量

// dis_digit---位选通值,传送到P2口用于选通当前数码管的数值,如等于0xfe时,

//选通P2.0口数码

// dis_buf---显于缓冲区基地址

{

TH0= 0xFC;

TL0= 0x17;

P2= 0xff;//先关闭所有数码管

P0= dis_buf[dis_index];//显示代码传送到P0口

P2= dis_digit;//

dis_digit= _crol_(dis_digit,1);//位选通值左移,下次中断时选通下一位数码管

dis_index++;//

dis_index&= 0x07;// 8个数码管全部扫描完一遍之后,再回到第一个开始下一次扫描

}

void timer1() interrupt 3

{

TH1= 0xdc;

sec100++;

if(sec100>= 100)

{

sec100= 0;

inc_sec();

}

}

void inc_sec()

{

sec++;

if(sec> 59)

{

sec= 0;

inc_min();

}

dis_buf[6]= dis_code[sec/ 10];//秒十位

dis_buf[7]= dis_code[sec% 10];//秒个位

}

void inc_min()

{

min++;

if(min> 59)

{

min= 0;

inc_hour();

}

dis_buf[3]= dis_code[min/ 10];//分十位

dis_buf[4]= dis_code[min% 10];//分个位

}

void inc_hour()

{

hour++;

if(hour> 23)

{

hour= 0;

}

if(hour> 9)

dis_buf[0]= dis_code[hour/ 10];//时十位

else

dis_buf[0]= 0xff;//当小时的十位为0时不显示

dis_buf[1]= dis_code[hour% 10];//时个位

}

void delayms(unsigned char ms)

//延时子程序

{

unsigned char i;

while(ms--)

{

for(i= 0; i< 120; i++);

}

}

三、定时器按照工作方式可分为( )

定时器按照工作方式可分为()如下:

可分为接通延时定时器(TON);断电延时定时器(TOF);有记忆接通延时定时器(TONR)

定时器按照工作方式类型有

1、硬件定时器

硬件定时器是通过专门的硬件电路来实现定时功能的。它通常由一个晶振和计数器组成,可以精确地计时,并且不受软件的影响。硬件定时器广泛应用于各种电子设备中,例如计算机、手机、电视等。

2、软件定时器

软件定时器是通过软件程序来实现定时功能的。它通常是利用操作系统提供的计时功能或者编程语言中的定时器函数来实现。软件定时器的精确度较低,受到系统负载和其他软件的影响,但它可以在各种平台上实现,无需额外的硬件支持。

3、实时时钟(RTC)

实时时钟是一种独立于主处理器的定时器,通常由一个电池供电以保持时间的准确性。它可以提供长期稳定的时间计数,并且可以在设备关机或断电时继续运行。实时时钟广泛应用于需要精确时间戳的系统中,例如计算机、汽车电子系统等。

4、脉冲定时器

脉冲定时器是一种特殊类型的定时器,用于生成一系列固定频率和占空比的脉冲信号。它通常由一个振荡器和计数器组成,可以在各种应用中用于时序控制、频率调整等功能。

5、周期定时器

周期定时器是一种周期性触发的定时器,可以在固定的时间间隔内执行特定的任务。它通常通过设置定时器的周期和中断处理函数来实现,可以用于周期性的数据采集、任务调度等应用中。

使用定时器时需要注意的几个方面:

1、选择合适的定时器:根据使用场景和需要,选择合适的定时器。有不同类型的定时器,如手动机械定时器、电子定时器、手机APP定时器等。根据个人喜好和使用需求选购适合自己的定时器。

2、设置合理的时间:在设置定时器时,确保时间设置准确和合理。根据任务的需要,安排适当的时间间隔。避免设置过长或过短的时间,以充分利用时间和保证任务的顺利完成。

3、注意定时器的电源:如果使用电子定时器,确保电源稳定可靠。检查电池电量,确保电池充足或及时更换。此外,使用合适的电源插座,并避免水或湿润的环境,以确保电源和定时器的安全使用。