毕业设计-基于AT89S52单片机的小型PLC的设计与实现

上传人:ss****gk 文档编号:233084611 上传时间:2022-01-01 格式:DOCX 页数:15 大小:103.79KB
返回 下载 相关 举报
毕业设计-基于AT89S52单片机的小型PLC的设计与实现_第1页
第1页 / 共15页
毕业设计-基于AT89S52单片机的小型PLC的设计与实现_第2页
第2页 / 共15页
毕业设计-基于AT89S52单片机的小型PLC的设计与实现_第3页
第3页 / 共15页
毕业设计-基于AT89S52单片机的小型PLC的设计与实现_第4页
第4页 / 共15页
毕业设计-基于AT89S52单片机的小型PLC的设计与实现_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《毕业设计-基于AT89S52单片机的小型PLC的设计与实现》由会员分享,可在线阅读,更多相关《毕业设计-基于AT89S52单片机的小型PLC的设计与实现(15页珍藏版)》请在金锄头文库上搜索。

1、基于AT89S52单片机的小型PLC的设计与实现the designation and accomplishment of the small PLC which is based onAT89s52 Singlechip摘要可编程控制器(PLC)以抗干扰性强、可靠性高和编程灵活等特点在工业上得到广泛应用。其缺点 是价格比较昂贵。单片机也以其价格低廉,编程灵活,控制能力强等优点广泛应用于工业控制领域。把两者的优点结合起来,利用PLC的编程思想和实现方法,结合单片机价格低,编程灵活的特点, 设计了一种小型可编程控制器。本文介绍了基于AT89s52单片机的小型PLC的设计,阐述了软硬件结 构和实现

2、的基本方法。关键字可编程序控制器(PLC);单片机Abstract Programmable Logic Controller (PLC) has been widely applied in industry because its strong antidisturbance, high reliability and flexible. Its disadvantage is very expensive. But Single Chip Microcomputer has been widely applied because its low price flexible and st

3、rong control ability.Combining their advantage together, this paper designs a smart PLC with using the method of PLC programmer and advantage of Single Chip Microcomputer. This paper introduce a hardware and software design method of smart PLC based on MCS-8051。Keyword Programmable Logic Controller

4、(PLC); Single Chip;1. 引言可编程序控制器(PLC)是按照成熟的继电器控制思想,结合计算机技术、 自动化技术、通讯技术来实时控制的先进控制系统。PLC广泛应用于工业生产, 在工业控制领域占有重要地位,与机器人、CAD/CAM并称为当代工业自动化的三 大支柱。可靠性高、接口类型丰富、能适应各种复杂的工业环境是PLC的突出优点, 同时PLC采用面向过程的编程语言,编程简单直观,易学易懂,使用灵活方便, 工程技术人员经过短期学习即能上手。但它也存在不少缺点:内存有限,编程优 化调试困难;产品多为进口,价格昂贵;针对性比较差。特别是当环境条件尚佳, 控制量不大,控制逻辑不太复杂,控

5、制要求不高时,它的优势不能完全发挥出来, 而且会提高系统的成本。鉴于此,根据可编程序控制器的实现思想和理念,设计 小型的PLC控制系统具有较大的实际意义。本文中笔者借鉴PLC的实现思想和运行原理,利用性价比比较高的AT89s52 单片机设计了了一种小型PLC。2, 硬件设计此次设计笔者在PLC结构和实现思想的基础上进行了一些尝试,把系统程序 和用户程序合并到一起,即不区别系统存储区和用户存储区,不设常驻CPU的系 统程序,而是在上位机通过编程软件将用户程序和系统程序合并在一起。此方法 简化了硬件结构了,整个硬件系统由单片机AT89s52以及外围接口电路构成。其 硬件结构图如图1所示:2. 1

