基于单片机的自动存取柜的设计.docx
《基于单片机的自动存取柜的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的自动存取柜的设计.docx(55页珍藏版)》请在冰豆网上搜索。
![基于单片机的自动存取柜的设计.docx](https://file1.bdocx.com/fileroot1/2023-6/8/e540fa9a-bdee-4d4f-9daa-7d5caffd66d8/e540fa9a-bdee-4d4f-9daa-7d5caffd66d81.gif)
基于单片机的自动存取柜的设计
毕业设计(论文)
基于单片机的自动存取柜的设计
系别
自动化工程系
专业
测控技术与仪器
班级学号
5060806
姓名
雷宏
指导教师
宋爱娟
2010年6月15日
基于单片机的自动存取柜的设计
摘要
本文介绍了自动存取柜控制系统的设计与实现方法。
本课题由AT89S52单片机构成核心控制系统,整个系统由主控部分、键盘显示和条码扫描部分、执行部分三部分组成,通过密码的核对完成自动存包取包的过程。
第一部分:
CPU核心控制部分,由单片机AT89S52、复位电路、时钟电路等构成,是整个系统的核心。
第二部分:
键盘显示和条码扫描部分,该部分通过按下存包键以及对条码数据进行扫描来完成存包取包过程,并且通过液晶(LCD)显示各种提示信息。
第三部分:
执行部分,该部分通过AT89S52的并行口扩展两片8255A芯片,并通过8255A控制16个锁来完成开门关门动作。
软件部分主要是密码产生过程,即把存包时刻作为密码。
而密码的产生、核对过程就对应存包、取包的过程。
本系统具有如下特色:
经济实用、操作简单且便于安装。
能产生一组密码,密码使用一次有效。
利用软件产生密码而不是硬件,使得硬件更为简洁、可靠、稳定。
关键词:
自动存取柜,AT89S52单片机,液晶显示,密码
Thedesignbasedonminicomputerfortheroboticizedaccesstank
Author:
LeiHongTutor:
Songaijuan
Abstract
Thisarticledescribestheautomaticcontrolsystemaccesscabinetdesignandimplementation.TheissueposedbytheAT89S52microcontrollercorecontrolsystem,theentiresystemfromthemasterpart,thekeyboarddisplayandbarcodescannerpart,theoperativepartofthreeparts,thecompletionofcheckingbythepasswordautomaticallysavedpacketaccesspacket.
PartI:
CPUcorecontrolpart,bytheMCUAT89S52,resetcircuit,clockcircuit,etc.,andisthecoreofthesystem.
PartII:
thekeyboarddisplayandbarcodescannerpart,thepartofthepackagebypressingthesavebuttonandthescannedbarcodedatapacketaccesspackagetocompletethedepositprocess,andthroughtheliquidcrystal(LCD)displayavarietyofprompts.
Part
:
theoperativepart,thepartoftheparallelportextensionthroughAT89S52two8255Achips,and16throughthe8255Acontroldoorlocktocompletetheclosingaction.
Softwarecomponentisthepasswordgeneratingprocess,thatis,tosavetimepackageasthepassword.Thepasswordgeneration,thereconciliationprocessonthecorrespondingdepositbag,takespacket.
Thissystemhasthefollowingcharacteristics:
Economicalandpractical,simpleandeasytoinstall.Cangenerateapassword,the
passwordtouseoneeffectively.Passwordgeneratedbysoftwareratherthanhardware,makinghardwaremoreconcise,reliableandstable.
Keywords:
AutomaticAccessTank,AT89S52Singlechip,LCD,thepassword
1绪论
1.1自动存取柜的设计背景及目的
近年来,随着生活水平的提高,人们对于社会消费品的质量和数量的要求以及对社
会的服务质量也在逐渐增加。
为了更好的为广大的顾客服务,在一些商场、影院(尤其是超市)等公共场合通常有电脑控制的自动存取柜,来方便广大的顾客朋友们。
各种各样的自动存取柜也陆续出的产生了。
它具有功能实用、操作简便、安全可靠、抗干扰性强等特点,能够更好的服务于不同市场的广大群众。
顾客可以根据简明清晰的操作说明自行的完成取物品的工作,自助式存取可以避免开放式存包带来的不必要的纠纷,又可以节约人员开支,达到减员增效的目的。
同时,存包可以解放顾客的双手,使顾客开放双手,更方便的进行购物。
1.2国内外研究状况和相关领域中已有的研究成果
“自动存取柜”就是让使用者可以实现自助式储存物品,原产日本,后来在台湾广泛应用。
1999年开始在中国大陆出现并逐步广泛应用。
目前主要分为机械型和电脑型两大系列。
主要规格分为:
10格、12格、15格、18格、24格。
下面介绍几种常见的自动存取柜:
(1)投币式机械自动存取柜
这种存取柜是1999年由深圳亿家福公司最先引入中国大陆的。
目前使用范围有:
超市、图书馆、海滨浴场等。
(2)投币式收费型存取柜
用于车站、码头、公共场合募捐旅游景点等。
这些场所一般使用18格或15格。
(3)机设条码多功能电子存取柜
用于超市、卖场、新华书店等公共场合。
这些场所一般使用10格或15格。
(4)傻瓜型非接触卡长效存取柜
用于小区信报管理、员工更衣室、租赁柜等,也用于有人员职守的公共场合,如:
网吧、旅馆、浴池。
这些场所一般使用24格或36格。
(5)一次有效扫卡存取柜
利用员工卡扫描存取、利用学生卡扫描存取、利用会员卡扫描存取。
这些场所一般使用24格。
(6)异型卡、钥匙型卡存取柜
用于洗浴更衣、桑拿更衣、员工更衣等。
这些场所一般使用18格或24格。
1.3课题的研究方法及研究内容
本次设计以基于单片机的超市电子自动条码存取柜为代表,这种自动存取柜免去了工作人员的辛劳,存包的顾客只要按一下小键盘上的“存”键,它就会自动打印出带有密码及相应柜子号的凭条,当顾客拿出凭条时,柜子会自动弹开,顾客可以将要存放的东西放到里面,关上柜门后,只有凭借顾客拿的凭条上的密码才能打开此柜门。
这种自动存取柜的出现,显然既方便了顾客,又节省了超市的人力物力。
这种存取柜具备普通密码型的全部功能,并增加了条码的打印和识别功能,用户开箱取物时只需将条码纸在条码扫描区内进行扫描,即可完成取物操作,方便快捷,安全性高。
条形码纸的条码通过加密形成唯一性的密码,避免被偷窥密码的可能性,此条码纸一经使用就会失效,使用安全成倍提高;快速存取:
索取时自动打印条码,取物时快速的扫描识别。
简单操作:
只需按“存”就可打印条码纸,读取条码只需扫描一下。
该存取柜系统主要由柜体、箱格和主控单元三部分组成,主控单元包含单片机、液晶显示屏、微型打印机、操作键盘和扫码区。
单片机控制箱柜存取操作,安全方便。
液晶显示屏可以显示寄存信息,如:
存物箱号、箱满提示、扫码错误提示、时间等信息,帮助用户自助式完成存取操作。
箱柜表面经除锈、磷化,并采用先进静电粉体涂装,外表美观,质感高雅。
产品结构性能稳定、安全牢靠,具有防撬功能。
顾客需要存包的时候,可以自行到存包柜前按“存”键,单片机接收到一脉冲信号,并通过系统I/O口发出相应的信号,控制锁柜门的电磁阀将一空箱打开,顾客即可存包并将柜门关上。
当顾客需要取包时,只要将条码放置到条形码扫描器前方,条码扫描器采集到条码信息输出相应的高低电平信号传给单片机,系统比较密码一致后,发出开箱信号至电磁阀使柜门打开,顾客即可将包取出。
条码型存取柜系统具有较高的自动化程度,是以单片机为核心,自动控制柜门的打开,并通过条码技术实施红外线检测开门。
关门后通过条码打印机打印条码,并自动切纸;有存包请求时显示无物的箱体号。
并具有断电保护功能,通过软件检测箱内是否有物品,并报警。
在现实生活中有着积极的作用。
1.4论文构成
论文包括绪论,论文主体以及结论三部分。
其中绪论部分包括毕业设计的背景及目的;国内外研究状况和相关领域中已有的研究成果;课题的研究方法及研究内容以及论文构成。
论文的主体部分包括论文总体方案设计与选择的论证;论文各部分(包括硬件与软件)的设计计算;试验方案设计的可行性、有效性以及试验数据的处理及分析;对本研究内容及成果较全面、客观的理论阐述,即指出本研究内容中的创新、改进与实际应用之处。
结论部分阐述自己的新的见解及其意义和作用。
2系统总体方案设计与选择的论证
2.1系统工作原理介绍
该系统是用来为顾客在超市购物存包,取包过程提供便利的一个平台。
顾客存包时,首先把开启的箱门全部关上,按下“存包”键,此时,系统打印条码,顾客取出条码的同时,对应的箱门自动开启,存包后,关闭箱门。
取包时,先把所有开启的箱门关上,将条码放在扫描区,如果条码信息与系统存储的密码一致,对应的箱门开启,取包后,关闭箱门。
2.2系统采用的各个部件及其功能介绍
本系统采用ATMEL公司的增强型51系列单片机AT89S52作为整个系统的运算与控制部件,负责与外部设备与存储器交换数据,响应外部的中断请求等。
外部设备及芯片包括输入部分、输出部分、输入/输出部分以及连接单片机与外设的扩展芯片。
2.2.1系统的输入部分
1)按键输入,此按键作为存包键,与单片机的
相连,顾客按此键,便构成一个中断请求,单片机响应此请求后,通过程序控制箱门的打开。
2)门磁传感器输入,此输入作为状态的输入,指示箱门打开或者关闭。
3)条码扫描输入,该部分作为识别开箱门的部件,当顾客将条码对准扫描口时,对应的箱门会自动打开。
2.2.2系统的输出部分
1)液晶显示部件,型号:
1602。
当单片机检测到所有的门磁传感器状态均表明箱门闭合且有物时,液晶显示“FULL(箱满)”字样;当有至少一个箱门闭合且无物时,液晶显示实时的时刻;当有存包请求时,若有空箱,则液晶显示器显示空箱号码;在扫描条码后,若条码数据与存储器中的密码核对不一致,则显示出错信息“WRONG(错误)”。
2)微型打印机,型号:
GP16。
当顾客按存包键以后,单片机将DS1302记录的实时时刻做成密码,然后打印机将密码及其相应的柜号打印成条码。
3)继电器的输出,当条码信息与单片机存储的密码核对一致时,单片机控制继电器动作,进而控制电控锁的开启。
2.2.3系统的输入/输出部分
1)实时时钟芯片DS1302。
读操作:
该芯片为系统工作提供实时的时刻,并且在有存包请求时,单片机把动作时刻的信息存入到外部存储器中,同时还要送到打印机打印出来。
写操作:
单片机要将控制信息写到DS1302的控制字中,用来控制DS1302的工作方式。
2)外部存储器芯片AT24C02。
该存储器用来存储由柜号和时刻信息构成的二维数组信息,单片机与存储器之间的操作分为读操作和写操作。
2.2.4扩展芯片
8255A可编程并行口扩展芯片,该芯片连接了电控锁以及门磁传感器。
将PA口设置为输出状态,输出的低电平控制开电控锁;将PB口设置为输入状态,读入门磁传感器指示的高低电平。
2.3系统工作原理框图
图2.1系统的硬件结构框图
2.4选择该系统方案的论证
2.4.1主控单元——单片机AT89S52介绍
AT89S52单片机是AT89系列中的增强型产品,采用了ATMEL公司的技术领先的Flash存储器,是低功耗、高性能、采用CMOS工艺制造的8位单片机。
1、AT89S52单片机的主要特性
(1)8位字长的CPU;
(2)可在线ISP编程的8KB片内Flash存储器;
(3)256B的片内数据存储器;
(4)可编程的32根I/O口线(P0~P3);
(5)4.0~5.5V电压操作范围;
(6)3个可编程16位定时/计数器;
(7)双数据指针DPTR0和DPTR1;
(8)具有8个中断源、6个中断矢量、2级优先权的中断系统;
(9)可在“空闲”和“掉电”两种低功耗方式运行;
(10)3级程序锁定位;
(11)全双工的UART串行通信口;
(12)1个看门狗定时器WDT;
(13)具有断电标志位POF;
(14)振荡器和时钟电路的全静态工作频率为0~30MHz;
(15)与MCS-51单片机产品完全兼容。
2、单片机的封装以及引脚图
AT89S52具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
其中,PDIP(塑料双列直插)封装的芯片使用方便,可以灵活插拔,因此最为常用。
如下图所示为PDIP封装的AT89S52芯片引脚图。
图2.2AT89S52芯片引脚图
3、单片机各个引脚的功能介绍
AT89S52与其他PDIP封装的51单片机芯片一样,具有40个引脚。
下面介绍各引脚的功能。
VCC:
电源正极,一般为+5V。
GND:
电源地。
P0:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL
逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器
时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash
编程时,P0口也用来接收指令字节;在程序校验时输出指令字节。
程序校验时,需要
外部上拉电阻。
P1:
P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个
TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口
使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器T2的外部计数输入(P1.0/T2)和定时器/计数
器T2的触发输入(P1.1/T2EX),具体见下表2.1。
在flash编程和校验时,P1口接收低
8位地址字节。
表2.1P1接口第二功能
引脚号
第二功能
P1.0
T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1
T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5
MOSI(在系统编程用)
P1.6
MISO(在系统编程用)
P1.7
SCK(在系统编程用)
P2:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高8位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3:
P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为AT89S52特殊功能(第二功能)使用,见表2.2。
在flash编程和校验时,P3口也接收一些控制信号。
表2.2P3口的第二功能
引脚号
第二功能
P3.0
RXD(串行输入)
P3.1
TXD(串行输出)
P3.2
(外部中断0)
P3.3
(外部中断1)
P3.4
T0(定时/计数器0外部输入)
P3.5
T1(定时/计数器1外部输入)
P3.6
(外部数据存储器写选通)
P3.7
(外部数据存储器读选通)
RST:
复位输入。
晶振工作时,RST脚持续两个机器周期高电平将使单片机复位。
看门狗计时完成后,RST脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
ALE/
:
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在flash编程时,此引脚也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。
这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。
否则,ALE将被微弱拉高。
这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
:
外部程序存储器选通信号。
当AT89S52从外部程序存储器执行外部代码时,
在每个机器周期被激活两次,而在访问外部数据存储器时,
将不被激活。
/VPP:
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,
必须接GND。
为了执行内部程序指令,
应该接VCC。
在flash编程期间,
也接收12VVPP电压。
XTAL1和XTAL2:
外接晶振引脚。
当使用芯片内部时钟时,此二引脚用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。
2.4.2显示模块——液晶显示器1602的介绍
液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在各类仪表和低功耗系统中得到广泛的应用。
根据显示内容可以分为字符型液晶,图形液晶。
根据显示容量又可以分为单行16字,2行16字,两行20字等等。
2行16字的字符型液晶模块是一种通用模块,与数码管相比该模块有如下优点:
(1)位数多,可显示32位,32个数码管体积相当庞大。
(2)显示内容丰富,可显示所有数字和大、小写字母。
(3)程序简单,如果用数码管动态显示,会占用很多时间来刷新显示,而1602自动完成此功能。
图2.31602模块的实物图
1602采用标准的16脚接口,其中:
(模块背面有标注)
第1脚:
VSS为地电源
第2脚:
VDD接5V正电源
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
RW为读写信号线,高电平时进行读操作,低电平时进行写操作。
第6脚:
E端为使能端,当E端由高电平跳变为低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15~16脚:
空脚(有的用来接背光)。
1602液晶模块内部的字符发生存储器(CGROM)已经存储了不同的点阵字符图形,
这些字符有,阿拉伯数字、英文字母的大小写、常用的符号和日文假名等,每一个字符都有一个固定的代码,其中数字与字母同ASCII码兼容。
其内部还有自定义字符
(CGRAM),可用以存储自己定义的字符。
2.4.3扩展芯片——8255A并行I/O口扩展
8255A是Intel公司生产的可编程输入输出接口芯片,具有3个8位的并行I/O接口,3种工作方式,可通过程序改变其功能,可以与单片机直接相连,因而使用灵活方便,通用性好,可作为单片机与多种外围设备连接时的中间接口电路。
8255A的引脚图如图2.4所示。
1、8255A各引脚功能
8255A共有40个引脚,双列直插式封装的引脚功能如下。
D7~D0:
三态双向数据线,与单片机数据总线连接,用来传送数据信息。
:
片选信号线,低电平有效,表示芯片被选中。
:
读出信号线,低电平有效,控制数据的读出。
:
写入信号线,低电平有效,控制数据的写入。
PA0~PA7:
端口A的输入/输出线。
PB0~PB7:
端口B的输入/输出线。
PC0~PC7:
端口C的输入/输出线。
RESET:
复位信号线。
若RESET=1,8255复位。
复位状态控制寄存器被清除,A,B,C口被置为输入方式。
A1~A0:
地址线,用来选择8255A内部端口。
图2.48255A引脚图
2、8255A内部各部分功能
8255A的内部包括3个并行数据输入/输出端口,2个工作方式控制电路,一个读/
写控制逻辑电路和8位总线缓冲器。
各部分功能概括如下。
(1)端口A、B、C
8255A有3个8位并行口,即A、B和C,都可以选择作为输入或输出工作方式,
每个并行口都具有一个8位数据输出锁存器/缓冲器,一个8位数据输入锁存器。
但在功
能和结构上有些差异。
A口、B口作为数据输入/输出端口,C口既可以作为输入/输出端口使用,又可以
在软件的控制下,分为两个4位的端口,作为A口、B口选通方式操作时的控制信号。
(2)工作方式控制电路
工作方式控制电路包括A组控制电路和B组控制电路。
两组控制电路共用一个控
制命令寄存器,用来接收CPU发来的控制字,以决定两组端口的工作方式,也可以根
据控制字的要求对C口按位清0或者按位置1。
A组控制电路用来控制A口和C口的上半部分(PC7~PC4)。
B组控制电路用来控
制B口和C口的下半部分(PC3~PC0)。
(3)数据总线缓冲器
数据总线缓冲器是一个三态双向8位缓冲器,作为8255A与系统总线之间的接口,用来传送数据、指令、控制命令以及外部状态信息。
(4)读/写控制逻辑电路
读/写控制逻辑电路接收CPU发来的控制信号RD,WR,RESET以及地址信号A1~A0等,然后根据控制信号的要求,将端口数据读出,送到CPU;或者将CPU送来的数据写入端口。
各端口的工作状态如下表所示。
表2.38255A端口的操作状态
端口地址选择
操作选择
CPU操作功能
CS
A1
A0
所选端口
RD
WR
0(选中)
0
0
A口
0
1
读A口内容
0
1
B口
0
1
读B口内容
1
0
C口
0
1
读C口内容
0
0
A口
1
0
写入A口
0
1
B口
1
0
写入B口
1
0
C口
1
0
写入C口
1
1
控制寄存器
1
0
写入控制字
1
X
X
未选中
X
X
D0~D7三态
3、8255A的工作方式
8255A有3种基本