基于单片机的自动售货系统设计.docx
《基于单片机的自动售货系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的自动售货系统设计.docx(25页珍藏版)》请在冰豆网上搜索。
基于单片机的自动售货系统设计
毕业论文(设计)
题目基于单片机的自动售货系统设计
学生姓名
学号
学院电子与信息工程学院
专业电子信息工程
指导教师
二O一九年五月十二日
基于单片机的自动售货系统设计
摘要:
现如今,中国经济逐步获得相对稳定的蓬勃发展,人们愈加表现出多样化消费方式,开始考虑消费的便利性、及时性。
由于不受到时间和地点的限制,自动售货机获得了广泛使用。
本设计是在单片机基础上实现自动售货机系统设计的主要内容,采用LCD12864作为显示输出,向用户展示商品价格和有无存货等信息,用户通过按键选择商品,进入交易界面,采用电涡流传感器对硬币进行识别,如果未在规定时间内完成交易,触发报警并退回金额,若规定时间内完成投币,系统驱动步进电机推出商品。
实现了商品信息显示、投币检测、商品选择、退币以及步进电机推出商品的功能,最终实现自动售货的功能。
关键词:
STC89C52,自动售货机,投币检测,LCD12864显示,步进电机
VendingMachineSystemBasedOnSinglechip
Weihui
Schoolofelectronicandinformationengineering,NUIST,Nanjing210044,China
Abstract:
Withthedevelopmentofsocialeconomy,people'sconsumptionmodehasalsoundergonegreatchanges,andtheybegintoconsidertheconvenienceandtimelinessofconsumption.Vendingmachinesarewidelyusedbecausetheyarenotlimitedbytimeorplace.Thevendingmachineofthisdesignisbasedonsinglechipmicrocomputerdesign,usingLCD12864asdisplayoutput,toshowtheuserinformationsuchascommoditypricesandonavailability,theuserthroughtheselectionofkeycommodities,tradeintotheinterface,theeddycurrentsensorisadoptedtocoinidentification,ifyoudonotcompletethetransactionwithinthetimerequired,triggerthealarmandreturnamount,ontimecompletioncoin,systemdriversteppermotorlaunch.Itrealizesthefunctionsofcommodityinformationdisplay,coindetection,commodityselection,coinrefundandsteppingmotortolaunchcommodities,andfinallyrealizesthefunctionofautomaticsales.
Keywords:
STC89C52,VendingMachine,Coindetection,LCD12864Display,Steppingmotor
1绪论
1.1基于单片机的自动售货系统的研究背景及意义
近年来,随着国家经济的进步和科技的快速发展,人们的生活节奏不断加快。
方便快捷的网络以及交通工具的跟新迭代,使得电子商务和快递行业飞速发展,人们的消费习惯发生了巨大的变化,冲击了传统的连锁零售产业,迫使新的销售渠道的出现[1]。
基于商品快速发展的社会环境下,人们的时间观念逐渐加重,怎么样才能快速购买到所需商品,该问题也是诸多商家与客户共同面临的问题。
当下,由于人们的生活质量与日俱增,并且各种类型的科学技术逐步获得相对稳定的迅猛发展,故而自动售货机应运而生,满足人们个性化以及多元化的需求。
与此同时,这种自助式购物还有效契合科技日益发展的实际需求,可帮助各类人群追求社会高品质的生活。
在国内,已经普及了自动售货机的应用,且成为了城市化文明程度高的重点标志。
在此背景下,自动售货机逐渐在多样化公共场所当中,获得相对广泛的实际应用。
其充分体现出了国内生产技术的机械化、自动化以及智能化。
从广义性来说,这是一种投入信用卡、纸币以及硬币等就能实现销售商品的设备,从狭义性来看,实际属于自动销售商品的一种机械设备。
若基于供给角度进行观察,则自动售货机实则可深入反映出人力资源方面,而存在的一系列亟待解决的根本问题,并能由于消费模式的变更,而产生相应的改变。
例如:
无人售货系统能够24h为人们提供服务,不仅占地面积小、降低运营成本、还能节省人力物力,可以激发消费者的购买欲望,解决人工成本高等问题。
可以说,自从自动售货机出现以后,进一步完善了市场建设,促进了经济活力,并将有限的人力资源集成到了其他资源上,整体而言,满足现代化建设需求。
目前,我国许多城市的已经普及了自动售货机,自动售货机在城市中的使用也已经超过万计,自动售货机的需求量相当庞大。
随着社会的逐步完善,以及对更高生活品质的追求,这个数字必然继续增长。
1.2国内外发展现状
自动售货已经成为商品零售行业的重要组成部分,公元前三世纪,自动售货机的雏形出现,人们使用投币式的机器出售饮用水。
十七世纪初,人们逐步研发出各种类型的自动售货机,并借助其来贩卖香烟。
值得一提是,自第二次世界大战结束时,多样化自动售货机逐步获得相对广泛的实际应用。
20世纪50年代,通过投币果汁被注射到杯子里贩卖,受到了人们的追捧。
二十世纪六七十年代,美国的可口可乐公司掀起了以自动售货机为主要销售手段的销售革命,并成功进入日本市场。
在二十世纪八十年代,在欧美日等发达国家遍布了自动售货机的应用,并且逐渐扩散到世界各地,其主要分布在西欧等发达国家[2]。
目前,日本的自动售货行业是世界上最得到广泛认可的,日本的自动售货行业起步早、发展成熟。
到目前为止,日本已经安装了超过500万台自动售货机,人均产量居世界首位,但近几年日本的自动售货机市场趋于饱和且有下降的趋势。
在日本,自动售货机遍布大街小巷,甚至在一些偏远到的乡镇,都能看到自动售货机的影子。
并且在日本的自动售货机贩卖的商品中,包含了生活中各种琐碎的商品,甚至包含了限量发售的商品都可以在自动售货机中找到踪迹。
关于欧美国家自动售货机行业,官方提供了大量丰富的数据,通过网络,人们可以查询到精准无误的数据,且数据具有更新速度快、分类统计的数据明确等特点[3]。
中国自动售货机市场处于发展的初期阶段,没有达到规模化、秩序化的程度。
自动售货机点位的分布多位于经济发达的沿海地区。
贩卖的商品种类有限,能给予大众的方便有待拓展。
近几年出现的无人货架、无人超市丰富了自动售货机发展功能。
通过相关数据统计知悉,在2016年中,我国拥有的自动售货机数量大概为19万台,总销售额约为75亿RMB[4]。
我国的自动售货机出口数量大,行业整体的发展缓慢,虽然近几年我国的自动售货机制造商逐渐递增,总生产机器数量多,不过实际投入我国市场的数量却不到总生产总量的2/1。
对于我国而言,从事自动售货机生产的商家多数依赖出口获得相应利润。
从该点可以看出,国内具备的自动售货机生产技术得到了他国的认可,国内自动售货机行业要走的还很长;同时也表明,我国自动售货机市场尚未成熟,自动售货机还并未被国人完全认可,在市场上,难以实现大量投放,因此造成我国自用售货机的数量远不比出口多。
所以,需要进一步拓展国内的自动售货机市场,加大自动售货机的内销需求。
和其他国家相比,国内发展自动售货机市场较晚,且动力不足,需要结合以往经验,探索出一条适合自动售货机发展的道路。
近年来,随着国内电子支付形式的普及,将会进一步推动自动售货机的发展。
1.3论文的主要工作
本次论文主要设计了一个基于51单片机具有商品出售功能和货物添加功能的自动售货系统。
本系统的主要作用就是通过LCD12864将商品价格和商品是否有货告知顾客,通过按键选择商品,经过投币的检测,若在规定时间内未能完成相应金额的投币,系统退出交易界面并触发蜂鸣器,退回已投入金额。
若在规定时间内完成相应金额的投币,触发电机旋转推出用户购买的商品并退回找零的金额的目的。
本文旨在以自动售货机为研究对象,对其基本背景及其全球现状,进行相对深入的细致阐述,并涉及到系统整体设计、硬件电路设计、程序的设计、论文的总结等内容。
本论文具体设计主要以单片机作控制器,包括LCD显示模块、硬币检测模块、蜂鸣器报警、步进电机模块、矩阵键盘模块的外围电路。
设计实现的具体过程可以描述为:
由LCD显示置于单片机内商品的信息,使用键盘选择商品,LCD显示模块进入商品交易界面,检测投币模块检测投币信息反馈进入单片机,由单片机控制驱动报警模块提示顾客并未进行支付,亦或为将已支付商品提供给客户。
2自动售货系统整体设计
2.1整体设计要求
1)成功研发出科学完善的自动售货机系统。
2)以按键选择商品,通过硬币检测,并显示商品价格与是否有货、投币金额等信息。
3)选择商品后,在规定时间内投币金额超过已选择商品价格时,驱动电机模块,售出商品。
4)选择商品后,基于拟定的时间范围当中,如果所投金额小于商品的定价金额,则系统将会自动报警,并径直返回至相应的初始界面。
5)可基于选择恰当适宜的按键,来对某特定商品进行适当补充。
2.2方案选择
2.2.1检空方案选择
方案一:
采用软件控制法,在自动售货机程序设计中,通过LCD12864显示商品数目,进行商品数量的累计,通过按键进行货物补充时,商品计数的增加,每当商品出售一次,累计数目进行自减,当商品数量达到零时,商品数目无法进行自减,在屏幕上显示商品数量为零,停止该商品出售,在按下该商品对应按钮时,依旧无法进行商品的购买。
方案二:
接触开关检空法,在商品存储的通道下方安装行程接触开关,存储通道上的商品下压行程开关,检测存储通道上的行程开关的闭合与断开,向单片机发出信号,得到开关上方是否有货物的讯息;当商品出售完毕时,行程开关被释放,此种商品停止出售,在按下该商品按钮时,依旧无法进入商品购买界面。
结合上述的综合分析,方案二增加了整体电路的复杂程度,在后续的电路调试以及维修中增加了工作量。
在每一种商品储存通道下方安装接触行程开关,考虑到设计成本的原因,所以本设计采用方案一,即采用软件控制的方法。
2.2.2推进方案选择
方案一:
直流电机作推进,利用直流电机的起动反应迅速,速度调节性能好,速度调整范围大且扭矩较大的优点,由于直流电机的调速方式使用全控制性的开关功率元件进行脉宽调制,使用单片机控制脉宽调制调速,实现小功率直流电机的转速调节。
方案二:
以步进电机作推进,不仅电机具有着非常高的精度,将可针对转动距角进行科学有效的精准把控,据此所成功构建出的位置控制系统,不仅可以实现科学精准的定位,而且无需耗费较长的稳定时间。
此外,本文还借助于单片机的作用,针对步进电动机进行行之有效的精准控制,无需进行数/摸转换,实用性较高。
采用合理的驱动控制器,可以方便控制,很容易构成数字位置控制系统。
结合上述分析,本次设计需要对推出电机进行调速,调速范围在1000-5500转,运行的转速与预先设定的转速差小于20转每分钟。
考虑到推出商品和推出商品后需要进行反转电机,步进电机的正反转动灵敏度高,拥有更长的使用寿命,本设计采用方案二,使用步进电机作为推进装置。
2.3硬币识别介绍
现如今,全球现有绝大部分硬币识别器,均借助于硬币电磁技术的作用,来针对硬币的真伪性进行相对深入的细致验证。
而在此设备中,至关重要的元件即为电涡流式传感器。
在进行操作时,其旨在借助于电涡流效应的作用,来针对金属硬币进行科学合理的细致检测,这种方式具有着体积小、精度高、应用范围广、无需接触硬币就能实现检测等优点。
结合上述优点可知,现有的电涡流式传感器已经被广泛应用到测控技术中,主要被用在硬币厚度、硬度、振动以及转速等相关参数的测量[5]。
硬币面值不同,其所使用的尺寸、大小以及材质都不一样,因此,如果各种类型的硬币,经由电涡流传感器自身表面的情况下,将会产生差异性的涡流效应,来使得传感器所含有的等效电阻发生相应的改变,以此达到精准识别的效果。
值得一提的是,电涡流传感器自身的电感等相关参数,将会基于交变磁场内部所涉及的导体尺寸等若干参数的变动,而产生相应的变化。
图2.1电涡流传感器原理图
图2-1表示的是电涡流传感器原图。
金属硬币贯穿固定磁场时,金属硬币中会产生闭合感应电流,所以,通常情况下,此种感应电流又被叫做是电涡流。
此类电涡流将会形成变磁场,干预外磁场的变化,引发电涡流传感器的品质因数Q、等效电感L、等效电阻Z值产生变化。
所以当被测物体的磁导率、电导率以及线圈的激励频率f和被测体之间的距离d发生变化时,就会造成传感器的品质因数Q、等效电感L以及等效电阻Z值发生改变[6]。
通常情况下,常规的电涡流传感器的激励频率f不会发生变化,所以,在确保三大参数因数中的两个不变的前提下,就能够将其他参数转化为传感器的等效电感L、等效阻抗Z、Q值。
若测试硬币材质完全一致,则硬币磁导率和电导率将保持恒定,故而电涡流传感器的输出值则代表传感器与被测体间距离d的函数,据此将可求得硬币尺寸、位移、振动幅度等,如果d保持恒定,则传感器输出值将会与磁导率、电导率表现出函数关系,据此将能测算硬币金属磁导率、电导率以及硬度等。
本次设计在进行识别时,主要应用的是LSS6复合型硬币识别器,将硬币投入到识别器中后,在电容电感的作用下,硬币就会产生高频振动磁场,因为所投入的硬币体积以及材质等方面的不同,所以电感量会出现一定差异,最终就会对震荡频率所有干预,另外,电感量会发生微弱变化,从而对震荡频率进行更改。
LSS6识币器中含有红外传感器等基本功能,能够用来对硬币的材质及其直径等进行深入检测。
2.4步进电机选择
2.4.1步进电机介绍
步进电机实际上是一种把电脉冲信号转化为角位移的开环控制电机,可以说,是当前的数字类控制系统中极为关键的一种元件,在工业领域已经普及应用。
[7]步进电机正常运行时,在不出现堵转或者是发生丢失步数的前提下,外部会传输出一定时序电脉冲信号,之后进入到步进电机中,不仅电机会根据时序规则来转动固定角度问题,单个外部电脉冲信号,也仅是能够让不仅电机向着某个固定角度转动。
若想对不仅电机的运行步数和角度进行控制,只要通过控制发送给步进电机的驱动脉冲个数,最终实现步进电机的精准点位。
若想对步进电机的速度进行调整,只需对信号脉冲频率的高低进行调节即可,处于常规运行模式下,其构成的是正比关系。
由于步进电机所具备的一些优点,当下,已经被普遍应用于生产及生活中,其中包括应用于控制精度要求高的条件中,不过步进电机不同于直流电机和交流电机那样可以通过直接连接到电源就可以运行,需严格遵循通电时序进行操作。
因此,需具采用有针对性的电路对步进电机绕组通电的时序做进一步分配。
本设计主要是应用于混合式步进电机的驱动,在当前市场上,步进电机应用最多的模式是混合式,因此,本课题在进行研究时,采用的是混合式步进电机驱动技术。
这种形式下的点击内部机械结构主要由两部分组成,一是固定的定子,二是旋转的转子,转子通常是由铁材料构成的,定子分布在转子的外围,在各个定子上,均缠绕着线圈,同时,在给定子分配通电时序后,电子绕组就能够实现通电,最终构成转动磁场,实现转子向着固定角度转动。
本次设计采用的步进电机是25BY2406,电机共引出六根线,其中两根连接公共端,剩余四根黑色和橙色是电机内部的一组线圈的两个抽头,棕色黄色为另一组,只需要以一定的顺序控制两组线圈的电流方向,即可使步进电机按指定方向转动。
25BY2406可以在5~12V电压下工作,相电阻20Ω,每次推进角度为15度,最小启动转矩120g.cm,启动频率200HZ,定位转矩大于48g.cm[8]。
2.4.2驱动介绍
因为单片机输出脉冲信号较弱,单片机和步进电机无法保持连接,本次使用的步进电机工作电流小于0.5A,可以通过大功率的达林顿ULN2003芯片驱动电路控制步进电机正常工作。
ULN200的的脉冲分配器的逻辑电路由双稳态触发器和门电路组成,能有效地根据
指令把控制脉冲信号按照一定的逻辑关系添加到放大器中,从而保证步进电机可以按照相关要求进行运转。
ULN2003为新型七路高耐压、大电流达林顿晶体管驱动IC,在继电器驱动、电磁阀驱动及其步进电机驱动电路中均会应用。
ULN2003的引脚图如图2.2所示:
图2.2ULN2003引脚图
ULN2003的引脚介绍如下:
①输入引脚(7根):
1-7脚为输入引脚
②输出引脚(7根):
10-16脚为输出引脚
③公共端(1根):
9号引脚为钳位二极管公共端
④接地端(1根):
8号引脚为接地端
ULN2003内部含有七个独立的达林顿管驱动单路,单个达林顿管集电极可输出500mA电流;电路中含有着续流二极管,可驱动步进电机。
在全部达林顿管中均串联某特定的
基极电阻,基于
工作电压,将可和
电路保持连接,输入兼容TTL/CMOS逻辑信号;耐高压,VCE最高可达50V;步进电机为四相步进电机,基于直流电源实现供电,步进电机的各相绕组仅需基于科学时序保持通电,即可促进步进电机进行转动。
2.5自动售货系统的整体设计方案
此次自动售货机设计将满足一下几点要求:
LCD12864将预先设定的商品信息提供给顾客,顾客通过按键选择自己所需要的商品,若商品数量为零时,顾客无法选择该项商品。
选好商品后,LCD12864进入交易界面,以按键代替投币的形式,顾客进行投币。
在规定时间内未完成对应金额的投币时,交易终止,蜂鸣器报警,将顾客已投入金额退还给顾客。
如果在规定时间呢完成对应金额的投币,驱动步进电机推出商品,同时将顾客投入金额的多余部分退还给顾客。
系统对已售出商品数量进行自减,完成自动售货并回到初始界面。
自动售货机的具体结构图见以下2.3:
图2.3自动售货机结构图
3.1主控设计
单片机集合处理器、ROM、RAM、定时器和I/O口设备,拥有了较为完整的功能。
总之,一个单片机就相当于一台微型计算机。
单片机在总体性能上虽然不如微型计算机,但与微型计算机相比,单片机在其他方面有其显著的优点:
体积小、编程简单、功耗低、成本低。
正是这些优点使单片机的广泛应用得到一个良好的催化作用。
综合分析,根据相关设计要求我们采用的是51系列的单片机,51系列的单片机功能全面、实际可用性强、成本低廉,根据多方面综合对比,本设计选择了STC89C52的单片机作为系统的主控部分。
单片机作为整个设计的系统的核心,在整个的系统的设计里面起到了控制器的作用,可以在电路里面处理各个需要处理的事情。
单片机的性价比很高的,对于基本的设计应景达到设计的要求,所以该种芯片很快就已经成为了市场上的主流的芯片,得到了广泛的应用。
本次设计采用的是STC89C52单片机来实现的所有的功能,其程序的存储空间对于本次设计来说以及足够了。
单片机最小系统旨在涵盖电源电路以及相应的复位电路等。
其基本电路示意图,如图3.1:
图3.1单片机最小系统
STC89C52引脚具体介绍如下:
①电源引脚(1根):
40脚外接5V电源。
②接地引脚(1根):
20脚接地。
③晶振引脚(2根):
19脚20脚外接晶振电路
④控制引脚(4根):
9脚外接复位电路;0脚实现地址锁存;29脚控制外部寄存器;31脚控制选择内外部程序储存器;
⑤I/O口(32根):
P0-P3口,数据传输引脚。
电源电路为单片机供电,可以选用USB数据线供电,也可以使用电池来供电。
本次设计采用的是USB来供电,供电比较方便,可以通过连接5V充电器或者电脑USB端口供电。
单片机的晶体震荡电路为单片机提供时钟周期,单片机访问存储器耗费时间为1个机器周期。
其涵盖12个时钟周期。
若单片机晶振为
,则时钟周期将为
,机器周期为
。
单片机复位电路即为单片机进行复位,复位对于后期调试尤为关键,当下载完成程序后,通常使用复位运行,查看程序是否运行正常。
复位电路旨在涵盖1个10uF电容与1个10K电阻。
3.2投币模块
本次设计运用到LSS6复合型硬币识别器。
当投入硬币后,硬币将会经过一个磁场,其源自电感和电容构成的电路。
因为硬币材质及其体积含有一定的特殊性,故而将会产生电感量的差异,促进震荡频率产生变化。
结合出厂设定的频率数值,与获取到的震荡频率相比较,从而得出硬币的种类。
在明确硬币种类以后,通过电路将频率信号变为电压信号,从而准确识别硬币。
关于
认币器,其由多个部分构成:
第一部分为电磁感应传感器;第二部分为声敏传感器;第三部分为红外传感器。
利用
认币器可以检测硬币的多种信息,如种类、材质、直径及厚度。
关于硬币识别电路,其由三个部分构成:
第一部分为电压检测电路;第二部分为高频脉冲电路;第三部分为倍压检测电路。
硬币识别的基本电路示意图,详见下图:
图3.2硬币识别电路
在上述电路中,利用
和
三极管将电路变为高频识别电路。
在电压检测电路中,转换器选用了
。
在电路中,单片机的P1.0引脚与1线连接在一起。
在投入硬币以后,识别器会对硬币的厚度、直径等指标进行检测,并将获取到的数值与初始值进行比较,最后利用P1.0引脚输出高频率的脉冲信号。
当单片机的高频率脉冲信号与三极管NPN基极端连通在一起以后,发射极会连通集电极、基极。
当三极管
和805获取到高频脉冲信号后变成1。
在集电极与发射极连通以后,设别器的驱动电路与系统电路会提供一个稳定的电压。
如果
基极获取了低电平,那么便不需要为识别器供电。
当
为高电平状态,表明单片机发送了高频率脉冲信号。
在投入硬币以后,识别器的电容中会多出一个金属物体,因而会产生新的磁场,将产生的磁场量与初始数值相比,从而识别出硬币。
3.3显示模块
对于本次设计来说LCD12864已经可以满足设计的要求,显示的数据完全可以进行直观的显示。
综合考虑选择液晶显示器LCD12864。
液晶显示屏在市场上的价钱便宜,功率比较低,可以显示数字和字母。
该显示屏可以直接进行编程显示,其由64行与128列液晶显示点构成。
同时,这些点形成了
阵列,并能够利用程序点的亮灭[9]。
LCD12864共计20引脚,引脚1,2,3分别接地,电源,滑阻,引脚4,5,6分别为控制端口,引脚7-14位串行数据传输引脚连接单片机,15脚和19脚连接电源,20脚接地,17脚为复位控制口,显示电路原理图如图3.3所示:
图3.3LCD显示电路图
LCD12864液晶在自动售货系统中主要负责显示预先设定的商品价格以及存货状态。
用户通过按键选择商品后,LCD12864进入交易界面,显示用户需要支付的价格,以及当前顾客投币数目,交易成功后,显示找零的数量。
3.4提示模块
在设计电子产品时,为了降低意外事故的发生概率,通常会在设计的板子上设计报警电路。
在本文的设计中,报警设备选用了蜂鸣器。
对于该报警装置而言,其编程及电路设计较为简单,所以得到了很广泛的应用。
关于单片机自带的I/O,其驱动能力较弱。
为了提高I/O口的驱动能力,必须添加一个PNP三极管,从而确保单片机可以驱动蜂鸣器,进而发出警报声。
关于添加的三极管,其主要起到两种作用: