基于单片机的可程控顺序系统论文正文Word文档下载推荐.docx
《基于单片机的可程控顺序系统论文正文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机的可程控顺序系统论文正文Word文档下载推荐.docx(29页珍藏版)》请在冰点文库上搜索。
顺序控制器一般用于生产过程的开关量控制。
动力设备的起动和停止、加热或冷冻设备的接通和断开、信号灯的亮与灭等都是开关量信号。
生产线、自动机床和各种设备都有许多开关量信号需要顺序控制。
因此,顺序控制器广泛应用于机械、冶金、电力、石油、化工、煤炭、建材、纺织、。
随着电子信息产业的高速发展,应用微处理器的顺序控制系统将会得到更大的发展。
2顺序控制的设计任务及方案论证
2.1可程控的顺序系统
●系统可以程序控制;
●第一步至第二步各为XXX秒;
●第三步至第四步各为XXXX秒;
●显示顺序过程XXX步XXX秒X循环;
●设计过程显示电路;
●设计中断扫描方式的键盘输入;
●设计直流电源。
2.2方案论证
方案1:
采用PLC作为核心控制部件。
使用PLC步进控制,结构如图2-1所示,步1的M1得电条件是受控机械原位开关X1处于压合状态(若受控机械有多个执行机构,则要求每个执行机构的原位开关均处于压合状态),满足原位条件后按起动按钮X0才能得电。
M1得电后自锁,并为步2提供步进条件信号(M1的常开触点)。
步1的执行动作完成时触发的行程开关信号X2作为步2的转步条件信号。
步2的M2的输入满足其步进条件和转步条件后得电自锁,并为步3提供步进条件信号。
按此规律即可实现后续每一工作步辅助继电器的得电和自锁。
停止步M5的步进条件信号和转步条件信号分别为:
最后一个工作步M4发出的步进条件信号(M4的常开触点)和该步动作完成时所触发的转步信号X1。
由于M5的得电信号令控制系统失电,所以M5的回路不自锁,而且要将其常闭触点串联在步1回路的最左端。
从步2起后续各个步的回路构成分支回路。
一旦M5得电便使整个系统失电。
如不用分支回路的结构,可以把M5常闭触点分别串联在每步辅助继电器的回路上。
应该注意的是:
无论工作步还是停止步,如果某步的转步指令信号有多个,则应将多个转步指令信号互相串联。
显示部分采用LED显示管。
图2-1plc步进控制梯形图
方案2:
采用AT89C51单片机,P0口接74LS373地址锁存器,由地址锁存器接8255I/O口扩展芯片,P2.4,P2.5,P2.6接一个3-8译码,输出端YO\接8255的片选信号端,8255的PB口做矩阵式键盘接口,PA口接发光二极管,采用共阳级的方式,运用中断方式查询是否有按健按下。
秒信号的产生是利用对单片机内部定时器T1产生的中断信号进行多次累加后形成的。
该信号还经过60次计数后产生分频信号,最后,再以分钟为时间间隔.从设置好的定时时间数据内逐一递减并随时显示剩余的定时时间参数,形成倒计数的显示方式,共99S。
显示采用动态扫描电路,共阳级方式接入。
由P1.0——P1.3提供LED显示信息。
P1.4—P1.5LED显示的片选口,按键设置分为16个,0—9号键为数字键,设定时间和步数。
10号键为工作步骤顺序设定键,设置0-9步的工作步骤顺序,11号键时间设定键,用来设置时间,12号键为循环次数键用来设置循环次数,13号键为确认键,用来确定具体设置完成,14号键为开始键,决定程序的开始运行,15号键为停止键。
所有时间都可程控。
方案比较:
方案1,控制系统比较复杂,且没有达到最精确的时间。
硬件过于复杂。
方案2,按键简单,采用矩阵的键盘接口,按键控制简单。
按键数目和方案相似,但按键的功能明确,时间、循环次数设定简单,LED显示采用动态扫描方式。
且所有时间,循环次数都可程控,综上所述,我们可以完全有理由的选择方案2。
3硬件电路的设计
尽管单片机集成度高,内部含有I/O控制线,ROM,RAM和定时/计数器。
但在组成单片机系统时,扩展若干接口仍是设计者必不可少的任务。
扩展接口有2种方案,一种是购置现成的接口板,另一种是根据系统实际需要,选用适合的芯片进行设计控制系统。
就后一种而言,主要包括以下几个方面的内容。
基本系统的构成:
一个独立的单片机核心系统,一般由时钟电路、地址锁存器电路、地址译码器、存储器扩展、模拟量输入通道的扩展、模拟量输出通道的扩展、开关量的I/O接口设计、键盘输入和显示电路等组成。
(1)存储器扩展
由于单片机有4种不同的存储器,且程序存储器和数据存储器是分别编址的,所以单片机的存储器容量与同样位数的微型机相比扩大了一倍多。
扩展时,首先要注意单片机的种类;
另一方面要把程序存储器和数据存储器分开。
(2)模拟量输入通道的扩展
主要有以下2个问题:
一个是数据采集通道的结构形式,一般单片机控制系统都是多通道系统。
因此选用何种结构形式采集数据,是进行模拟量输入通道设计首先要考虑的问题。
多数系统都采用共享A/D和S/H形式。
但是当被测参数为几个相关量时,则需选用多路S/H,共享A/D形式。
对于那些参数比较多的分布式控制系统,可把模拟量先就地进行A/D转换,然后再送到主机中处理。
对于那些被测参数相同(或相似)的多路数据采集系统,为减少投资,可采用模拟量多路转换,共享仪用放大器、S/H和A/D的所谓地电平多路切换形式。
另外一个问题是A/D转发器的选择,设计时一定要根据被控对象的实际要求选择A/D转换器,在满足系统要求的前提下,尽量选用位数比较低的A/D转换器。
(3)模拟量输出通道的扩展
模拟量输出通道是单片机控制系统与执行机构(或控制设备)连接的纽带和桥梁。
设计时要根据被控对象的通道数及执行机构的类型进行选择。
对于那些可直接接受数字量的执行机构,可由单片机直接输出数字量,如步进电机或开关、继电器系统等。
对于那些需要接收模拟量的执行机构,则需要用D/A转化,即把数字量变成模拟量后,再带动执行机构。
(4)开关量的I/O接口设计
由于开关量只有2种状态“1”或“0”,所以,每个开关量只需一位二进制数表示即可。
因为MCS—51系列单片机设有一个专用的布尔处理机,因而对于开关量的处理尤为方便。
为了提高系统的抗干扰能力,通常采用光电隔离器把单片机与外部设备隔开。
(5)操作面板
操作面板是人机对话的纽带,它根据具体情况,可大可小。
为了便于现场操作人员操作,单片机控制系统设计一个操作面板的要求:
操作方便、安全可靠、并具有自保功能,即使是误操作也不会给生产带来恶果。
(6)系统速度匹配
在不影响系统总功率的前提下,时钟频率选得低一些较好,这样可降低系统对其他元器件工作速度的要求,从而降低成本和提高系统的可靠性。
但系统频率选的比较高时,要设法使其他元器件与主机匹配。
总体结构框图如下图3-1所示
图3-1总体结构框图
利用键盘扫描电路来完成按键设置时间,发光二极管点亮次序,利用LED接口显示电路来显示当前的工作步骤时间,发光二极管依次点亮作输为出部分。
3.1主控部件设计
此次设计我们采用AT89C51单片机,提供以下标准功能:
8k字节Flash闪烁存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器和时钟电路。
同时,AT89C51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作,掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
引脚图如图3-2所示:
图3-2AT89C51引脚图
3.1.189C51单片机的特点
●
与MCS-51产品指令和引脚完全兼容;
8K字节可重擦写FLASH闪存;
1000次擦写周期;
全静态操作:
0Hz-24MHz;
三级加密程序存储器;
256X8字节内部RAM;
32个可编程I/O口线;
3个16位定时/计数器;
8个中断源;
可编程串行UART通道;
低功耗空闲和掉电模式。
3.1.289C51单片机引脚说明
P0口——P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在FLASH编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口——P1口是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输出口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),FLASH编程和程序校验期间,P1接收低8位地址。
P2口——P2是一个带内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。
FLASH编程或校验时,P2亦接收高位地址和一些控制信号。
P3口——P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。
此时,被外部拉低的P3口将用上拉电阻输出电流。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表所示:
●P3.0RXD(串行输入口);
●P3.1TXD(串行输出口);
●P3.2INT0(外部中断0);
●P3.3INT1(外部中断1);
●P3.4T0(定时/计数器0);
●P3.5T1(定时/计数器1);
●P3.6WR(外部数据存储器写选通);
●P3.7RD(外部数据存储器读选通)。
此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。
RST——复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。
ALE/PROG——当访问外部程存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。
FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
3.1.38255引脚功能
图3-38255A引脚图
RESET:
复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:
片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进行通讯。
RD:
读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:
写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写8255。
D0~D7:
三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
PA0~PA7:
端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
PB0~PB7:
端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
PC0~PC7:
端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口
3.1.4时钟电路的设计
单片机的时钟信号用来提供单片机片内各种微操作的时间基准,复位操作则使单片机的片内电路初始化,使单片机从一种确定的初态开始运行。
89C51单片机的时钟信号通常用两种电路形式得到:
内部振荡方式和外部振荡方式。
在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。
由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。
内部振荡方式的外部电路如下图所示。
图中,电容器Cl,C2起稳定振荡频率、快速起振的作用,其电容值一般在5-33pF。
晶振频率的典型值为12MHz,采用6MHz的情况也比较多。
内部振荡方式所得的时钟信号比较稳定,实用电路中使用较好。
如图3-3,:
图3-4振荡电路图
3.1.5复位电路的设计
单片机复位是使CPU和系统中的其他功能部件都处立—个确定的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第—个单元取指令。
大论是在单片机刚开的接广电源时,还是断电后或者发生故障后都要复位,所以我们必须弄清楚89C51单片机复位的条件、复体电路和复位后状态。
单片机复位的条件是:
必须使RSW阳或RST引脚(9)加上持续两个机器周期(即24个振荡周期)的高电平。
例如,若时钟频率为12MHz,每机器周期为1μs,则只需2μs以上时间的高点平,在RST引脚出现高电平后的第二个机器周期执行复位。
具体电路设计的分析和比较:
1、方案一:
此方案中采用上电复位电路。
电路如图3-5所示。
图3-5上电复位电路图
上电式复位电路的特点是很方便,当有电源接通给单片机时,此电路就可以自动产生复位信号。
它是利用电容充电来实现的。
在接电瞬间,RESET端的电位与VCC相同,随着充电电流的减少,RESET的电位逐渐下降。
只要保证RESET为高电平的时间大于两个机器周期,才能正常复位。
2、方案二:
此方案中采用了按键式的复位电路,如下图3-6所示:
这种复位电路的特点就是上电以后,可以随时通过按键来发出复位信号。
若要复位,只需按图中的RESET键,此时电源VCC经电阻R1、R2分压,在RESET端产生一个复位高电平。
这对系统的可控性是很有帮助的。
3.2方案比较
前面已经介绍了复位电路的两种形式,其实对系统而言并没有什么大的区别,但考虑到系统调试时的方便,本系统采用了按键复位方式。
当调试不成功时,经过调整后,只需单片机复位即可进行下一次的调试。
这也降低了其他硬件由于电源供电问题,而导致的调试不成功。
所以,最终选定按键复位电路为单片机部分的复位电路。
图3-6按键复位电路图
3.2.1外围芯片的选用
硬件锁存接口采用8位锁存器。
373为三态输出的八D透明锁存器,共有54/74S373和54/74LS373两种线路结构型式。
373为三态输出的8D透明锁存器,373的输出端O0-O7可直接与总线相连。
当三态允许控制端OE为低电平时,O0-O7为正常逻辑状态,可用来驱动负载或总线。
当OE为高电平时,O0-O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。
当锁存允许端LE为高电平时,O随数据D而变。
当LE为低电平时,O被锁存在已建立的数据电平。
当LE端施密特触发器的输入滞后作用,使交流和直流噪
图3-7SN74LS373N8位锁存器
声抗扰度被改善400mV。
373引出端符号:
D0~D7-----数据输入端
OE-----三态允许控制端(低电平有效)
LE-----锁存允许端
O0-O7-----输出端
最后我选用SN74LS373N锁存器,引脚如图3-7所示:
3.2.2译码器SN74LS138D
译码器SN74LS138D原理图如下图3-8所示:
图3-8译码器SN74LS138D原理图
由图可知,该译码器有3个输入端A、B、C,它们共有8种状态的组合,即可译出8个输出信号Y0-Y7,故该译码器称为3线-8线译码器。
该译码器的主要特点是,EA、EB为低电平有效用。
由功能表可知,当EA为低电平,译码器处于工作状态。
3.3矩阵式键盘的结构与工作原理
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。
由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。
这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。
行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。
故此我们使用矩阵式键盘。
如图3-9所示:
图3-9矩阵式键盘
矩阵式键盘PCB如图3-10所示。
图3-10矩阵式键盘PCB图
3.3.1键盘扫描方式介绍
(1)中断方式:
在中断模式下,按键的数量受到外部中断源的限制,在有特殊场合的需要下,还可以借用内部的定时中断。
所以在这样的模式下,按键的数目小于外部中断源和定时器数量之和。
(2)程序查询方式:
通过读I/O状态,当有键被按下时相应的I/O口线变为低电平,而未被按下的键对应的I/O口线保持为高电平,这样通过读I/O口状态可判断是否有键按下和哪一个键被按下,在需要键盘输入的时候,调用扫描程序,获得扫描的状态值。
由于采用这种结构,在不需要输入的时刻,CPU是不对键盘进行相应的扫描,键盘被旁路。
(3)定时查询方式:
和程序查询方式一样,也是通过读I/O状态,当有键被按下时相应的I/O口线变为低电平,而未被按下的键对应的I/O口线保持为高电平,这样通过读I/O口状态可判断是否有键按下和哪一个键被按下,不同的是定时查询是利用定时器产生中断,每次中断查询一次I/O端口,实时性较强。
本次设计中我们采用中断扫描的方式。
3.3.2键盘抖动消除方法
键盘是由若干按键组成的开关矩阵,它是微型计算机最常用的输入设备,用户可以通过键盘向计算机输入指令、地址和数据。
一般单片机系统中采用非编码键盘,非编码键盘是由软件来识别键盘上的闭合键,它具有结构简单,使用灵活等特点,因此被广泛应用于单片机系统。
如图3-11所示:
图3-11非编码键盘
按键开关的抖动问题组成键盘的按键有触点式和非触点式两种,单片机中应用的一般是由机械触点构成的。
在下图中,当开关S未被按下时,输入端为高电平,S闭合后,输入端为低电平。
由于按键是机械触点,当机械触点断开、闭合时,会有抖动动,输入端的波形如图3-10所示。
这种抖动对于人来说是感觉不到的,但对计算机来说,则是完全可以感应到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对计算机而言,这已是一个“漫长”的时间了。
前面我们讲到中断时曾有个问题,就是说按键有时灵,有时不灵,其实就是这个原因,你只按了一次按键,可是计算机却已执行了多次中断的过程,如果执行的次数正好是奇数次,那么结果正如你所料,如果执行的次数是偶数次,那就不对了。
为使CPU能正确地读出输入口的状态,对每一次按键只作一次响应,就必须考虑如何去除抖动,常用的去抖动的方法有两种:
硬件方法和软件方法硬件消抖:
硬件削抖是采用硬件电路的方法对键盘的按下抖动及释放抖动进行削抖,经过削抖电路后使按键的电平信号只有两种稳定的状态。
常用的削抖电路有触发器削抖电路、滤波削抖电路两种。
硬件削抖电路如图3-12所示:
图3