基于AT89C51单片机的微型可编程控制器

分享到:

 可编程控制器PC(Programmable Controller),为与个人计算机PC(Personal Computer)相区别,可简称为PLC。它是按照成熟而有效的继电控制概念和设计思想,用先进的单片机技术来实现I/O的实时检测和控制,可靠性高,编程简单、易学,因此,得到广泛应用。

将PLC技术引进电工学、电力拖动课程,是课程建设现代化的重要措施。在教学经费相对紧张的情况下,我们自己动手,以AT89C51单片机为核心,设计并研制了LD型微型PLC,应用于继电控制实验,取得了良好的效果。

用单片机构成的PLC,实际上就是一个单片机测控系统。用这样一个程序控制的计算机系统去执行继电控制的梯形图程序,由于继电控制梯形图中各被控电器之间是并行关系,而计算机程序控制中,各被控电器之间在时间上是串行关系,二者显然不协调。若简单地像一般单片机测控系统一样,对梯形图各程序行依次实时采集输入端子状态,进行处理后实时输出,是达不到控制目的的。为此,必须采用一次性采集全部输入端子状态,并将其存入输入缓冲区。然后,按梯形图程序行的逻辑关系,从输入缓冲区读取相应输入端子状态,处理后将待输出的结果存入输出缓冲区。最后,待梯形图程序行全部执行完毕,一次性将输出缓冲区的值输出到相应的输出端子,从而完成一个程序执行周期。如此往复,自动进行下一轮的采集输入端子状态……。这种工作方式即称为扫描方式,它将串行程序工作和电器并行工作两种关系协调了起来。另外,单片机执行一条指令的时间是μs级,执行一个扫描周期的时间为几ms乃至几十ms。相对于电器的动作时间而言,扫描周期是短暂的,可以认为在一个扫描周期内输入端子的状态是不变的,而对其状态变化的采集和处理也是实时的,从而满足了实时控制的要求。

 

 

系统硬件配置以AT89C51(以下简称51)单片机为核心,如图1所示。该单片机有4 KB闪存,不必扩展程序存储器,其4个I/O口共32个I/O引脚,都可供用户使用,其中P0.7~0.0,P2.4~2.0共13个脚经光耦隔离后连到相应的输入端子X07~X00,X14~X10。可以用行程开关、液位开关、霍耳开关和手动按钮等进行输入。开关接通时,相应引脚为"0",取反后存入输入缓冲区。

P1.7~1.0共8个引脚用于输出控制:P1.i为"0"时,相应的PNP管导通,继电器Ji线圈通电,其触点Y5i接通,可驱动220 V/3 A的负载。

为了与PC机进行通信,系统扩展了RS-232C接口电路。51单片机的RXD和TXD信号经RS-232C电平变换后接至9芯插座。由此可与PC机进行串行通信。一方面,在编程状态时,可接收PC机上梯形图汇编程序编译结果的OBJ指令代码,并存入程序存储器;另一方面,在运行状态时,可将I/O口的状态和处理结果实时地发送给上位机。

 

程序存储器选用有SPI接口的X25045芯片。这是带可编程看门狗和电源监控功能的E2PROM,有512字节,每字节可擦写10万次,数据可保存100年。上电时自动提供200 ms高电平复位脉冲;有三种可编程看门狗周期;电源欠压,VCC降到转折点时,自动提供复位脉冲。E2PROM采用三线总线的串行外设接口SPI,既节省了I/O口线和电路板空间,又降低了系统成本。因此,该芯片是性价比极好的组合芯片。

软件设计分为PC机梯形图汇编程序编译软件和51单片机软件两部分。前者用IBM-PC汇编语言编写,我们称之为PLC编译软件。本机中我们自己设计了一套TD型PLC的梯形图汇编语言指令系统,有LD/LDI、AN/ANI、OR/ORI、TM/TMI、CN/CNI、MA/MAI、OUT、JP/JE和END等16条基本指令和X00~07、X10~14、Y00~07、CN0~1、TM00~07、MA00~07、10~17等器件。用它们来描述继电器梯形图,即设计梯形图汇编程序。用全屏幕编辑软件将其输入到PC机,即建立了源程序文件。然后用PLC编译软件将其编译成PLC目标程序文件(OBJ文件),并经串行通信口发送到单片机,由单片机将其写入E2PROM。

