自动存包柜的设计.docx
《自动存包柜的设计.docx》由会员分享,可在线阅读,更多相关《自动存包柜的设计.docx(34页珍藏版)》请在冰豆网上搜索。
自动存包柜的设计
全自动存包柜的设计
摘要
本文详细介绍了国内自动存包控制系统的发展现状,发展中所面临的问题。
并详细介绍了本系统采用的单片机做控制器,可以同时管理N个存包柜。
柜门锁由电磁阀控制,当顾客需要存包的时候,可以自行到存包柜前按“开门”键,单片机接收到一脉冲信号,并通过系统I/O口发出相应的信号,控制锁柜门的电磁阀将一空箱打开,顾客即可存包,并将柜门关上。
当顾客需要取包时,要将只要将条码放置到条形码阅读器前方,条形码阅读器采集到条码信息输出相应的高低电平信号传给单片机,系统比较密码一致后,发出开箱信号至电磁阀是柜门打开,顾客即可将包取出。
关键词:
自动存包单片机光电传感器条形码阅读器
DesignofAutomaticPackageofCounter
Abstract
Thispaperdescribesthecontrolsystemofthedomesticauto-savepackagedevelopmentstatusoftheproblemsfaceingthedevelopment.Anddetailsofthesystemmicrocontrollertodowiththecontroller,canmanageapackageofcounterN.Controlledbyasolenoidvalvecabinetlocks,whencustomersneedtosavethepackage,theycankeeptheirownbagtothecounterbeforethepressthe"open"button,themicrocontrollerreceivesapulsesignal,andthesystemI/Oporttoissuetheappropriatesignal,controllockdoorofthesolenoidvalvewillbeanemptyboxisopened,thecustomercandepositbags,andcabinetdoor.Whenthecustomerneedstotakewhenthepackageistosimplyplacethebarcodeinfrontofbarcodereaders,barcodereadersbarcodeinformationcollectedbythehigh-lowoutputsignalstotheappropriatemicrocontroller,thepasswordsystemisrelativelyconsistent,theissueoutoftheboxsignaltothesolenoidvalveisthedooropen,thecustomercanremovethepackage.
Keywords:
AutomaticStorageBagMicrocontrollerPhotoelectricSensorsBarCodeReader
前言
随着我国的不断发展,产品呈现出种类数目不断增多、丰富的局面。
尤其是生产质量的不断提高,对技术服务提出了更高的要求,特别是对物品的自动存储提出了更新更高的要求。
在当前各种多功能全自动存包机逐渐进入各超市的情况下,我们有必要对国产自动存包控制的应用现状及发展作进一步探讨。
在超市、综合商店、个人商店等人流量大的地方,常常需要对顾客随带物品进行存储。
如果用人工完成不但麻烦,而且效率低,劳动强度大。
随着微型计算机控制的普及,特别是单片机的应用,给该类系统的设计带来了极大的便利,在本次设计中,将主要介绍单片机控制自动存包控制系统的设计方法。
第1章自动存包柜
第1.1节自动存包柜的发展概述
电子存包柜又名自动存包柜、电子寄存柜,是20世纪嵌入式计算机快速发展后在传统寄存行业的一大应用。
从外观和用途来看,电子存包柜属于家具类别中的钢制家具。
从实现方式和功能上来看,电子存包柜属于电子专用设备。
电子存包柜主要由以下几种类型:
(1)机设条码式电子存包柜
存物时:
按“存”键,寄存柜自动打印一张密码条,机器语音提示:
“请取密码条”。
使用者抽出密码纸,对应的箱门自动打开,存好后关上箱门。
取物时:
直接将条码纸在扫描口扫描,对应的箱门会自动打开。
语音提示:
“请取完物品后关好箱门。
”
(2)指纹式电子存包柜
以使用者指纹作为寄存的凭证;当使用者进行存物操作时,须先按一下操作键盘中的“存”键,然后在指纹采集窗里采集指纹,机器会把该指纹与分配给使用者使用的寄存箱的箱号结合起来,并将信息自动记录下,同时自动打开该箱,供使用者存物,存完后使用者自己关好箱门;取物时,只需须先按一下操作键盘中的“取”键,然后在指纹采集窗里采集指纹,寄存柜将指纹数据与先前记录下的进行比对,正确后才会打开该箱供使用者取物(同时机器会自动记录当时的时间、指纹以备查询)。
(3)非接触IC卡电子存包柜
以使用者所持IC卡(即射频卡)作为寄存的凭证;当使用者进行存物操作时,须先按一下操作键盘中的“存”键再刷卡(即让寄存柜读取卡号),寄存柜先识别是否为该场所的IC卡,若不是则拒绝存物;若是,机器会把该卡号与分配给使用者使用的寄存箱的箱号结合起来,并将信息自动记录下,同时自动打开该箱,供使用者存物,存完后自己关好箱门;取物时,只需须先按一下操作键盘中的“取”键再刷卡,寄存柜将读取的卡号与先前记录下的进行比对,正确后才会打开该箱供使用者取物(同时机器会自动记录当时的时间、卡号以备查询)。
(4)联网型非接触IC卡电子存包柜
联网型非接触IC卡电子存包柜基本功能与非接触IC卡电子存包柜一致,另外增加了网络通讯模块,上位机管理软件等,以实现寄存状态联网监控,分段收费,报表打印等功能。
现在公共场所应用比较广泛。
因此,研制出一种能自动存包的装置有很重大的意义,我所研究的就是这方面的课题。
第1.2节总体方案确定
根据“自动存包”这一目的要求,做如下设计安排:
第一部分:
CPU核心控制部分,由单片机8031、复位电路、时钟电路等构成,是整个系统的核心。
第二部分:
键盘显示控制部分。
对3个数码管和2个按键进行管理,3个数码管用于显示两位柜号和3位密码,12个按键分别为10个数字键和2个功能键。
通过这些键盘,用户就可以完成所有的操作。
第三部分:
执行机构部分。
它是通过8051的并行口扩展一片8255A芯片,并通过8255A控制20个灯的状态(亮灭)来模拟柜子的存包取包的过程。
软件部分主要采用我们自己设定的一种与柜号相关联的算法来产生一组8位的随机密码,而密码的产生、核对过程就对应存包、取包的过程。
第2章系统硬件设计
第2.1节MCS—51单片机主要应用特性
MCS-51单片机是美国Intel公司于1980年推出的产品,与MCS-48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或其兼容的单片机仍是应用的主流产品,各高校及专业学校的培训教材仍用MCS-51单片机作为代表进行理论基础学习。
我们也以这一代表性的机型进行系统的设计。
MCS-51系列单片机主要包括8031、8051和8751等通用产品,其主要功能如下:
8位CPU
4kbytes程序存储器(ROM)
128bytes的数据存储器(RAM)
32条I/O口线
111条指令,大部分为单字节指令
21个专用寄存器
2个可编程定时/计数器
5个中断源,2个优先级
一个全双工串行通信口
外部数据存储器寻址空间为64kB
外部程序存储器寻址空间为64kB
逻辑操作位寻址功能
双列直插40PinDIP封装
单一+5V电源供电
MCS-51以其典型的结构和完善的总线专用寄存器的集中管理,众多的逻辑位操作功能及面向控制的丰富的指令系统,堪称为一代“名机”,为以后的其它单片机的发展奠定了基础。
正因为其优越的性能和完善的结构,导致后来的许多厂商多沿用或参考了其体系结构,有许多世界大的电气商丰富和发展了MCS-51单片机,像PHILIPS、Dallas、ATMEL等著名的半导体公司都推出了兼容MCS-51的单片机产品,就连我国的台湾WINBOND公司也发展了兼容MCS-51的单片机品种。
近年来MCS-51获得了飞速的发展,MCS-51的发源公司Intel由于忙于开发PC及高端微处理器而无精力继续发展自己的单片机,而由其它厂商将其发展,最典型的是PHILIPS和ATMEL公司,PHILIPS公司主要是改善其性能,在原来的基础上发展了高速I/O口,A/D转换器,PWM(脉宽调制)、WDT等增强功能,并在低电压、微功耗、扩展串行总线(I2C)和控制网络总线(CAN)等功能加以完善。
ATMEL公司推出的AT89Cxx系列兼容MCS-51的单片机,完美地将Flash(非易失闪存技术)EPROM与80C51内核结合起来,仍采用MCS-51的总体结构和指令系统,Flash的可反擦写程序存储器能有效地降低开发费用,并能使单片机作多次重复使用。
8051是MCS-51系列单片机中的代表产品,它内部集成了功能强大的中央处理器,包含了硬件乘除法器、21个专用控制寄存器、4kB的程序存储器、128字节的数据存储器、4组8位的并行口、两个16位的可编程定时/计数器、一个全双工的串行口以及布尔处理器。
MCS-51采用模块式结构,MCS-51系列中各种加强型单片机都是以8051为核心加上一定的新的功能部件后组成的,从而使它们完全兼容。
表2.1为MCS-51系列单片机常用产品特性。
表2.1MCS-51系列单片机常用产品特性
型号
片内存储器
I/O线
定时器/计数器
片外寻址空间(KB)
程序
数据
程序
数据
8051
4KROM
128
32
2个16位
64
64
8751
4KEPROM
128
32
2个16位
64
64
8031
无
128
32
2个16位
64
64
80C51
4KROM
128
32
2个16位
64
64
87C51
4KEPROM
128
32
2个16位
64
64
80C31
无
128
32
2个16位
64
64
8052
4KROM
256
32
3个16位
64
64
8752
4KEPROM
256
32
3个16位
64
64
8032
无
256
32
3个16位
64
64
MCS-51具有比较大的寻址空间,地址线宽达16条,即外部数据存储器和程序存储器的寻址范围达216=64kB,这作为单片机控制来说已是比较大的,这同时具备对口的访问能力。
此外,MCS-51采用模块化结构,可方便地增删一个模块就可使引脚和指令兼容的新产品,从而容易使产品形成系列化。
由于MCS-51集成了几乎完善的8位中央处理单元,处理功能强,中央处理单元中集成了方便灵活的专用寄存器,硬件的加、减、乘、除法器和布尔处理机及各种逻辑运算和转移指令,这给应用提供了极大的便利。
MCS-51的指令系统近乎完善,指令系统中包含了全面的数据传送指令、完善的算术和逻辑运算指令、方便的逻辑操作和控制指令、对于编程来说,是相当灵活和方便的。
MCS-51单片机的工作频率为2-12MHz,当振荡频率为12MHz时,一个机器周期为1us,这个速度应该说是比较快的。
MCS-51把微型计算机的主要部件都集成在一块芯片上,使得数据传送距离大大缩短,可靠性更高,运行速度更块。
由于属于芯片化的微型计算机,各功能部件在芯片中的布局和结构达最优化,抗干扰能力加强,工作亦相对稳定。
因此,在工业测控系统中,使用单片机是最理想的选择。
单片机属于典型的嵌入式系统,所以它是低端控制系统最佳器件。
鉴于MCS-51的以上特点,本文的设计就是基于MCS-51的8031型号单片机来设计的自动存包系统。
第2.2节自动存包系统面板设计及控制原理图
2.2.1面板设计
自动存包控制系统面板如图2.1所示
图2.1控制面板
2.2.2系统控制原理图
图2.3自动存包系统控制原理图
在本系统设计的自动存包系统中,采用8031单片机设计一个最小系统,为了读键盘给定值及完成检测和控制,系统中扩展一片8255A可编程接口及程序存储器EPROM2764其原理图如图2.3所示。
在图2.3中所示,8031、74LS373、2764组成最小系统。
第2.3节微型处理器
8031单片机是Intel公司生产的MCS-51系列单片机中的一种,除无片内ROM外,其余特性与MCS-51单片机基本一样。
2.3.18031性能特点
8031的主要性能包括:
(1)与MCS-51位控制器产品系列兼容。
(2)宽工作电压范围,VCC可为2.7V~6V。
(3)全静态工作,可从0Hz至16Hz。
(4)128×8位内部RAM。
(5)32条可编程I/O线。
(6)两个16位定时器/计数器。
(7)中断结构具有5个中断源和2个优先级。
2.3.28031硬件结构及引脚功能
8031的内部硬件结构如图2.4所示:
图2.48031引脚图
在图2.4中所示,8031单片机采用40引脚双列直插封装(DIP)形式。
采用方形封装工艺。
由于受到引脚数目的限制,所以有一些引脚具有第二功能。
在单片机的40条引脚中,有2条专用于主电源的引脚,2条外接晶体的引脚,4条控制和其它电源复用的引脚,32条输入/输出引脚。
下面分别说明这些引脚的名称和功能。
(1)主电源引脚Vcc和GND
Vcc:
芯片主电源,正常工作时接+5V电源。
GND:
接电源地。
(2)时钟振荡引脚XTAL1和XTAL2
XTAL1:
接外部晶体的一端。
在单片内部,它是反相放大器的输入端,该放大器构成了片内振荡器。
在测外部时钟电路时,对于HMOS单片机,此引脚必须接地;对CHMOS单片机,此引脚作为驱动端。
XTAL2:
接外部晶体的另一端。
在单片机内部,接至上述振荡器的反相放大器的输出端,振荡器的频率是晶体振荡频率。
若采用外部时钟电路时,对于HMOS单片机,该引脚输入外部时钟脉冲;对于CHMOS单片机,此引脚应悬空。
(3)控制信号引脚RST/Vpd、ALE/PROG、PSEN和EA/Vpp。
ALE/PROG:
地址锁存使能输出/编程脉冲输入端。
在扩展系统时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低8位地址和数据的隔离,P0口作为数据地址复用口线。
当访问单片机外部程序或数据存储器或外接I/O口时,ALE输出脉冲的下降沿用低8位地址的锁存信号;即使不访问单片机外部程序或数据存储器或外接I/O口,ALE端仍以晶振频率的1/6输出脉冲信号,因此可以作为外部时钟或外部定时信号使用。
但应注意,此时不能访问单片机外部程序、数据存储器或外设I/O接口。
PSEN:
片外程序存储器读选通信号。
在CPU向片外程序存储器读取指令和常数时,每个机器周期PSEN两次低电平有效。
但在此期间,每当访问外部数据存储器或I/O接口时无效出现。
EA/Vpp:
访问程序存储器控制信号/编程电源输入端。
当EA端输入高电平时,单片机访问片内的程序存储器,在低4KB地址时,将自动转向执行外部程序存储器的程序。
当EA输入低电平时,CPU仅访问片外程序存储器。
在对8751EPROM编程时,此引脚接+21V的编程电压VPP。
RST/Vpd:
复位/掉电保护信号输入端。
单片机上电后,只要在该引脚上输入24个振荡周期2个机器周期0宽度以上的高电平就会使单片机复位;若在RST与Vcc之间接一个10μF的电容,则可实现单片机上电自动复位。
RST/Vpd具有复位功能,在主电源Vcc掉电期间,该引脚可接上+5V的备用电源。
当Vcc掉到低于规定的电平,而Vpd在其规定的电压范围内时,+5V就向片内RAM提供备用电源,以保持片内RAM中的数据不丢失,复位后能继续正常运行。
(4)输入/输出(I/O)引脚P0、P1、P2、P3(共32根)
P0.0~P0.7:
P0口是一个8位双向I/O端口。
在访问片外存储器时,它分时提供低8位地址和作8位双向数据总线。
在EPROM编程时,从P0口输入指令字节;在验证程序时,则输出指令字节(验证时要外接上拉电阻)。
P0口能一吸收电流的方式驱动8个LSTTL负载。
P1.0~P1.7:
P1口是8位准双向I/O端口。
在EPROM编程和程序验证时,它输入低8位址。
P1口能驱动4个LSTTL负载。
P2.0~P2.7:
P2口是8位准双向I/O端口。
在CPU访问外部存储器时,它输出高8位地址。
在对EPROM编程和程序验证时,它输出高8位地址。
P2口可驱动4个LSTTL负载。
P3.0~P3.7:
P3口是8位准双I/O端口。
它是一个复用功能口。
作为第一功能使用时,为普通I/O口,其功能和操作方法与P1口相同。
作为第二功能使用时,各引脚的定义如表2-2所示。
P3口的每一引脚均可独立定义第一功能的输入输出或第二功能。
P3口能驱动4个LSTTL负载。
表2.2各口线的第二功能定义
口线
引脚
第二功能
P3.0
10
RXD(串行输入口)
P3.1
11
TXD(串行输出口)
P3.2
12
(外部中断0)
P3.3
13
(外部中断1)
P3.4
14
T0(定时器0外部输入)
P3.5
15
T1(定时器1外部输入)
P3.6
16
(外部数据存储器写脉冲)
P3.7
17
(外部数据存储器读脉冲)
第2.4节系统扩展
8031具有很强的扩展功能,允许扩展各种外围电路以补充片内资源不足,适应特定应用的需要,扩展内容包括数据存储器、程序存储器、I/O接口等扩展结构如图2.5所示:
图2.58031系统扩展结构图
2.4.1I/O接口的扩展
由于我们采集的数据量较多,因此CPU的I/O口线不够用,所以我们使用8255A来扩展I/O口,以满足系统的要求。
8255A是Intel公司生产的通用可编程并行I/O接口芯片。
8031和8255A相连可为外设提供三个8位I/O端口,允许采用同步、异步和中断方式传送I/O数据。
(1)8255A内部结构和引脚功能
①内部结构
8255A内部由四部分电路组成。
它们是A口、B口和C口,A组控制器和B控制器,数据缓冲器及读写控制逻辑,如图2-6所示。
1A口、B口和C口。
A口、B口和C口均为8位I/O数据口,但结构上略有差别。
A口由一个8位的数据输出缓冲/锁存器和一个8位的数据输入缓冲/锁存器组成。
B口由一个8位的数据输出缓冲/锁存器和一个8位的数据输入缓冲器组成。
三个端口都可以和外设相连,分别传送外设的输入/输出数据或控制信息。
2A、B组控制电路。
这是两组根据CPU的命令字控制8255工作方式的电路。
A组控制A口及C口的高4位,B组控制B口及C口的低4位。
3数据总线缓冲器。
它是一个8位的双向三态驱动器,用于与单片机的数据总线相连,传送数据或控制信息。
4读/写控制逻辑。
这部分电路接收MCS-51送来的读/写命令和选口地址,用于控制对8255A的读/写。
图2.68255A芯片的内部结构图
②引脚功能
8255A有40条引脚,采用双列直插式封装。
如图2.7所示。
图2.78255A引脚图
1数据总线(8条):
D0~D7:
三态双向数据总线,8255A与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
2控制总线(6条):
RESET:
复位信号,输入高电平有效。
一般和单片机的复位相连,复位后,8255A所有内部寄存器清0,所有口都为输入方式。
:
片选信号线,当这个输入引脚为低电平时有效,表示芯片被选中,允许8255A与CPU进行通讯。
:
读信号线,当这个输入引脚为低电平时,允许8255A通过数据总线向CPU发送数据或状态字。
:
写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写入8255A。
A0、A1:
地址输入线。
当=0,芯片被选中时,这两位的4种组合00、01、10、11分别用于选择A、B、C口和控制寄存器。
其组合如表2.3。
表2.38255A控制信号功能表
A1A2
端口地址
端口
功能
0
00
0
1
00H
A口
读A口
0
00
1
0
00H
A口
写A口
0
01
0
1
01H
B口
读B口
0
01
1
0
01H
B口
写B口
0
10
0
1
02H
C口
写C口
0
10
1
0
02H
C口
读C口
0
11
1
0
03H
控制口
写控制字
1
××
×
×
×
×
总线高阻
3并行I/O总线(24条):
这些总线用于和外设相连,分别与A、B、C口相对应,用于8255A和外设之间传送数据,共分三组:
PA0~PA7:
端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
PB0~PB7:
端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
PC0~PC7:
端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
4电源线(2条):
VCC为+5V电源线,允许变化±10%;GND为地线。
(2)8255A方式控制字
8255A有两个控制字:
方式控制字和C口单一置复位控制字。
用户通过程序可以把这两个控制字送到8255A的控制寄存器(A1A0=11B),以设定8255A的工作方式和C口各位状态。
这两个控制字以D7位状态作为标志。
8255A各端口工作于什么方式和是输入还是输出方式,是由方式控制字决定的。
方式控制字格式如图2.7所示。
D7为控制字标志位,若D7=1,则本控制字为方式控制字,若D7=0,则本控制字为C口单一置复位控制字。
D6~D3为A组控制位。
其中,D6和D5位A组方式选择位:
若D6D5=00,则A组设定为方式0;若D6D5=01,则A组设定为方式1:
若D6D5=1×(×为任意),则A组设定为方式2。
D4为A口输入/输出控制位:
若D4=0,则PA0~PA7,用于输出数据;若D4=0,则PA0~PA7用于输入数据。
D3位C口高4位输入/输出控制位:
若D3=0,则PC4~PC7为输出数据方式;若D3=1,则PC4~PC7为输入方式。
图2.8方式控制字
D2~D0为B组控制位,其作用和D6~D3类似。
其中,D2为方式选择位,若D2=0,则B组设定为方式0,若D2=1,则B组设定为方式1。
D1为B口输入/输出控制位,D1=0,则PB0~PB7用于输出数据,若D1=1,则PB0~PB7用于输入数据。
D0为C口低4位输入/输出控制位,若D0=0,则PC0~PC3用于输出数据,若D0=1,则PC0~PC3用于输入数据。
如图2.9所示:
图2.9置