
```
LD W#12000 //将十进制值 12000 载入中间寄存器
TIM M1000 //将中间寄存器的值(单位为 ms)载入定时器 M1000
```
上面的代码中,“W#12000” 表示将 120 分钟转换为毫秒,并将值保存在中间寄存器中;“M1000” 是一个可编程的计时器寄存器号。
此外,为了保证定时器能够正确执行,在程序中需要定期读取定时器寄存器的值,以判断是否达到计时时间。
下面是一个完整的弊销搏 PLC 程序代码示例,用于实现 120 分钟定时功能:
```
LD W#12000 //将十进制值 12000 载入 W10 中间寄存器
TIM M1000 //将中间寄存器的值(单位为 ms)载入定时器 M1000
:LOOP //循环开始
TPL M1000 //读取定时器 M1000 的累加值
JMP NZ, LOOP//如果累加值不为零,则继续等待
... //定时时间到达后要执行的 *** 作
CLR M1000 //清除定时器 M1000 中的累加值
```
在以上的代码中,“TPL” 指令用于读取定时器 M1000 的累加值,如果累加值不为零,则代表定时时间还未到,继续等待;否则,即达到了定时时间,就会斗悉执行代码中“...”处的 *** 作。最后,“CLR” 指令用来清除定时器中的累加值,以备下一次使用。
希望这个简单的程序对您有所帮助。请注意,这里只是提供了一种可能的实现方法,具体实现需要根据实际情况进行调整和优化。同时,PLC 编程需要非常注意安全性,确保程序稳定性和安全性。
#include“reg52.h”行山 //头文件,包含各种寄存器扰带并定义及函数库
time0() interrupt 1 using 0
{
TH0=0x3CTLO=0xB0
P1_0=~P1_0
}
main()
{
TMOD=0x01TH0=0x3CTLO=0xB0
//12MHz下,50ms定时所对应的初值
EA=1ET0=1TRO=1
while(1)
{
缓迹 }
}
这么简单的要求,清者不用大动干戈。看看厅睁下面的程序,是不是最简单:
ORG 0000H
SETB TR0 启动T0
MOV R2, #250 定时计数初值
LOOP:
MOV TH0, #(8192 - 8000) / 32 定时8ms
MOV TL0, #(8192 - 8000) MOD 32
JNB TF0, $ 等待8ms
CLR TF0
DJNZ R2, LOOP 每隔8ms,R2减一次一
CPL P1.0 R2为扮正岁0则LED亮灭转换
LJMP 0000H
END
本程序,已经实验成功。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)