6、CPUPLC常用的CPU有8位16位及32位通用微处理器和单片机。自从单片机问 世以来,已有不少产品采用单片机制造可编程控制器,如常见的MSC-8051系列 单片机,就被一些公司用来制造小型可编程序控制器,特别是该系列的单片机具 有较强的布尔处理机,更适合用来制造PLCo此次采用的AT89s52单片机即是 MSC-8051系列的衍生产品。2. 2 I/O单元I/O接口的数量是衡量CPU性能的主要标准之一。本系统的设计定位是:应用于控制量较小,控制要求不高的控制场合的微型可编程控制器,故本系统设置 了 8个输入点和8个输出点,这种设计完全可以满足该工况的需要。PLCI作于工业控制现场,而工业控制

7、现场往往环境恶劣,存在着电磁、噪 声、振动等各种干扰,因此PLC要正常工作必须具备良好的抗干扰性能。工业现 场中,电磁干扰是较为严重的,因此为了实现良好的抗干扰性能必须把I/O接口 和CPU从物理上隔离开来,以防止干扰信号的串入。PLC产品为了实现接口电路 与CPU隔离通常采用光电耦合器隔离的方法。本设计已采用了这种方法,使用光 电耦合器把输入输出接口同CPU隔离开来。光电隔离电路如图2所示:图1硬件电路图图1光电隔离电路图2.3电源部分为了取材方便节约成本,电源部分采用二手的计算机开关电源,取+5V供给 单片机,+12V供给接口电路。为了避免干扰的串入,控制部分和接口电路分离 供电,分别用两

8、块电源供给,提高了抗干扰性能。3. 软件设计软件系统的设计思想是:编程软件将编制的助记符指令翻译为MCS-8051的 汇编语言,用户只需通过文本编辑软件建立助记符程序源文件并存为.PLC格式, 即可直接运行翻译程序进行翻译,生成.ASM格式的文件,再通过汇编器的编译 后生成目标码.HEX文件,最后装入单片机。3. 1系统运行程序依照PLC循环扫描、集中采集输入、集中输出的设计思想,设计了系统运行 程序。由于单片机并行口在上电复位后都为高电平,而输出设计为高电平有效,因 而在程序运行一开始首先向输出口 P1写“1”,将输出口电平拉低。而后调用MOV 20H, #00H将输入映像区20H清空,随后

9、进入一个“读输入一 逻辑运算一写输出”循环周期。在每个循环的开始调用MOV P2,#0FFH和MOV 20H, P2两条指令读取输入口的状态,由于系统逻辑运算部分设计为高电平有效, 而输入状态扫描设计为低电平有效,所以当我们采集输入点信息并读入输入映像区后,首先要将输入映像区的值全部取反,再进行逻辑运算。逻辑与运算完毕后将进入写输出操作,由于在翻译逻辑运算的同时已经将输 出量写到了输出映像区24H的对应位,因而在循环末尾只需调用MOV Pl, 24H将 输出缓冲区全部写到引脚即可。3. 2翻译程序设计软件设计的思路是设计翻译程序将助记符程序.PLC翻译成为汇编语言程 序.ASMo通过研究我们不

10、难发现PLC助记符程序和MCS-51汇编语言存在着一定 的对应关系,我们可以利用这一对应关系进行翻译。具体方法是:先确定PLC 助记符指令语句与汇编语句组的队医关系,翻译时派发地址即可。PLC助记符指 令与MCS-51汇编指令对应表如表3所示:整个翻译程序共分为四个模块:文件扫描、错误检查、逻辑翻译、结果输出。 逻辑翻译模块式翻译程序的核心。翻译是通过I/O映像区地址表的建立,操作数 字段操作数类型与标号的分离,操作码字段翻译,I/O点对应的位地址的确定等 几个阶段完成的。翻译是通过函数Interpreter ()的调用实现的。PLC助记符程序MCS-51汇编语言-LDMOV C , BITL

