单片机在煤矿司控道岔控制器中的应用.doc
单片机在煤矿司控道岔控制器中的应用 2011-11-8 22231论文代写作者罗士彬 何兆书 摘要该文就单片机在卧龙湖煤矿司控道岔控制器中的应用进行了探讨,具有一定借鉴意义。 关键词单片机 司控道岔控制器 1 问题现状 卧龙湖矿所使用的气动道岔全部采用日本三菱PLC进行控制,它是通过PLC外接继电器对各种负荷及指示灯进行控制,这是一种经典的控制方案,其优点显而易见,但缺点是体积大,资源浪费(PLC许多功能得不到有效利用),价格昂贵,维护费用太高。以下是采用单片机对道岔进行控制的电路制作过程和原理分析。 2 电路原理分析 I/O端口随意设置,使用更加方便灵活,下面是以该单片机为核心的控制模块原理图。 注1.图中R1为1W功率电阻。其余未标明功率的电阻均为普通的1/4W碳膜电阻;2.二级管型号均为IN4007;3.光电耦合器TLP521-4为16脚塑料DIP封装;4.单片机STC12C5204AD为20脚塑料DIP封装;5.TIP122为NPN型达林顿管,采用T0-200封装形式,无需散热片,该管耐压100V,电流5A,可满足电路需要;6.C1,C2为小型电解电容,C3为普通瓷片电容;7.5V稳压块需加散热片,采用T0-200封装。 2.1 元件作用及原理分析 ①光电耦合器TLP521-4 该元件共有4路输入输出端子,输入端分别接两路到位传感器和无线遥控触点、手动按钮,输出端接单片机输入端。 ②单片机STC12C5204AD 由图中可以看出,单片机STC12C5204AD是整个控制电路的核心元件,由它来完成整个电路的控制功能,由于该单片机内置高稳定复位及振荡电路,只需给它提供5V电源即可正常工作,所以硬件电路特别简单。 ③驱动元件TIP122 由于单片机最大输出电流仅为26mA,所以为了能使负载正常工作,在此用于驱动各路负载。 2.2 单片机程序编制及功能实现 ①可手动控制或远距离无线遥控气动电磁阀吸合,道岔再右运行,3秒后电磁阀自动断电; ②外设到位传感器和到位指示,当输入端有到位信号时,其到位指示灯亮,当两端均无到位传感器信号时,红色警示灯0.5秒闪亮,提示维护人员检修。 //--------司控道岔控制器单片机控制模块C语言程序--------// /************************************************************* 程序名司控道岔控制模块程序 硬件支持STC12C5204AD 内部RC时钟 功能说明该司控道岔控制器可实现道岔的各种保护及手动、遥控控制功能,具有左、右到位及不到位红灯闪烁指示 /************************************************************/ include//包含单片机头文件STC12C52.h define uint unsigned int//数据类型宏定义 define uchar unsigned char uchar a,b,c,d,e;//定义无符号字符型变量 //位变量定义 sbit redP13;//红色警示灯 sbit lledP15;//左到位指示灯 sbit rledP11;//右到位指示灯 sbit lfaP17;//左气动电磁阀 sbit rfaP37;//右气动电磁阀 sbit lcgP30;//左到位传感器 sbit rcgP32;//右到位传感器 sbit ykP35;//遥控信号输入 sbit sdP34;//手动信号输入 /********************************************************** 函数名毫秒级CPU延时函数 调 用delay ; 参 数165535(参数不可为0) 返回值无 结 果占用CPU方式延时与参数数值相同的毫秒时间 /***********************************************************/ void delayuint z //延时子函数 { uint i,j; foriz;i0;i-- forj120;j0;j--; } /************************************************************* 函数名程序初始化设置 调 用init; 参 数无 返回值无 结 果I/O接口工作方式设置,中断方式及时间设置 /*************************************************************/ Void init//初始化子函数 { TMODEAET0TR01;//中断初始化 TH00 x3c;//赋值50ms TL00 xb0; // I/O接口工作方式设置 P1M00 x00;//0000 0000 P1M10 xff;//1111 1111 P1端口均设为推挽输出状态 P10 x00;//开机IO接口状态设置 P30 xff; } /************************************************************* 函数名定时器0中断程序 调 用无 参 数无 返回值无 结 果条件判断红灯闪、气动电磁阀闭合或断开 //***************************************************************/ void scankey//传感器扫描子函数 { iflcg0//如果左传感器到位 lled0;//左到位指示灯亮 else lled1;//否则左到位指示灯灭 ifrcg0//如果右传感器到位 rled0;//右到位指示灯亮 else rled1;//否则右到位指示灯灭 iflcg1rcg1//如果左右传感器都不到位 c;//红灯闪 else red1,c0;//只要有一个到位则红灯灭 } /**************************************************************** 函数名遥控扫描函数 调 用ykscan; 参 数无 返回值无 结 果遥控开关气动电磁阀 /***************************************************************/ void main//主程序函数 { init;//程序初始化 while1//循环扫描 { scankey;//传感器到位扫描 ykscan;//遥控信号扫描 } } 3 安装调试 按接线图所示接上各控制连线,将程序下载至单片机中,可发现控制功能和原有PLC控制功能相同,原来红色警示灯是道岔不到位亮,这里程序设计为0.5秒闪亮,更能起到警示效果。经过长期使用,证明该单片机控制模块无论在抗干扰能力还是在控制功能上,完全可以和PLC相媲美,如果能在司控道岔控制器上广泛使用,每年节约的材料费用相当可观。 相关论文 基于单片机通讯协议的现场总线设计实现 汽车电子限速系统中单片机的应用设计 浅谈高职院校基于工作过程的单片机课程教学 基于AVR单片机的机动车尾号限行提示器系统设计 以技能为切入点单片机教学的探索