以下汇编程序,delay的时间你需要自己调整一下,再加个2重循环吧,现在的时间是很短的。
P13为开门信号,P14为关门信号,输入输出低电平有效。
org 00h
ljmp main
org 30h
main:
jb p10,next1
setb 00h
clr 01h
next1:
jb p11,next2
clr 00h
next2:
jb p12,next3
clr 01h
next3:
mov c,00h
cpl c
mov p13,c
mov c,01h
cpl c
mov p14,c
jnb 02h,next4
jb 00h,next4
lcall delay
setb 01h
clr 00h
next4:
mov c,00h
mov 02h,c
ljmp main
delay:
mov r7,#00h
lp:
mov r6,#00h
djnz r6,$
djnz r7,lp
ret
有一种办法!根据接近开关平时送到PLC的开关信号进行判断比如正常情况下它一分钟送来的信号是10-100个,那我们可以利用PLC里面的时间进行判断,在一分钟内,如果接近开关送来的信号不在这个范围内,那就可以输出一个提示信号,对这个信号不正常进行分析!
程序部分:
比如信号是从X0送来的,
ldp x0
out c0 3000
ldp m8014
mov c0 d0
rst c0
ld> d0 k10
and< d0 k100
out m0
ld m0
out y0
这是用三菱或信捷PLC 的程序
用 51 单片机的引脚 P10,接到开关,开关另一端接地。
单片机的输出端设为 P17。
程序如下:
ORG 0000H
MOV C, P10
MOV P17, C
SJMP 0000H
END
电磁开关的检测主要从以下两个方面进行,第一检查电磁开关,接线柱及电磁开关,可体之间的导通情况,如不导通则线圈断路应更换第案用力压下复位d簧检查蓄电池接线柱和电流电机接线柱之间的导通情况不导通,应更换
把开关1的引脚定义一个名字,假设开关1在P10引脚,只是假设,实际在哪个脚你自己改。以下都是假设的引脚。
sbit k1=P1^0; //这是在主程序前要先定义
sbit k2=P1^1; //开关2,应该是行程序开关
sbit dianji=P1^2; //假设电机用P12控制
主程序中判断开关接通和电机启动/停止程序
if(k1==0)
{
delay(); // 延时,消除开关抖动,自己写一个延时子程序
if(k1==0)
dianji=0; //电机启动,用低电平启动
while(k1==0);
}
}
if(k2==0)
{
delay(); // 延时
if(k2==0) //检测到行程序开关2
dianji=1; //电机停止,高电平电机停止
while(k2==0);
}
}
以上就是关于单片机c语言编写自动门控制系统程序,p1.0红外传感器,p1.1位置检测开关1,p1.2位置检测开关2。全部的内容,包括:单片机c语言编写自动门控制系统程序,p1.0红外传感器,p1.1位置检测开关1,p1.2位置检测开关2。、PLC可否通过软件程序对接近开关的好坏进行检测,如果可以,要怎么才能实现请指教、单片机:设计一个能检测开关状态的电路,要求开关闭合时输出0电平,开关断开时输出1电平,在线等,挺急等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)