11、DNOTMOV C , BIT CPL CORORL C , BITORNOTORLC,/BITANDANLC,BITANDNOTANL C,/BITORLDORL C , 22H.0ANDLDANL C , 22H.0OUTMOV 24H.X , C表1 PLC助记符指令与MCS-51汇编指令对应表(1) I/O映像区地址表的建立输入输出映像区地址表中包含了目标程序中全部可用的输入输出点的位地 址。首先建立输入映像区地址表和输出映像区地址表,表结构定义如下:typedef struct IBitadresschar *b;int lid;JIadress;/*输入映像区定义*/字符指针分别指

12、向输入缓冲区20H和输出缓冲区24H, lid标示输入缓冲区 每一位的位地址标号,Xid标示输出缓冲区每一位的位地址标号。究竟怎样表示 的呢,让我们看一下输入映像区表和输出映像区表的初始化:ladress Ibit8=(20H.00,0,(20H.l0,l,(20H.20,2,(20H.30,3,(20H.40,4,(20H.50,5,(20H.60,6,(20H.70,7,;/*输入映像区表初始化*/由该初始化过程我们可以发现:输入(输出)表的lid字段和位地址与每字 节位地址的位标号是相对应的,如输入(输出)映像区地址“20H. 0 (24H. 0)” 对应的标号 lid 为 “0 (0)

13、”,与 “20H. 1 (24H. 1)” 对应的 lid 为 “1 (0)”。在翻译的时候我们通过源文件链表节点中的I/O点类型来决定从那个映像 表中取用地址,再结合输入点号最终唯一确定一个位地址作为程序地址。(2) 源文件操作码类型和I/O点号的分离当遍历到一个节点时,从节点数据域中取出操作数(Poprand)字段,并对 操作数字段的I/O点类型和I/O点号进行分离,具体方法是:先取出Poprand字段第一个字符Poprand0存入变量Poprand_l,该字段表 示了 I/O点的类型,“I”是输入点,“X”代表输出点,“0”是ORLD/ANDLD指令 使用的固定操作码。然后取出Popra

14、nd字段的第二个字符Poprand1存入变量 Poprand l,该字段表示了 1/0点的标号。(3) 操作码字段翻译当扫描到节点时,首先取出节点的操作码字断Popcode进行判别,通过判 别可以确定最终翻译生成的汇编代码的操作码字断和操作数字段中的某一个,表 示位地址的操作码字段,须通过分离后的Poprand_2和Poprand一1共同确定。在 生成目标程序的操作数字段的时候,逻辑量的暂存选用了程序状态字PSW的最 高位Cy,这是由位寻址指令的特点决定的。逻辑节点组暂存选用了位地址22H.0。源文件操作码字段Popcode的翻译分以下三种情况:1) 目标代码地址固定的语句的翻译ORLD 0.

15、译为 ORLC,22H.OANDLD 0.译为 ANLC,22H.O这类指令中的位地址是不变的,因而翻译是固定的,表示将组节点并联时的 中间结果存入固定的暂存区22H.0.2) 通过操作码字段的翻译后只需确定位地址的语句的翻译OR(ORNOT) II.译为 ORLC,I1(ORLC,/I1)AND(ANDNOT) II.译为 ANL C,I1(ANL C,/I1)这两句中已确定了目标程序的操作码字段和操作数字段的一个值,只剩下 I/O点地址II等待确定。3) 需保存中间结果的语句的翻译遇到成组串并联的情况,需先将上一组逻辑的结果存入暂存区。即翻译为: 当 ldflag=O 时 LDI1 译为 MOV C,I1当 1 dflag=l 时 LDI1 译为 MOV 22H.0,C MOV C,I1 两句需要指出的是在进行判断的时候需要先判断条件(ldfalg=l)再判断条件 (ldfalg=O),否则可能漏掉需要暂存的中间点。当遇到OUT指令时,把Idflag 清零,因为OUT表示一个逻辑回路的结束(4) I/O点对应的位地址的确定经过对源文件操作码字段的分析翻译后,少量源程序的语句已经被完整的翻 译出来,这些语句涉及的位置都是固定地址。多数已经得到了目标

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号