关 闭

新闻中心

EEPW首页>工控自动化>设计应用> 基于AT89C51单片机的微型可编程控制器

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

作者: 时间:2010-03-26 来源:网络 收藏


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

本文引用地址://m.amcfsurvey.com/article/163188.htm


程序存储器选用有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接通,电机通电,继续抽水,直到高水位。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