自动售货机系统设计.docx
《自动售货机系统设计.docx》由会员分享,可在线阅读,更多相关《自动售货机系统设计.docx(36页珍藏版)》请在冰豆网上搜索。
自动售货机系统设计
自动售货机系统设计
摘要:
自动售货机越来越多的出现在人们的视线当中,主要因为自动售货机不受任何场地,时间限制,而且方便快捷,操作简单。
本文介绍一款以单片机AT89S52模块为核心的自动售货机系统,系统采用独立式4×4键盘模块实现货物选择、货币面值选择及找零功能,LED模块根据当前货币面值,提示出可购买的货物种类,LCD1602液晶模块将消费者在当前售货机上的购物信息显示出来。
通过多次系统测试表明,该系统操作简单方便,交互性强,易于实现。
关键词:
自动售货机;控制系统;AT89S52;LCD显示
Thedesignofvendingmachinesystem
Abstract:
vendingmachinemoreandmoreappearinthelineofsightofpeople,mainlybecauseofthevendingmachinewithoutanyspace,timeconstraints,andconvenient,simpleoperation.Thispaperintroducesasingle-chipAT89S52moduleasthecoreofthevendingmachinesystem,systemusesanindependenttype4×4keyboardmodulechoiceofgoods,currencyofdenominationchoiceandchangefunction,theLEDmoduleaccordingtothecurrencyofdenominationthatcanbuygoods,LCD1602LCDmodulewillconsumersshoppinginformationdisplayedinthevendingmachines.Thatmanytimesthroughthesystemtest,thissystemissimpleandconvenientoperation,stronginteraction,easytorealize.
Keywords:
vendingmachine;controlsystem;AT89S52;LCDdisplay
前言
自动售货机最早出现在二十世纪五、六十年代的西欧,英国是较早实行自动售货机售货的国家之一。
1942年,在食品销售中首先推广了自动售货的销售方式。
1950年,英国食品杂货行有500家商家采用自动售货机售货。
1969年,采用自动售货机售货的商家增加到23000家,销售的商品扩展到文化用品、唱片、香烟、食品等多个方面。
进入70年代后,约有40多万家香烟、饮料店采用自动售货机售货。
1980年英国有50余万台自动售货机,年销售额达8.81亿英镑。
70年代后,日本、美欧等发达国家和地区自动售货机迅猛发展,短短30年的时间,发达国家自动售货机产业已发展到相当大的规模。
自动售货机被广泛地分放于车站、油站、码头、机场、宾馆、写字楼、娱乐场所及大街小巷和公路旁,人们通过自动售货机可以买到食品、香烟、饮料、报纸、票、卡甚至鲜花和小宠物等物品。
自动售货机实现了商品需求化、性能多样化的发展,又由原来只能出售有限商品品种,转变为继百货公司、超级市场、便民店之后,以消费者与售货机“一对一”自动售货的无店铺销售业态。
自动售货,给人们的生活带来了极大的方便。
从广义上来说自动售货机就是投入硬币、纸币、信用卡等以后,便可以销售商品的机械,从狭义来讲就是自动销售商品的机械。
从供给的条件上来看,自动售货机可以充分补充人力资源的不足,适应消费环境和消费模式的变化,24小时无人售货的系统可以更省力,运营时需要的资本少、面积小,有吸引人们购买的自身性能,可以很好地解决人工费用上升的问题等多种优点。
自动售货机的分布密度高,满足了消费者的便利性和即时性需求。
随着人们生活方式向快节奏、高效率变化,时间的价值显著提高,消费者在购物时更加注重便利性、即时性。
随着自动售货机数量的增加,商品包装的定量化和标准化,出售的商品多样化,自动售货的便利性日益显现。
同时,被称为“永不下班的超级营业员”的自动售货机在满足人们的即时性需求方面是其它零售方式不可替代的。
现在,自动售货机产业正在走向信息化,并进一步实现合理化。
同时因经济复苏缓慢,社会对扩大就业与工作场所提供茶点饮料的福利事业更为关注。
自动售货机不仅保障了惬意的工休时间,也是最廉价、提高职工工作效率最有效的手段。
特别是在24小时无休工作状态中的办公场所,使用独具魅力的迷你型饮料冲饮机,解决了不间断提供咖啡饮品服务的问题,这种服务加速了自动售货机与咖啡饮品服务的融合。
随着劳动密集性的产业构造向技术密集型社会转变,自动售货机也随之出现在人们的视线当中。
它的产生为许多人群密集的交易场所提供了新的途径。
自动售货机不受任何场地限制,时间限制而且方便快捷,操作简单。
零售业各业态日趋激烈的竞争,使得商家不断寻求新的投资机会,而自动售货业态恰好符合投资的风险——收益原则。
由于自动售货机的销售效率高(平均每台自动售货机销售额达到1万美元),运营商规模大(一般拥有10多万台甚至100多万台),加上自动售货机本身具有的节约劳动力与场地等优势,从而降低了经营成本,提高了投资收益,满足了运营商获取高收益的需求。
专家预测,未来几年中国市场上的自动售货机将每年增加5-10万台。
中国沿海比较富裕的地区,将大约有3.5亿人口经常使用自动售货机。
目前按人均台数计算,自动售货机在日本达到每台25人,在美国达到每台50-60人,在欧洲每台50-120人,而中国的人均拥有量却很低,若按每台500人计算,中国城市人口3.6亿,中国自动售货机的潜在容量为73万台,以每天销售200元计,73万台自动售货机的全年销售额可达500亿。
因此加快发展中国自动售货业,对提高投资效益具有重要的意义。
为防止地球暖化,自动售货机的开发致力于能源的节省,节能型清凉饮料自动售货机成为该行业的主流。
在夏季电力消费高峰时,这种机型的自动售货机即使在关掉冷却器的状况下也能保持低温,与以往的自动售货机相比,它能够节约10-15%的电力。
进入21世纪时,自动售货机也将进一步向节省资源和能源以及高功能化的方向发展。
自动售货机作为自动化商业机械的代表被广泛应用于公共场所,它是中国生产技术机械化、智能化和自动化的体现。
自动售货机的诞生完善了市政的建设,符合现代化建设的需要,提高了经济活动效率,节约劳动力,把有限的人力物力集中到其他资源上。
相信随着社会的发展,人们对于生活高效性的重视也会逐渐提高,自动售货机也会受到更多人的关注和喜爱。
第1章系统总体设计
1.1自动售货机工作流程
自动售货机是集光、机、电一体化的独立机构,只需要顾客投币和按购物键选择即可自动售货及退找零钱,其工作程序流程如图1-1所示。
图1-1自动售货机工作程序流程图
由图1-1可以看出,操作自动售货机基本流程如下:
1、从投币口送入货币,然后通过传感器采集数据、识别器判断货币的真伪并判别面值。
2、识别器把信息数据传给通信模块。
3、通信模块与售货机的主控系统通信,主控系统显示面值,启动售货机的面板键并等待顾客按键选择商品。
4、顾客选择商品后,售货机自动把商品送出,等待顾客取走。
5、显示余额,如果金额足够多,顾客可以选择找币或者继续买商品;如果款额不够,售货机予以退币。
6、系统复零,完成售货
由于系统的局限性,本次设计由按键来替代货币的投入动作,分别有一角、五角,一元3种投币金额,使用AT89S52为系统的核心,完成投币、金额计算、清零等操作,使用LCD1602来进行显示。
1.2系统硬件设计
依据上述自动售货机的工作程序,本次自动售货机的设计主要包括货币投入、选择货物、显示、货物输出、退币以及单片机控制模块等。
图1-2硬件框图
在图1-2中,各模块的主要作用如下:
1、单片机控制模块:
设计采用AT89S52单片机,主要完成各种信号处理。
2、货币投入:
投币的币值主要有1角、5角,1元共3种,在本次设计中由按键来实现3种投币动作,每按下一次按键代表投一次货币,之后通过AT89S52处理再显示到LED上。
3、选择货物:
本次设计采用三个按键完成货物选择的模拟操作,本次设计可供选择的货物有3种,分别是1元的矿泉水、2元的可乐、2.5元的冰红茶,使用3个按键来完成选择。
4、显示:
设计采用LCD1602液晶显示器显示消费、投币、找零等信息。
5、货物输出:
使用LED指示灯来表示货物输出。
6、退币:
使用按键来模拟退币操作,按下按键后总金额清零。
1.3系统软件设计
图1-3软件设计流程图
软件设计流程图如图1-3所示。
首先,LCD进行初始化设置,顾客从投币口送入货币,自动售货机扫描键盘获取键值并加以计算,通过LCD液晶屏幕显示面值,自动售货机根据顾客投入不同的面值启动售货机不同的面板键,并等待顾客按键选择商品。
顾客选择商品后,售货机自动把商品送出,等待顾客取走,自动售货机显示余额并找零。
系统复零,完成售货。
1.4主要功能及技术指标
本课题设计的具体工作任务如下:
售货机可以出售矿泉水1元、可乐2元、冰红茶2.5元。
此售货机可投入1角、5角和1元硬币,当投入的硬币总值超过1元时,矿泉水灯亮;当投入的硬币总值超过2元时,矿泉水灯和可乐灯亮;当投入的硬币总值超过2.5元时,矿泉水灯、可乐灯和冰红茶灯亮。
当按键矿泉水灯亮时,按动矿泉水按键,开始售货,同时矿泉水灯闪3s后熄灭。
可乐和冰红茶售货与矿泉水售货相同,本系统可以进行找零,找零时三个LED灯全闪。
第2章硬件电路设计
2.1单片机控制模块
2.1.1单片机AT89S52简介
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。
图2-1AT89S52芯片引脚图
1、AT89S52主要性能参数:
(1)与MCS-51单片机的产品兼容;
(2)8K字节在系统可编程Flash存储器;
(3)全静态操作:
0Hz-33MHz;
(4)三级加密程序存储器;
(5)32个可编程I/O口线;
(6)三个16位定时器/计数器;
(7)六个中断源;
(8)低功耗空闲和掉电模式;
(9)掉电后中断可唤醒;
(10)看门狗定时器;
(11)双数据指针;
(12)掉电标识符。
2、AT89S52引脚说明:
VCC:
电源端。
GND:
接地。
P0口:
P0口是一个8位漏极开路的双向I/0口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0不具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX)。
在flash编程和校验时,P1口接收低8位的地址字节。
引脚号第二功能:
P1.0T2(定时器/计数器T2的外部计数输入),时钟输出;
P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制);
P1.5MOSI(在系统编程用);
P1.6MISO(在系统编程用);
P1.7SCK(在系统编程用);
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。
在访问外部程序存储器或用16位地址读取外部数据存储器时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电平。
P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。
在flash编程和校验时,P3口也接收一些控制信号。
端口引脚第二功能:
P3.0RXD(串行输入口);
P3.1TXD(串行输出口);
P3.2INTO(外中断0);
P3.3INT1(外中断1);
P3.4TO(定时/计数器0);
P3.5T1(定时/计数器1);
P3.6WR(外部数据存储器写选通);
P3.7RD(外部数据存储器读选通);
此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。
并不是所有的地址都被定义了,片上没有被定义的地址是不能用的。
读取这些地址会得到一个随机的数据,这个数据写入程序会无效,复位以后,这些都会被置为“0”。
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。
ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条指令才能将ALE激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN:
程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP:
外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。
需要注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。
FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
2.1.2单片机最小系统设计
单片机最小系统,或者称为最小应用系统,对于AT89S52单片机来说,最小系统一般应该包括:
单片机模块、时钟模块及复位模块。
1、时钟模块。
时钟电路就像是单片机的心脏,没有时钟电路来驱动单片机,单片机无法执行程序,它为单片机产生时钟信号。
原理图如图2-2所示:
图2-2时钟电路图
图2-2中,利用芯片内部振荡电路,在XTAL1,XTAL2的引脚上外接定时元件,内部振荡器便能产生自激振荡。
本次设计选择12MHz的晶体,每个机器周期为1us。
电容一般选择20PF,本系统电容选择22pF。
电容C1,C2的大小对振荡频率有微小影响,可起频率微调作用。
2、复位模块。
无论用户使用哪种类型的单片机,总要涉及到单片机复位电路的设计。
而单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。
许多用户在设计完单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的。
单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。
89系列单片机的复位信号是从RST引脚输入到芯片内的触发器中的。
当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期以上,则CPU就可以响应并将系统复位。
复位原理图如图2-3所示:
图2-3复位电路
图2-3中,上电后,VCC对电容C1充电,C1端的电流达到最大,此时,电容C1相当于短路,复位端为高电平,单片机自动复位。
复位要求RST上加高电平的时间为2个机器周期以上,本系统中晶振为12MHz,则每个机器周期为1us。
当电容C1两端的电压达到电源电压时,流过C1的电流变为0,此时复位端降为低电平,单片机开始正常工作。
复位时间为:
(2-1)
由公式(2-1)可知
为1ms,值远大于2us,满足复位要求。
当按下按键S0后,RST直接通过R2和VCC相连,此时复位端RST为高电平,电容C1短路放电,放电完成之后,系统开始正常工作。
只要复位端持续高电平两个机器周期以上,就可以保证可靠复位。
2.2按键输入模块
2.2.14×4矩阵键盘的工作原理
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成4*4=16个按键,比直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。
由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。
这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。
行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。
如图2-4为矩阵键盘电路图,列线接P1.4-P1.7,行线接P1.0-P1.3。
图2-4矩阵键盘电路图
图2-5按键排列
图2-4中,P1.4-P1.7为4×4键盘的列扫描线,P1.0-P1.3为4×4键盘的行扫描线。
行列式键盘的操作一般完成两个任务,一是检测是否有键被按下,二是识别被按下的键是哪一个。
一般会采用行列扫描法,可以同时完成上述两项任务。
基本的扫描原理是:
先使行扫描线输出高电平,然后读取列扫描线的状态,得到与按键横向位置对应的4位列码;如果是有键被按下时,则对应的列扫描线必然会被读回高电平,如果是无键盘按下时,则读取的列码必定全是0。
这也就可以判断有无按键的按下了。
一旦检测到有键按下时,还需要有一个延时消除抖动的操作,以消除按键时带有的抖动信号;一般延时在12ms左右即可。
延时后,如还能检测到有按键按下,则可确定当前是有键按下,可进入获取键值的操作。
获取键值时,采用行列依次扫描的方法。
首先使第一行扫描线输出高电平,其它的行扫描线输出低电平,然后读取列扫描线的状态,得到列码;如果本行无键按下,则得到的列码为全0,并扫描下一行;如本行有键按下,则会读取到对应的列码值,并退出扫描,进行键值计算。
当第一行扫描没有检测到按键时,则扫描下一行,即使第二行扫描线输出高电平,其它行扫描线输出低电平,其它与前面所述类似。
在行列扫描时,可以用一个变量记录下当前扫描的行号,在计算键值时可以利用此行号以及列码得知是哪一行、哪一列上的按键按下了。
2.3输出显示模块
2.3.1LCD显示模块的设计
为了让顾客看到购物的整个过程,设计添加了LCD显示电路,具体电路如图2-6所示:
图2-6LCD显示电路
图2-6中,AT89S52芯片的P2.5,P2.6,P2.7作为LCD1602显示器的控制口。
P2.5接RS端,RS为1时,进行数据操作,RS为0时进行指令操作;P2.6接RW端,RW为1时,进行读操作,RW为0时进行写操作;P2.7接E使能端,E为1时使能端拉高,E为0时,使能端拉低;把P0口作为数据输出,P0.0-P0.7接D0-D7端口,D0-D7为8位双向数据端。
15-16为空脚或背光电源,15为背光正极,16为背光负极。
电路中还加了一个10K的可调变阻器W1,因为3号脚为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”。
2.3.2LED显示模块的设计
为了使售货机能够根据当前投入币值指示出可售物品状态,系统设计添加了LED显示电路,具体电路如图2-7所示:
图2-7LCD显示电路
图2-7中,D2表示矿泉水,D3表示可乐,D4表示冰红茶;D2,D3,D4分别与单片机P2.0口,P2.1口,P2.2口相连,单片机三个端口P2.0,P2.1,P2.2输出为低电平时点亮,R3,R4,R5这三个电阻的作用是限流。
2.4电源模块
2.4.1LM7805简介
电子产品中,常见的三端稳压集成电路有正电压输出的LM7805系列和负电压输出的LM7905系列。
顾名思义,三端IC是指这种稳压用的集成电路,只有三条引脚输出,分别是输入端、接地端和输出端。
它的样子像是普通的三极管,TO-220的标准封装。
三端稳压集成电路LM7805如图2-8所示。
图2-8LM7805
用LM7805系列三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。
该系列集成稳压IC型号中LM78后面的数字代表该三端集成稳压电路的输出电压,如LM7805表示输出电压为正5V。
2.4.25V直流稳压电源设计
为了给单片机模块,时钟模块及复位模块供电,本次设计添加了5V直流稳压电源设计。
电路原理图如图2-9所示:
图2-9直流稳压电路
图2-9中,交流220V电压经过6v/10w的变压器T1降压成7.6v的交流电压。
桥式整流电路是利用二极管的单向导通性进行整流的最常用的电路,常用来将交流电转变为直流电。
电路中采用D1,D2,D3,D4四个二极管,互相接成桥式结构。
利用二极管的电流单向导通作用,在交流输入电压的正半周内,二极管D1、D3导通,D2、D4截止,在负载上得到上正下负的输出电压;在负半周内,正好相反,D1、D3截止,D2、D4导通,流过负载的电流方向与正半周一致。
因此,利用变压器的一个副边绕组和四个二极管,使得在交流电源的正、负半周内,整流电路的负载上都有方向不变的脉动直流电压和电流。
通过C1滤波之后,经过LM7805稳压成5V的直流电压。
再通过C2高通滤波,C3低通滤波使电压更为稳定。
该稳压电源设计简单方便,但也有不足,就是电路温度会升高,对电路的保护要求更高,但在这里足够了。
第3章系统软件设计
3.1程序的设计思想
本次程序的设计思想是在主程序一开始就进行初始化子程序的操作,然后开始进行按键扫描,等待按键按下,再进入相应的子程序从而完成相应的操作。
下面就介绍一下主程序和重要子程序。
3.2主程序流程图
主程序流程图如图3-1所示:
图3-1主程序流程图
图3-1为主程序流程图。
首先,系统对LCD1602进行初始化设置,对系统设置初值。
自动售货机判断顾客是否投币,当顾客投币满1元时,矿泉水指示灯亮并启动矿泉水按键;当顾客投币满2元时,矿泉水和可乐指示灯亮并启动矿泉水和可乐按键;