- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
單片机在工业自动化控制上的应用
单片机在工业自动化控制中的直接应用
前言
在上个世纪80年代后期,传统的工业设备大量地进行技术改造或被新设备替代,设备的自动化水平不断提高。这里面的主力核心是PLC(可编程控制器)。进入21世纪,生产生活中设备控制精细化、智能化以及节能等方面要求越来越高。MCU(微型控制器或称为单片机)崭露头角,其发展趋势不可限量。本课题报告的是机电气一体化生产加工设备中上料环节的51单片机控制。
目录
第一节控制流程
第二节单片机的驱动电路设计
第三节传感器的信号输入电路设计
第四节C51源程序
自动控制流程开
开 始
YNYY向下运动是否到位是否到位是否取走电机停、上 升初 始 化是否在下面向下运动有 料 否电机M转NYNY上升到位否
Y
N
Y
Y
向下运动
是否到位
是否到位
是否取走
电机停、上 升
初 始 化
是否在下面
向下运动
有 料 否
电机M转
N
Y
N
Y
上升到位否
料取走否
向下运动
等 待
N
Y
N
Y
N
N
计数送显示
单片机的驱动电路设计
传感器的信号输入电路设计
(1)气缸上位和下位传感器采用SMC D-C73 磁性开关
型
型
号
规
格
项
目
SMC D-C73
开关选择
SPST常开型
感应开关型式
有接点磁簧管型
使用电压
5~240V DC/AC
最大形状关电流
100毫安
最大接点容量
10W
内部消耗电流
无
残留压降
HYPERLINK mailto:2.5V最大值@100mADC 2.5V最大值@100mADC
泄露电流
无
指示灯
红色LED
电缆线
3.2∮,2C,米白色耐油PVC
最大开关切换频率
200HZ
保护回路
无
棕色
棕色
兰色
+
~
电
源
-
~
负载
SMC D-C73接线图
(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单片机自动控制程序*******/////////////////
#includereg52.h
unsigned char aa,bb,cc;
sbit gangxia=P3^1;//气缸下位检测传感器信号输入
sbit gangshang=P3^0;//气缸上位检测传感器信号输入
sbit guangdian=P3^4;//光电检料传感器信号输入
sbit diancifa=P3^5;//电磁阀控制
sbit dianji=P3^6;//料盘电机控制
sbit baojing=P3^7;//报警控制
sbit dd=P2^0;//紧急情况报警按键控制
//////////////////////////////////////////////////////
/////////*****延时子程序**********/////////////
void yanshi(unsigned int z)
{
unsigned x,y;
for(x=z;x0;x--)
for(y=125;y0;y--);
}
/////////////////////////////////////////////////////
//////////*******初始化子程序*********/////////
void init()
{
EA=1;EX0=1;EX1=1;aa=0;IT0=1;IT1=1;
}
///////////////////////////////////////////////////////////
///////////*******主程序*********//////////////
void main()
{
init();
while(!aa);
while(1)
{
if(aa==1gangxia==0)dianji=0;
else {dianji=1;diancifa=1;}
if(guangdian==0)
{
while(1)
{
dianji=1;diancifa=0;if(gangshang==0)break;
}
文档评论(0)