怎样在DOS程序中建立一个延时器(delay timer)?

怎样在DOS程序中建立一个延时器(delay timer)?,第1张

我们这些程序员很幸运,因为Microsoft公司的专家认为建立一个独立于硬件的延时器是一个好主意。显然,这样做的目的在于,无论程序运行在什么速度的计算机上,都可产生一段固定的延迟时间。下面的程序说明了如何在DOS中建立一个延时器:

#

include

<stdio.

h>

#

include

%dos.

h>

#

include

<stdlib.

h>

void

main(int

argc,char

**

argv)

{

union

REGS

regs:

unsiged

long

delay

delay

=

atoI(argv[1])

/

*

assume

that

there

is

an

argument

*

/

/

*

multiply

by

1

for

microsecond-granularity

delay

*

/

/

*

multiply

by

1000

for

millisecond-granularity

delay

*

/

/

*

multiply

by

1000000

for

second-granularity

delay

*

/

delay

*

=1000000

regs.

x.

ax

=

0x8600

regs.

x.

cx=

(unsigned

int

)((delay

&

0xFFFF0000L)>>16)

regs.

x.

dx

=

(unsigned

int

)

(delay

&

0xFFFF)

int86

(0x15,

&regs,

&regs)

}

上例通过DOS中断15H的86H功能来实现延时,延迟时间以微秒为单位,因此,上述延时程序认为你可能要使用一个非常大的数字,于是它分别用CX和DX寄存器来接受延时值的高16位和低16位。上述延时程序最多可以延时49.亿微妙---大约等于1.2小时。

上例假设延时值以微秒为单位,它把延时值乘以一百万,因此在命令行中可以输入以秒为单位的延时值。例如,“delay

10”命令将产生10秒的延时。

西门子S7-1200系列PLC的延时器是一种常用的定时器,可以在指定的时间内延迟输出信号。如果您想要实现门自动关闭的功能,可以使用S7-1200 PLC的延时器来实现。

具体实现方法如下:

1. 首先,您需要将门的开关信号连接到S7-1200 PLC的输入端口上。

2. 然后,在S7-1200 PLC的程序中,使用一个延时器来延迟门关闭的时间。您可以使用S7-1200 PLC的编程软件(如TIA Portal)来编写PLC程序。

3. 在PLC程序中,将门的开关信号作为延时器的输入信号,将延时器的输出信号连接到门的控制信号上。

4. 设置延时器的延时时间为您需要的门关闭时间。

5. 当门的开关信号被触发时,延时器开始计时,当延时时间结束时,延时器的输出信号会触发,将门的控制信号关闭,从而实现门的自动关闭功能。

需要注意的是,门的自动关闭功能需要根据实际情况进行调试和测试,确保其可靠性和安全性。

#include<reg52.h>

#include uahar unsigned char

#include uint undigned int

ucahr cont

void init()

{

TH0=(65536-50000)/256//赋初值

TL0=(65536-50000)%256

EA=1//开总中断

ET0=1;//开定时器中断

TR0=1//开启定时器0

}

void main()

{

init()//调用初始化子程序

}

void timer0() interrupt 2//定时程序

{

TH0=(65536-50000)/256

TL0=(65536-50000)%256

cont++

if(cont==10)

{

cont=0

此处是你需要 *** 作的数据,比如你要发光二级管亮灭, 或者数加减!!!

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11919232.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存