单片机在工业自动化控制上的应用Word文件下载.docx
《单片机在工业自动化控制上的应用Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机在工业自动化控制上的应用Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。
SPST常开型
感应开关型式
有接点磁簧管型
使用电压
5~240VDC/AC
最大形状关电流
100毫安
最大接点容量
10W
内部消耗电流
无
残留压降
2.5V最大值@100mADC
泄露电流
指示灯
红色LED
电缆线
3.2∮,2C,米白色耐油PVC
最大开关切换频率
200HZ
保护回路
(2)检测物料传感器采用SUNX系列EX-43型号限定反射型光电传感器
EX-43电路接线:
3线传感器标准接法,棕正兰负黑输出。
(棕色线接+24V,兰色线接地,黑线送给单片机)
EX-43其主要特点:
1、体积只有W10×
H14.5×
D3.5mm(透过型,正面检测型),可安装在狭小空间内。
2、高速反应:
0.5ms适合检测细小部件和高速移动的物体。
3、清晰易见的双色指示灯,小型体积,并装备有方便的双色指示灯。
4、防水,其保护构造达到IP67,并且其金属配件用的全部是不锈钢,所以可以用水冲洗。
正
面
检
测
2~25mm(注)
(中心:
10mm)
EX-43
遮光时ON
第五节C51源程序
////////*******机电气一体化设备上料站51单片机自动控制程序*******/////////////////
#include<
reg52.h>
unsignedcharaa,bb,cc;
sbitgangxia=P3^1;
//气缸下位检测传感器信号输入
sbitgangshang=P3^0;
//气缸上位检测传感器信号输入
sbitguangdian=P3^4;
//光电检料传感器信号输入
sbitdiancifa=P3^5;
//电磁阀控制
sbitdianji=P3^6;
//料盘电机控制
sbitbaojing=P3^7;
//报警控制
sbitdd=P2^0;
//紧急情况报警按键控制
//////////////////////////////////////////////////////
/////////*****延时子程序**********/////////////
voidyanshi(unsignedintz)
{
unsignedx,y;
for(x=z;
x>
0;
x--)
for(y=125;
y>
y--);
}
/////////////////////////////////////////////////////
//////////*******初始化子程序*********/////////
voidinit()
EA=1;
EX0=1;
EX1=1;
aa=0;
IT0=1;
IT1=1;
///////////////////////////////////////////////////////////
///////////*******主程序*********//////////////
voidmain()
init();
while(!
aa);
while
(1)
{
if(aa==1&
&
gangxia==0)dianji=0;
else{dianji=1;
diancifa=1;
if(guangdian==0)
{
while
(1)
{
dianji=1;
diancifa=0;
if(gangshang==0)break;
}
}
else{yanshi(1000);
dianji=0;
if(dd==0)baojing=0;
elsebaojing=1;
}
///////////*******启动按键外部中断服务子程序*********////////
voidqdong0()interrupt0
aa=1;
EX0=0;
///////////*******停止按键外部中断服务子程序*********///
voidtngzhi0()interrupt2
aa=0;
EX1=0;
////////*******机电气一体化设备上料站51单片机自动控制程序*********/////////////////
//////////*********带自动计件功能5位数码管动态显示************/////////////////////////////////
intrins.h>
unsignedcharaa,bb,cc,duan,wan,qian,bai,shi,ge,i,num;
unsignedintgeshu;
bitkk,j,hh,tt;
sbitgangxia=P3^1;
//气缸下位检测传感器信号输入
sbitgangshang=P3^0;
sbitguangdian=P3^4;
sbitdiancifa=P3^5;
sbitdianji=P3^6;
sbitbaojing=P3^7;
sbitbaojingjian=P2^0;
voidxianshi(unsignedintgeshu);
unsignedcharcodebiao[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
////////////////////////////////////////////////////
//////////*******初始化子程序*********//////////
EX0=1;
tt=0;
TMOD=0x06;
TH0=255;
TL0=255;
geshu=0;
ET0=1;
TR0=1;
///////////*********按键扫描子程序**********//
voidanjian()
if(baojingjian==0)
baojing=0;
//////////////////////////////////////////////////////////
////////////*******数据外理和显示**********////////
voidxianshi(unsignedintgeshu)
wan=geshu/10000;
qian=geshu%10000/1000;
bai=geshu%10000%1000/100;
shi=geshu%10000%1000%100/10;
ge=geshu%10000%1000%100%10;
yanshi
(1);
P0=0x01;
P1=biao[ge];
yanshi
(1);
P0=0x02;
P1=biao[shi];
P0=0x04;
P1=biao[bai];
P0=0x08;
P1=biao[qian];
P0=0x10;
P1=biao[wan];
////////////*******执行子程序**********////////
voidzhixing()
if(gangxia==0&
guangdian==1)dianji=0;
if(guangdian==0)
{
yanshi(3);
if(guangdian==0)
if(kk==1&
j==1&
hh==1){kk=0;
j=0;
hh=0;
geshu++;
kk=1;
while
(1)
{
dianji=1;
if(gangshang==0)break;
xianshi(geshu);
anjian();
}
else
{j=1;
xianshi(geshu);
diancifa=1;
}
anjian();
///////////*******主程序*********//////////
dianji=1;
anjian();
xianshi(geshu);
while(tt)
zhixing();
///////////*******计数处理定时器中断服务子程序*********//////////
voidt00()interrupt1
hh=1;
///////////*****