51单片机软件由编程软件和运行软件组成。编程软件主要有串行通信和写E2PROM两个模块。此时,须将面版上的手动开关设置P2.7="0",单片机即处于编程状态。当P2.7="1"时,单片机即处于运行状态。运行状态的程序主要有:

(1)输入端子采集模块

该模块两次采集P0口和P1口状态,结果全同时为有效,即将其存入输入缓冲区,否则重新采集。用软件滤波的方法,提高了抗干扰能力。

(2)指令分析模块

该模块从000H地址开始,依次读取E2PROM中的字节内容,先读出操作码,对其分析后转向相应的处理程序;接着读操作数,供处理程序操作,从而完成一条梯形图汇编指令的执行。然后再读取下一条指令的操作码……。遇到OUT指令时,将待输出的数据存入相应的输出缓冲区。

(3)输出模块

当CPU从E2PROM中读到END指令的二进制代码时,表示一次扫描周期结束,即将输出缓冲区的内容一次性输出到P1口,从而完成输出端子的刷新。

该PLC的应用可以用水塔水位控制的例子来说明。

 

 

图2(a)是硬件接线图,SB1/SB2是启动/停止按钮;SAC是水池液位开关:水浸到时接通,无水时断开;SAH、SAL分别是水塔的高低液位开关;M是水泵电机。

图2(b)是继电器梯形图,图2(c)是继电器汇编程序,即TD型PLC源程序。其中y50是PLC输出端子,我们将它的软件触点y50作为水位上升或下降的标志:y50="0",表示电机已停,水位下降,此时SAL虽已接通,但电机不动作;y50="1",表示电机正在抽水,水位上升,此时SAL接通,电机通电,继续抽水,直到高水位。

继续阅读
基于无线技术的齿轮箱温度在线监测系统

齿轮箱是机械设备中十分常用的部件,如何保障它的正常工作,对于整个系统的安全、可靠运行有着非常重要的意义。由于齿轮间的摩擦,会使得润滑油的温度升高。一般情况下,齿轮箱的润滑油温度都应限制在允许范围内。但在工作异常情况下,如循环不良会导致齿轮箱温度很快超出极限值。因而对齿轮箱温度进行在线监测,能够有效地预警系统工作状态,避免生产安全事故的发生。

基于AT89C51的消除系统温漂和时漂的设计

电子仪表一种智能化质量计量仪器 ,是广泛应用于国防、科研、工厂 ,具有称量快速、操作简单、自动校准、故障自诊断等多种仪表所无法具备的功能与优越性。由于计量精密 ,灵敏度高 ,温漂与时漂成为影响了仪表的精度和工作稳定性的主要因素。

一种基于AT89C51的三总线转换装置设计

随着电子设备的大量出现及针对各种控制系统的实际需求,各种通信网络相继产生。由于它们的总线结构,通信协议及传输特点各不相同,给不同设备之间的连接带来很多麻烦,因而急需各种总线之间的转换装置。目前较流行的现场通信网络有RS-232,RS422/485、HART、Profield、Dupline、CAN和LonWorks等,本文阐述了一种USB-CAN-RS232三总线转换装置,电路设计简单新颖,并并且携带方便,实用性很强。

基于AT89C51的射频通信基站设计

现代通信技术的发展,数据传输是一个重要的研究内容。目前有线通信技术始终是市场的主流,这也是在空间区域不能自由布线的最大瓶颈,而无线通信技术是该问题一个很好的通信方案。以成品的无线通信芯片作为通信媒介更能解决基础硬件搭建调试及后期维护的难度。本文采用同类产品中性价比较高的芯片NRF24L01,配合简单外围电路和降低芯片,实现对其控制,很好地解决了这一问题。 本文的控制部件选用AT89C51型单片机。由于这种芯片只有SPI 通信接口,而目前常用的单片机都没有这种接口,因此需要对该芯片的通信时序进行模拟

基于AT89C51的十进制计算器设计

本系统采用AT89C51 单片机作为控制器,用来实现实现四位数的“+”,“-”,“*”,“/”运算,运算结果通过数码管显示,并具有有清零功能。AT89C51 具有如下特点:40 个引脚,4k BytesFlash 片内程序存储器,128 bytes 的随机存取数据存储器(RAM),32 个外部双向输入/ 输出(I/O)口,5 个中断优先级2层中断嵌套中断,2 个16 位可编程定时计数器,2 个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

©2019 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss