请设计5小时的延时程序。I0.0接通后Q0.0立即接通,延时5小时后,Q0.0断开。 PLC大神们球带啊!!!!!!

请设计5小时的延时程序。I0.0接通后Q0.0立即接通,延时5小时后,Q0.0断开。 PLC大神们球带啊!!!!!!,第1张

什么PLC?有的plc直接就可以延时这么长时间,有的则延时不了这么长时间。延时不了这么长时间的,我们可以用定时器定一个比较短的时间,比如1分钟,时间到了以后把定时器把自己复位。然后用计数器记定时器输出的上升沿,5小时是300分钟,那么计数器计数到300就行了。

如果单纯延时,可以用实验的办法,在keilc51里面仿真

void Delay1S(char n)

{

char i,j;

n=n4;

for(;n;n--)

{

for(i=6;i;i++)

{

for(j=7;j;j++) // 一个循环约为1mS

;

}

}

}

看编译后的汇编:

C:0x0805 7D01 MOV R5,#0x06;j=1,1时钟

C:0x0807 0D INC R5;j++,1时钟

C:0x0808 ED MOV A,R5;A=R5,1时钟

C:0x0809 70FC JNZ C:0807;A=0,2时钟

循环共249次,一个循环共需4个时钟周期,加上第一个赋值语句1周期。

共997uS,加上外层循环,一次约1mS,

如果要精确的延时建议采用中断:

#include "reg51h"

//timer init

void initTimer(void)

{

TMOD=0x2;

TH0=0x6;

TL0=0x6;

}

int T250uS;

char T_mark;

//timer0/counter0 interrupt

void timer0(void) interrupt 1

{

//add your code here

T250uS++;

T_mark=0;

}

void Delay1S(char n)

{

for(;n;n--)

for(T250uS=0;T250uS<4000;)

{

T_mark=1;

while(T_mark);

}

}

//the main fun

void main(void)

{

initTimer();

TR0=1;

ET0=1;

EA=1;

while(1)

{

Delay1S(1);

}

}

Imports SystemTimers

' 在应用程序启动时激发

Dim aTimer As New SystemTimersTimer(100)

AddHandler aTimerElapsed, AddressOf 调用的函数

aTimerAutoReset = True

aTimerEnabled = True

软件延时程序就是利用执行每一条指令时所用的时间来进行延时的。

一般采用循环结构,达到多次反复执行某一段指令的目的,来增加延时的时间,可以通过对循环次数的控制,来达到控制延时时间长短的目的。

为了延长延时时间,一般要采用多重循环,即由外循环内部又含有内循环。

延时时间=(内循环时间)×外循环次数。

例如:设计一个延时1ms的延时子程序ys1ms,设单片机8051的时钟频率为12MHZ。

则单片机8051一个机器周期=12T=12/f=12/12MHZ=1微秒

程序和延时时间计算如下:

ys1ms: MOV R7,#4 ; 单周期1uS ( 晶振为12MHz)

DEL1: MOV R6,#123 ; 单周期1uS

DEL2: DJNZ R6,DEL2 ; 双周期2uS123=246uS

DJNZ R7,DEL1 ; 双周期(2us+246+1)4=996uS

NOP ; 单周期1uS

RET; 双周期2uS

延时时间t=1uS +(1us+246uS+2uS)×4+1uS+2uS=1000uS=1ms

其中 (1us+246uS+2uS)=249uS 为内循环时间 4为外循环次数

第一个1uS 是第一条指令的执行时间

1uS+2uS 是 最后二条指令 NOP RET指令的执行时间。

哈哈 给俺加分吧

以上就是关于请设计5小时的延时程序。I0.0接通后Q0.0立即接通,延时5小时后,Q0.0断开。 PLC大神们球带啊!!!!!!全部的内容,包括:请设计5小时的延时程序。I0.0接通后Q0.0立即接通,延时5小时后,Q0.0断开。 PLC大神们球带啊!!!!!!、51单片机用汇编语言设计1S延时子程序,晶振为12MHz。 (麻烦附上详细计算过程以及详细说明,、请帮忙设计一个延时100毫秒的延时程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/9322763.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存