毕业设计 基于51单片机自动加料机控制系统的设计


🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是:基于51单片机自动加料机控制系统的设计

第一章  自动加料机主电路

   主电路采用AT89C51,由于AT89C51内含4KB容量,因此在设计中不需要外扩ROM。硬件电路主要有LED显示电路、键盘接受电路、继电器控制电路、EEPROM外部存储器扩展电路,以及看门狗MAX813L等组成。

1.1 系统结构原理图

主电路采用AT89C51,由于AT89C51内含4KB容量,因此在设计中不需要外扩ROM。硬件电路主要有LED显示电路、键盘接受电路、继电器控制电路、EEPROM外部存储器扩展电路,以及看门狗MAX813L等组成。电路原理框图

如图所示:

1.2  主机电路核心器件介绍

   AT89C51是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含4K bytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(ROM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元。功能强大AT89C51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域。

1.2.1 AT89C51主要性能参数

.与MCS-51产品指令系统完全兼容

.4K字节可重擦写Flash闪速存储器

.1000次擦写周期

.全静态操作:0Hz---24MHz

.三级加密程序存储器

.128×8字节内部RAM

.32个可编程I/O 口线

.2个16位定时/计数器

.6个中断源

.可编程串行UART通道

.低功率空闲和掉电模式

1.2.2  AT89C51 功能特性概述

AT89C51提供以下标准功能:4K字节Flash闪速存储器,128字节内部RAM,32个I/0 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可将至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。

1.2.4 时钟振荡器

   AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路如图:

外接石英晶体(或陶瓷振荡器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低,振荡器工作的稳定性,起振的难易程序及温度稳定性,如果使用石英晶体,则推荐电容使用30pF

10pF,而如使用陶瓷振荡器建议选择40pF

10F。

用户也可以采用外部时钟,采用时钟的电路如图。在这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。

由于外部时钟信号是通过一个2分钟触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。

1.2.5  空闲节电模式

    AT89C51有两种可用软件编程的省电模式,它们是空闲模式和掉点工作模式。这两种方式是控制专用寄存器PCON(即电源控制寄存器)中的PD(PCON.1)和IDL(PCON.0)位来实现的。PD是掉电模式,当PD=1时,激活掉电工作模式,单片机模式,即PD和IOL同时为1,则先激活掉电模式。

在空闲工作模式状态,CPU保持睡眠状态而所有片内的外设保持激活状态,这种方式由软件产生。此时,片内RAM和所有特殊功能寄存器的内容保持不变。空闲模式可由任何允许的中断请求或硬件复位终止。

终止空闲工作模式的方法有两种,其一是任何一条被允许中断的事件被激活,IDL(PCON.0)被硬件清除,即刻终止空闲工作模式。程序会首先响应中断,进入中断服务程序,执行完中断服务程序并紧随RETI(中断返回)指令后,下一条要执行的指令就是使单片机进入空闲模式那条指令后面的一条指令。

其二是通过硬件复位也可将空闲工作模式终止。需要注意的是,当有硬件复位来终止空闲工作模式时,CPU通常是从激活空闲模式那条指令的下一条指令开始继续执行程序的,要完成内部复位操作,硬件复位脉冲要保持两个机器周期(24个时钟周期)有效,在这种情况下,内部禁止CPU访问片内RAM,而允许访问其它端口。为了避免可能对端口产生意外写入,激活空闲模式的那条指令后一条指令不应是一条对端口或外部存储器的写入指令。

1.2.6 掉电模式

在掉点模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM和特殊功能寄存器的内容在终止掉电模式前被冻结。退出掉电模式的唯一方法是硬件复位,复位后将重新定义全部特殊功能寄存器但不改变RAM中的内容,在VCC恢复到正常电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工作。

模式

 程序存储器

ALE

/PSEN

P0

P1

P2

P3

空闲模式

   内部

  1

1

数据

数据

数据

数据

 空闲模式

   外部

  1

1

浮空

数据

地址

数据

 掉电模式

   内部

  0

0

数据

数据

数据

数据

 掉电模式

   外部

  0

0

浮空

数据

数据

数据

  空闲和掉电模式外部引脚状态

1.2.7    程序存储器的加密

AT89C51可使用对芯片上的3个加密位LB1、LB2、LB3进行编程(P)或不编程(U)来得到下表所示的功能:

 加密位保护功能表

                        程序加密位

保护类型

LB1

LB2

LB3

1

U

U

U

没有程序保护功能

2

P

U

U

禁止从外部程序存储器中执行MOVC指令读取内部程序存储器的内容

3

P

P

U

除上表功能外,还禁止程序校验

4

P

P

P

除以上功能外,同时禁止外部执行

当加密位LB1被编程时,在复位期间,EA端的逻辑电平被采样并锁存,如果单片机上电后一直没有复位,则锁存起的初始值是一个随机数,且这个随机数会一直保存到真正复位为止,为使单片机能正常工作,被锁存的EA电平必须与该引脚当前的逻辑电平一致。此外,加密位只能通过整片擦除的方法清除。

 Flash闪速存储器的编程  

AT89C51单片机内部有4K字节的Flash PEROM,这个Flash存储阵列出厂时已处于擦除状态(即所有存储单元的内容均为FFH),用户随时可对其进行编程。编程接口可接收高电压(+12V)或低电压(Vcc)的允许编程信号。低电压编程模式适合于用户在线编程系统,而高电压编程模式可与通用EPROM编程器兼容。

AT89C51单片机中,有些属于低电压编程方式,而有些则是高电压编程方式。用户可从芯片上的型号和读取芯片内的签名字节获得该信息。如图

Vpp=12V

Vpp=5V

芯片顶面标识

AT89C51

xxxx

yyww

AT89C51

xxxx—5

yyww

签名字节

(030H)=1EH

(031H)=51H

(032H)=FFH

(030H)=1EH

(031H)=51H

(032H)=05H

AT89C51的程序存储器列阵采用字节写入方式编程的,每次写入一个字节,要对整个芯片内的PEROM程序存储器写入一个非空字节,必须使用擦除的方式将整个存储器的内容清楚。

​​​​​​​1.2.8   编程方法

  编程前,先设置好地址,数据及控制信号,编程单元的地址加在P1口和P2口的P2.0—P2.3(11位地址范围为0000H—0FFFH),数据从P0口输入,引脚P2.6、P2.7和P3.6、P3.7的电平,PSEN为低电平,RST保持高电平,EA/Vpp引脚是编程电源的输入端,按要求加上编程电压,ALE/PROG引脚输入编程脉冲(负脉冲)。编程时,可采用4—20MHz的时钟振荡器,AT89C51编程方法如下:

1.在地址线上加上要编程单元的地址信号。

2.在数据线上加上要写入的数据字节。

3.激活相应的控制信号。

4.在高电压编程方式时,将/EA/Vpp端加上+12V编程电压。

5.每对Flash存储阵列写入一个字节或每写入一个程序加密位,加上一个ALE/PROG编程脉冲。

改变编程单元的地址和写入的数据,重复1—5步骤,直到全部文件编程结束。

每个字节写入周期是自身定时的,通常约为1.5ms

1.2.9  数据查询

    AT89C51单片机用数据查询方式来检测一个写周期是否结束,在一个写周期中,如需读取最后写入的那个字节,则读出的数据的最高位(P0.7)是原来写入字节最高的反码,写周期完成后,有效的数据就会出现在所有输出端上,此时,可进入下一个字节的写周期,写周期开始后,可在任意时刻进行数据查询。

Ready/Busy:字节编程的进度可通过RDY/BSY输出信号监测,编程期间,ALE变成高电平“H”后P3.4端电平被拉低,表示正在编程状态。编程完成后。P3.4变为高电平表示准备就绪状态。

1.2.11     程序校验及芯片擦除

如果加密位LB1、LB2没有进行编程,则代码数据可通过地址和数据线读回原编写的数据。采用下图电路。程序存储器的地址由P1和P2口的P2.0-P2.3输入,数据有P0口读出,P2.6、P2.7和P3.6、P3.7的控制信号

保持低电平,ALE、

和RST保持高电平。校验时P0口须接上10K左右的上拉电阻。

加密位不可直接校验,加密位的校验可通过对存储器的校验和写入状态来验证。

利用控制信号的正确组合并保持ALE/

引脚10ms的低电平脉冲宽度即可将PEROM阵列(4k字节)和三个加密位整片擦除,代码阵列在片擦除操作中将任何非空单元写入“1”,这步骤需再编程之前进行。

1.2.12    读片内签名字节及编程接口

   AT89C51单片机内有3个签名字节,地址为030H、031H和032H。用于声明该器件的厂商、型号和编程电压。读签名字节的过程和单元030H、031H和032H的正常校验相仿,只需将P3.6、P3.7保持低电平,返回值意义如下:

  (030H)=1EH 声明产品由ATMEL公式制造。

  (031H)=51H 声明为AT89C51单片机。

(032H)=FFH 声明为12V编程电压。

(032H)=05H 声明为5V编程电压。

编程接口:采用控制信号的正确组合可对Flash闪速存储阵裂中的每一代码字节进行写入和存储器的整片擦除,写操作周期是自身定时的,初始化后它将自动定时到操作完成。

1.2.13   AT89C51的极限参数:

极限参数:工作温度………………-55℃to+125℃

          储藏温度………………-65℃to+150℃

          任一引脚对地电压………-1.0Vto+7.0V

          最高工作电压………………………6.6V

        直流输出电流……………………15.0mA

1.3  显示电路

在单片机应用系统中,如果需要显示的内容只有数码和某些字母,使用LED数码管是一种较好的选择。LED数码管显示清晰、成本低廉、配置灵活,与单片机接口简单易行。LED数码管是由发光二极管作为显示字段的数码型显示器件,其中七只发光二极管分别对应a~g笔端构成“日”字形,另一只发光二极管Dp作为小数点。因此这种LED显示器称为七段数码管或八段数码管。如图所示:

LED数码管按电路中的连接方式可分为共阴型和共阳型两大类,共阳型是将各段发光二极管的正极连在一起,作为公共端COM,公共端COM接高电平,a~g、Dp各笔段通过限流电阻接控制端。某笔段控制端低电平时,该笔段发光,高电平时不发光。控制某几段笔端发光,就能显示出某个数码或字符。共阴型是将各段发光二极管的负极连在一起,作为公共端COM接地,某笔段通过限流电阻接高电平时发光。

在自动加料机控制系统中运行是要显示输送、排料、满料、空料时间,有时间切换键和标志哪条生产线的发光二极管表示,显示的位数少,所以就采用静态显示的方式。LED显示器工作于静态显示方式时,各位的共阴极(或共阳极)连接在一起并接地(或+5V);每位的段选线(a~dp)分别与一个8位的锁存器输出相连。所以称为静态显示。各个LED的显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一个字符为止。也正因此如此,静态显示器的亮度都较高。这种显示方式接口编程容易。若用I/O接口,则要占用4个8位I/O口,若用锁存器接口,则要用4片74LS373芯片。如果显示器位数增多,则静态显示方式便无法适应。

在设计中,LED显示电路采用74LS377驱动器和MC14511B译码器控制LED数码管。

1.3.1  74LS377芯片介绍

1.4   继电器控制电路

在电气控制领域或产品中,凡是需要逻辑控制的场合,几乎都需要使用继电器,从家用电器到工农业应用,甚至国民经济各个部门,可谓无所不见。继电器是一种利用各种物理量的变化,将电量或非电量信号转化为电磁力(有触头式)或使输出状态发生阶跃变化(无触头式),从而通过其触头或突变量促使在同一电路或另一电路中的其它器件或装置动作的一种控制元件。根据转化的物理量的不同,可以构成各种各样的不同功能的继电器,以用于各种控制电路中进行信号传递、放大、转换、联锁等,从而控制主电路和辅助电路中的器件或设备按预定的动作程序进行工作,实现自动控制和保护的目的。被转化或施加于继电器的电量或非电量称为继电器的激励量,当继电器被激励,从一个起始位置达到预定的工作位置,并完成电路的切换动作,称为继电器的工作特性,包括吸合。不吸合,保持与释放状态。当输入量变化到高于它的吸合值或低于它的释放值时,继电器动作,对于有触头式继电器其触头闭合或断开,对于无触头式继电器起输出发生阶跃变化,以此提供一定的逻辑变量。

自动加料机是把塑料粒子送到一个真空管,在输送时真空管关闭合,排料时真空管需要打开,将粒子送到排料漏斗。本设计共需2个继电器控制交流接触器,一个接带动生产的电动机。另一个为控制工作方向的方向阀。经考虑采用4123无极12V直流控制24V的交流继电器,并利用光耦合器件P521和MCU隔开。89C51的P1初始值为0FFH,所以加一个74LS04反相器使得继电器初始不产生闭合,使用MC1413为无源驱动器,IN4007组成继电器的续流二极管。

电路图如下:

第二章  系统的抗干扰及可靠性

单片机系统供电线路是干扰的主要来源,电源采用隔离变压器接入电网,隔离变压器在初级和次级之间加了一层屏蔽层。交流接触器是继电器控制的,在紧靠交流接触器的输入端口并上一个电阻和电容串联的电路滤去高次谐波。每个集成电路芯片的电源和地之间要并上0.1

F的陶瓷电容。在输入输出通道上要加光藕P521。除了在继电器通道上外,两个满料信号也要经过P521光藕才送至 INT0、INT1。另外,数字地和模拟地要分开,数字地线要粗而短。

软件抗干扰方面,本系统采用指令冗余和软件陷阱。当CPU受到干扰后,会把一些操作数当作指令码来执行,引起程序混乱。由于当PC指针飞到单字节指令上时,会自动步入正轨。因此我们在程序中人为地在 RET、RET1、LCALL、LJMP、AJMP、DJZE、JZ、CJNE 等处插入一些单字节指令(NOP)。并在继电器开闭指令 SET、CLR前插入两条NOP指令。同时,当程序飞到ROM中未使用的非程序区时,非程序区要能捕获PC指针并强行拉到处理故障程序中。所以非程序区要每隔一段设置一个软件陷阱。软件陷阱

由三条指令构成:

NOP

NOP

LJMP ERROR

ERROR 处理过程放在 0030H

开始处

系统硬件框图

如果学弟学妹们在毕设方面有任何问题,随时可以私信我咨询哦,有问必答!学长专注于单片机相关的知识,可以解决单片机设计、嵌入式系统、编程和硬件等方面的难题。
愿毕业生有力,陪迷茫着前行!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值