基于单片机的自动售货机系统设计_第1页
基于单片机的自动售货机系统设计_第2页
基于单片机的自动售货机系统设计_第3页
基于单片机的自动售货机系统设计_第4页
基于单片机的自动售货机系统设计_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的自动售货机系统设计摘要随着科技的进步,生活水平的不断提高,人们对购物的关注也日益增加并且追求方便快捷的消费方式,而自动售货机的出现满足了人们的需求,它是一种非常有效的自动化技术,由于它可以不受时间、地点等条件的约束,所以受到了广泛的欢迎。因此,研制一款自动售货机系统显得尤为重要。本文设计基于单片机的自动售货机系统,分为硬件电路设计与软件设计。硬件电路设计,本系统由ST(意法半导体)公司设计和生产的STM32F103C8T6单片机为核心,根据设计功能要求,将硬件电路模块化,分为:电源模块、投币模块、电机模块、按键输入模块、OLED显示模块、报警电路模块及LED灯模块,通过按键输入模块对商品种类和数量的选择以及出货、退币的功能,用OLED显示屏模块实时显示购买的情况以及投币数量,通过LED灯模块提醒顾客哪个通道出货,用蜂鸣器和LED灯提示顾客投币不足。软件部分,根据系统需要实现的功能,运用KeilμVision5编写主程序代码,并调用各个子程序来实现自动售货机的基本功能。最后运用Proteus软件对实验电路和编写好的程序进行仿真,模拟售货过程。本文研究的自动售货机系统具有实时显示商品种类和数量以及投币数量,退币及找零,报警等功能,使得系统更加智能快捷更具有实时性,直观性。关键词:自动售货机STM32F103C8T6

目录244161.1课题的研究背景及意义 第一章绪论1.1课题的研究背景及意义自动售货这种观念是顺应时代潮流的,在人们追求快捷、便捷的同时,也产生了这种观念。这一现象的产生,是由劳动密集工业结构转向技术密集化的结果[1]。生产规模大、消费规模大、消费方式、营销方式发生变化,需要新的流通渠道;同时,超市、百货公司等新的流通渠道的出现,使得人力成本也在持续上涨;由于场地条件有限,加上购物是否方便等因素的制约,所以无人售货机就成了必不可少的设备[2]。因其占地少、运行费用低廉、管理简便、服务快速、无时间、无地域之限制而受到广大顾客及商家的青睐;与此同时,由于商铺租金的不断上涨和物价的飞速飙升,使得原本盈利不多的小卖部、便利商店等在繁华地带渐渐淡出,被自动售货机代替[3]。目前,大部分的贩卖机都分布在学校,影院,医院,车站等人群集中的区域,以其便捷、智能的购物模式,很快就赢得了年轻人的青睐。随着社会的进步,各种类型的自动售卖机也随之出现,如:饮料、零食、冰淇淋、咖啡自动售货机等,自动售货机的蓬勃发展,反映了人类的生活节奏得加快,科技得发展与提升创新是最重要的,而要生产出更能满足现代消费潮流和消费习惯的新型设备,就变得越来越重要[4]。本文是研究基于单片机控制类型的自动售货机。1.2国内外研究现状1.2.1国外研究现状在公元一世纪,希罗开发了一个能够自行售卖圣水的机械机器,这也就是世界上的第一个售货机机器[5]。一九二五年,在美国首先发明了贩卖香烟的自动售卖机[6],此外还有各种更现代的销售邮票和车票的机器。现代自动贩卖机的类型、构造、用途都多种多样,主要有糖果,饮料,报刊等。自动贩卖机在二战之后才真正流行起来。50年代流行的是“喷射式果汁贩卖机”,把果汁倒入纸杯中销售。之后,美国大型饮料企业纷纷涌入日本,在一九六二年,在零售行业掀起了一场以售货机器为主的变革。一九六七年,在100日元以下的所有钞票都被兑换为钱币,从而促进了自动贩卖机行业的发展。随着人民生活水平的不断提高,生活的速度越来越快,人们对于付款方式的追求越来越简单、便捷、流行。在加拿大,很大一部分的自动售货机已经抛弃了投硬币,取而代之的是一种先进的触控技术,这种技术可以让用户通过佩戴的类似于戒指或者钥匙上的信息按钮,将其准确的记录下来,然后将其传送给信息中心。在英国,一种专门的自动贩卖机器也被银行和信用公司开发出来。只要轻轻一拉卡,就能免去许多麻烦。到了二零零二年,英国百分之二十以上的人都有这种信用卡,可见英国的自动贩卖机是何等的受欢迎[11]。在韩国,第一个打折的“积分忠诚”项目,正在悄然地和自动售卖机行业联系在一起,通过手机或者特殊的信用卡,可以实时发送扣款、余额、打折等短信,既方便又时尚[12]。另外,柏林的公交票务系统也采用了自动售票机:它的核心部分是一块名为FeliCa的芯片,只要有了这个芯片,就可以在自己的手机上进行充值。总之,今后的自动售卖机将会向着智能化监控、节能环保、功能多样化的方向发展。1.2.2国内研究现状20世纪90年代,中国的自动售货机主要是从广东、上海等地区引进的。然而,在中国,由于人们的思维、观念和维护设备环境等原因,其发展依然比较缓慢。虽然在西方发达国家,日本,韩国已经形成了一个比较成熟的零售行业,但中国还处在一个引入阶段[13]。中国自在日本、韩国引入自动贩卖机并投入一九九二年市场以来至今已有多年了,但发展滞慢,到目前为止,仅有十多年几家开发、生产和经营公司,并且各公司发展极不均衡,在这些公司中,天津戈德公司占据了中国百分之八十的市场份额,其他公司都是零散经营。在技术水平和性能上,国内与世界先进水平还有很大差距[14]。在我国,由于支付方式单一,管理上缺乏严格的监管,成为制约我国自动运输机行业发展的一个重要因素。从最近两次在上海举行的中国国际自动售票和商务自助商品展览会上,由此可见,国外的自动贩卖机在市场上已是固若金汤。特别是在浙江省,仅有两家公司从事自动贩卖机的生产与研究。这与目前的经济发展趋势以及巨大的市场容量是不相符的。在售货机器方面,还有很大的发展空间。随着生活节奏的越来越快,人们对对电子产品的需求也在不断增加,而在购物方面,二维码已经成为了现代社会的主要支付手段,随着自动售货机的普及,人们的付款方式也要改变,不再只是单纯的用现金付款,而应该顺应时代潮流,将扫码支付的概念融入到自动售货机的各个环节,将其优势发挥到极致。二维码与自动售货机的融合,是顺应时代发展、创造便利、快速生活的重大突破。国内的自动售卖机的研究与国外相比还有很大的差距,它的功能和类型还比较单一,它的基本作用就是对所投入的货币数量进行计算,并根据计算结果作出相应的安排我国目前的自动贩卖机的设计和生产都是以单片机和PLC为基础,采用单片机占很大比例[15]。1.3主要研究内容及章节安排本本文研究了本文研究了基于单片机的自动售货机的系统的设计的基本理论,以STM32F103C8T6单片机为核心,能过让顾客自通过按键自行选择自己想要的商品种类及其数量,然后传输给单片机,并在OLED屏中实时显示操作情况,接着,顾客投币购买,投币完成后,按下出货键,系统会将投入的硬币数和购买需要的硬币数作比较,硬币数不足,则蜂鸣器报警,硬币数足够,则开始出货并找多余的硬币,结束。全文供分为六章,各章节具体内容如下:第一章:绪论。首先说明了本文的研究背景、研究意义,并简要地介绍了国内外研究的发展动向和发展前景。第二章:系统结构设计。首先,对系统的主控芯片和各个模块所需要的器件进行选择和方案论证,接着,详细介绍本系统的总体设计方案,并绘制系统总体设计框图,最后对系统工作流程进行简要概述并总结。第三章:自动售货机系统的硬件设计。首先对系统的工作原理进行简单介绍,接着再对STM32单片机、电源模块、投币模块、电机模块、按键输入模块、OLED显示模块、报警电路模块及LED灯模块分别进行详细的介绍和电路设计。第四章:自动售货机系统的软件设计。首先对系统软件的开发软件进行详细介绍,接着绘制出主系统及主要功能模块的程序流程图,并对每块程序流程图加以说明,最后对每块进行程序编写。第五章:自动售货机系统仿真。首先对系统仿真软件进行详细介绍,接着对系统各个操作阶段挨个进行仿真并说明。第六章:总结与展望。对本文的设计工作进行总结并且对自动售货机系统设计中可以改进的地方提出展望。

第二章系统结构设计2.1设计方案论证2.1.1控制模块的选择与论证方案一:选用INTEL公司生产的MCS-51系列的80C51芯片。该芯片时一款具有高稳定的8位单片机,包括CPU、RAM(128字节)、I/O(32个输入/输出)、16位定时/计数器(16位)、串行通信口、两级中断和片内时钟振荡电路。它将HMOS技术的高速、高密度特性与CHMOS低功率特性相结合,具有较强的实用性[7]。方案二:选用STM32芯片。它是由意法半导体公司开发的。这是一个以Cortex-M3为核心的ARM芯片。STM32微处理器包含了工业控制系统中的各种功能,包括USB、网络、SD卡、A/D转换、D/A转换等。最高工作频率为72MHz:芯片上集成32-512KB闪存,6-64KB的SRAM存储器[8]。通过上述两种单片机对比,STM32系列芯片是一款32位的内核芯片,而MCS-51系列的80C51只是8位CPU,运算速度STM32要更快;80C51只含有128字节的RAM,而STM32上集成了6-64KB的SRAM存储器,储存空间更大;STM32上的功能模块也比80C51更多,所以本文选用STM32系列芯片。2.1.2硬币器的选择与论证方案一:采用GD-106K型投币器。GD-106K型投币器是一元、五角专用投币器,106K属于单投型,不可退币,用户无需多加学习,出厂时已自行学习了各版本的一元和五角,可直接安装到自动售货机上使用。方案二:采用TW-2020型硬币器,TW-2020型硬币器是一元专用投币器,支持退币,内部含有记忆晶片组合,一次记忆永不丢失,支持DC5-12V液晶及机械码表,端口采用4针防反国内通用端口。通过两种投币器的比较,虽然GD-106K型投币器可识别一元及五角的硬币,但是它是单投型的,买多个商品的时候,需要多次投币购买,不能进行连续投币操作,而且它不支持退币功能,不适于本系统的设计,所以本文选用TW-2020型硬币器。2.1.3出货电机的选择与论证方案一:采用大可马品牌的推出式电机。该推出式电机运用的是模块化设计,体积小,可以承载更多的商品,空间利率高,减少了运维成本,每个货道可实现机械出货检测,机械缺货检测,出货红外检测,三重检测确保设备工作稳定。方案二:采用CY-VGMS-277弹簧电机。该弹簧式电机将电机嵌入装置内部,体积减小一大半,重量轻,安装方便,直接通过卡扣卡在自动售货机中,出货时可保证货物的稳定性,不会像别的传统电机,产生摇晃,完全保证了商品的完好性哦那个。再对两种电机对比后,推出式电机虽然有众多优势,但是本系统设计的自动售货机以售卖瓶装饮料为主,需要最大程度上保证出货的稳定性,防止商品摇晃,导致顾客购买后,带气饮料不方便打开,影响顾客消费体验。故本文选用CY-VGMS-277弹簧电机。2.2系统的总体设计方案本次设计的自动售货机以STM32F103C8T6芯片为核心,其自动控制系统以模块化方式进行设计,主要由电源电路模块、商品选择模块、投币模块、OLED显示模块、出货模块、报警模块及LED灯模块组成。其中,商品选择模块采用按键输入,方便顾客选择自己想要的商品种类及其数量;投币模块采用TW-2020型硬币器,进行顾客投币及找零;OLED显示模块采用1.3寸OLED显示屏,显示商品的种类、数量,投币数量及电机处于出货状态还是投币不足状态;出货模块采用CY-VGMS-277弹簧电机,将顾客购买的商品移出;报警模块包含声音报警和灯光报警,并以蜂鸣器的声音方式发出,同时LED灯提醒消费者投币不足;LED灯模块就采用LED灯,提示顾客从哪一个通道出货。整个系统的总体设计框图,如图2.1所示。图2.1系统总体设计框图2.3系统工作流程设计本文设计的自动售货机具体的工作流程如下:(1)通过按键选择购买商品的种类及数量,并在OLED显示屏中显示总金额;(2)投入硬币,硬币数也直接显示在OLED屏中;(3)若投入金额足够,点击出货按钮,开始出货并找零;(4)如投入的硬币不够,蜂鸣器报警提示,可选择继续支付或退币;(5)完成交易后,系统将恢复初始界面。系统工作流程图,如图2.2所示。图2.2系统工作流程图2.4本章小结在对自动售货机的基础上,对各个功能模块进行了介绍和验证,并对整个系统进行了详细的设计,并给出了系统的整体结构框图,并对所设计的自动售货机的工作过程进行了描述。

第三章自动售货机系统的硬件设计本文所研究的自动售货机系统,系统硬件由STM32单片机、电源模块、投币模块、电机模块、按键输入模块、OLED显示模块、报警电路模块及LED灯模块等部分组成。该系统采用AC220v电源供电,通过S-50-24直流开关电源,将AC220V转换成DC24V[16],DC24V可以给售货机货物电机模块供电。电源模块中还有内部电池供电的单输出升压转换器,可输出DC12V电压,为售货机的硬币器供电,DC12V再由AMS1117-5V降压芯片转化为DC5V,再由AMS1117-3.3V降压芯片将DC5V的电压转化为DC3.3V。模块化设计能简化系统的设计,减少系统的功耗,简化运行,通过OLED显示屏顾客可直观地选择自己想要的商品。自动售货机原理图如图3.1所示。图3.1自动售货机原理图3.1主控电路的设计主控电路是系统硬件的核心。在上一章中确定了以单片机STM32为控制器的控制方案,因此本课题设计的主控电路是单片机STM32F103C8T6最小系统组成。STM32F103C8T6是意法半导体(ST)自主研发的一款基于Cortex-M3芯片的嵌入式微控制器芯片,其核心采用ARMV7-M结构设计[9],在医疗、航空、农业、环保、智能电子等领域,具有低功耗、低成本、处理速度和可靠性等优点。该芯片能够同时处理32比特的资料,最高可达72MHz的时钟频率,与8位51单片机相比,具有更大的容量和更快的运算速度[10]。该芯片内置256K的FLASH内存,用于存储;此外,还有48K位元组的SRAM内存,用于储存程式执行时所需的数据及变数。同时,该系统还能运行FreeRTOS、μC/OS-II等小型嵌入式系统,使系统执行更加高效、稳定。该芯片具有三个12位的模数转换器,其最大速度可达1us/次。该ADC具有18个不同的信道,能够对16个外部和2个内部的信号进行检测,每个信道的转换可以分为一次、连续、扫描和间断四种方式进行,可以在不同的情况下进行快速的切换,而不会互相影响,同时还可以触发中断事件。2个12位D/A转换器,可以将数字信号转化为模拟信号后输出。芯片内部拥有7个通道的DMA1和5个通道的DMA2,可以方便实现外设与存储器或存储器与存储器之间数据传输,不需要经过MCU处理,节省了MCU资源开销,支持的外部设备有定时器、SDIO、I2C、SPI、I2S、DAC、ADC和USART等。单片机最小系统是一种最小的系统单元,它使单片机可以正常工作,并且发挥出最完全的功能。单片机最小系统包括STM32单片机,时钟电路,电源管理电路,JTAG电路,重置电路等[17]。如图3.2所示。图3.2STM32F103C8T6引脚图自动售货机系统IO表见下表3.1。表3.1自动售货机系统IO表名称说明3V3接3.3V电源5V接5V电源GND接地线TIM2_CH2出货电机1TIM2_CH3出货电机2TIM2_CH4出货电机3PA5退币PA6切换商品/减少商品数量PA7出货PB0切换商品/赠加商品数量PB1切换选择商品种类/数量PB7OLED时钟线PB6OLED数据线PA9硬币器PA8商品1出货PB15商品2出货PB14商品3出货PB13报警灯PB12蜂鸣器3.2电源模块设计本次系统的硬件设计需要用到多种电源供电,单片机供电需要用到DC3.3V和DC5V,DC5V也为OLED屏供电,出货电机需要用到DC24V,投币机和硬币器需要用到DC12V。为了满足上述需要,本系统的供电由AC220V,接通AC220V以后,经过一个三合一品字插座,可直接控制电源开断,插座后接直流开关电源,将AC220V转化为DC24V,DC24V专门为三个出货电机供电,系统内部还有电池供电模块,单节锂电池3.7V通过升压芯片转化为DC12V,一路DC12V为硬币器供电,一路DC12V再由稳压芯片转化为DC5V,一路DC5V为单片机供电,一路DC5V再由稳压芯片转化为DC3.3V,为单片机供电。电源电路结构框图如图3.2所示。图3.2电源电路结构框图图本设计中AC220V由日常生活中的插座提供,通过国标三插插头接品字插头母头,母头接三合一品字插座,可直接控制售货机的整体电源通和断。3.2.1三插插头、母头、插座和直流开关电源的选择国标三插插头选用神之子品牌,它的优点有:(1)阻燃好,绝缘好;(2)多股铜丝,纯度高,确保了线缆的柔软度;(3)发热低,电阻小,导电性能好。实物图如图3.3所示。图3.3国标三插插头图他的接线方法:红色的线为火线代表字符为L,蓝色的线为零线代表字符为N,黄色的线为地线代表字符为E。接线图如图3.4所示。图3.4国标三插插头接线图母头和三合一品字插座选用公牛品牌。母头的详细参数见表3.5。表3.2母头参数图名称10A黑色插头母头电流电压10A/250VAC安装方式螺丝固定使用寿命≥10000次母头的接线方式就和三插插座接线图对应相连。母头实物图如图3.6所示。图3.6母头实物图插座的详细参数见表3.3。表3.3插座参数名称三合一品字插座一体式带保险丝认证3C认证开孔尺寸28*48MM电流电压10A/250VAC使用寿命≥5000次绝缘电阻≥100MΩ500VDC插座的特点有:(1)品字接口,国标三芯,适用范围广;(2)内置保险丝,当电流超过负载时,熔断丝熔断,保护电路;(3)有开关按钮,安全放心,便捷高效;(4)螺丝固定,拆开方便;(5)螺丝孔设计,加固防护,不易脱落。插座实物图如图3.7所示。图3.7插座实物图直流开关电源选择的是立成安S系列中的S-50-24,可将AC220V转化成DC24V。S-50-24的详细参数见表3.4。表3.4S-50-24参数输入范围AC100-246V50Hz输出电流2A产品尺寸110*78*37mm工作效率85%输出电压DC24V最大功率50W环境温度-10℃-65℃S-50-24的优点有:(1)运行稳定。使用寿命长;(2)都是足功率的电源;(3)具有多重保护,短路超载过压保护;(4)精细做工,用优质元器件;(5)转换率高,绿色环保节能;S-50-24的内部原理接线图如图3.8所示。图3.8S-50-24内部原理接线图S-50-24的外部接线图如图3.9所示。图3.9S-50-24外部接线图L、N、地线分别与插座的三芯相连,+V、-V就是DC24V的输出,直接与电机电源口相连,给电机供电。三插插头、母头、插座和直流开关电源的电路如图3.10所示。图3.10电源电路图3.2.2DC12V、DC5V、DC3.3V转化模块选择本设计中DC12V电源通过升压芯片MT3608实现,MT3608是一个固定的频率,内置软起动,具有很少的脉冲电流,可以延长电池的使用寿命[18]。1.2MHz的转换频率可以使得电容器体积小,成本低,感应高度不超过2mm。MT3608具有低电压锁、电流限制、热超载等功能.要求MT3608在其输入端子上插上3.7V的锂电池,电路图如图3.11所示。图3.11DC12V转化电路图DC12V转DC5V选用的是AMS1117-5V稳压芯片,电路图如图3.12所示,DC5V转DC3.3V选用的是AMS1117-3.3V降压芯片,电路图如图3.13所示。AMS1117是一种输出电压为1.2V的低压三端线性稳压电路,其输出电压为1A。AMS1117有两种,一种是恒压和一种是可调的。固定电压:1.5V、1.8V、2.5V、3.3V、5.0V。当电压为1.2V时,其输出的电压精度可达2%。AMS1117内置了各种电器的过热和电流限制。图3.12DC12V转DC5V电源设计图3.13DC5V转DC3.3V电源设计3.3电机模块设计本设计的售货机系统用到了三个弹簧式电机,完成将顾客选择好的商品经过螺旋式电机转出,设计采用CY-VGMS-277弹簧电机。CY-VGMS-277弹簧电机采用减薄设计,将电机收于内部,整体厚度减少一半,;正反均可安装,内部含有通用左旋及右旋弹簧;卡扣便捷安装,无需螺丝螺母,直接扣上去即可安装完成。CY-VGMS-277弹簧电机参数见表3.5。表3.5CY-VGMS-277弹簧电机参数马达型号HFC280S-14290-45L定格电压DC24V定格电流600mA启动电流2.15A以下最小启动电压DC7.0以下CY-VGMS-277弹簧电机原理图如图3.14所示。图3.14CY-VGMS-277弹簧电机原理图图3.15CY-VGMS-277弹簧电机接口电路如上图所示,三个CY-VGMS-277弹簧电机的引脚1接DC24V正极电源,引脚2接DC24V负极电源(地),引脚3的TIM2_CH2、TIM2_CH3、TIM2_CH4分别接STM32单片机引脚PA1、PA2、PA3。弹簧电机通过3号引脚接收STM32单片机的PWM信号,启动和停止。3.4硬币器的选择早期的传统售货机往往仅配有钱币装置,即便是今天,也有不少人仅装备了投币器而没有安装钞票机。硬币机的主要作用是对商品进行分类、鉴别、判断顾客在购买商品时将其投入铸币机后所收到的钱币数目及数目,并按约定好的程序将资料传送至主机,若有必要,则由主机通知投币器将零钱退回顾客手中。该系统的主要功能是使硬币器具具备准确分类硬币、准确判断硬币面值、传输通道故障率低、可靠性高等优点[19]。本设计选用通利的TW-2020硬币器,该硬币器具有智能识别功能,内部含有记忆晶片组合,一次记忆永不丢失,还具有磁心技术及红外扫描,磁心技术。防伪精度高达99.9%,红外定点扫描,钓鱼报警同时拒收硬币,高性能计分电眼,准确率100%。TW-2020硬币器的主要参数见表3.6。表3.6TW-2020硬币器参数工作电压12V-40mA硬币直径22mm-27mm硬币厚度1.7mm-2.3mm工作电流40mA-±5%-80mA±10%Coin输出O.C(集电极开路)常开NO/常闭NC形式退币功能支持脉冲调节三段可调(20MS40MS100MS)TW-2020硬币器实物图如图3.15所示。图3.15硬币器实物图TW-2020硬币器接线说明:1)灰线——码表2)黑线——接底线3)白线——COIN信号4)红线——DC+12V图3.16硬币器接口电路如上图所示,硬币器的1号引脚不需要接码表空出,2号引脚接地线,3号引脚接单片机引脚36PA8,4号引脚接DC12V。3.5OLED显示模块设计OLED也叫有机发光二极管,也叫有机电式激光器[20]。OLED与传统显示屏的不同之处在于,它本身就是一个自发光的屏幕,以前的液晶显示屏需要有一个背光,再加上OLED屏幕有很好的反差,让人很容易辨认,反应也非常迅速,可以做到非常轻盈,这也是为什么现在大部分消费类电子产品,都会采用OLED屏幕的原因。本设计采用中景园电子的1.3寸OLED显示屏,如图3.17所示,它的屏幕分辨率是128*64,使用SPI接口,显示文字是蓝色的,它内置了GT20L16S1Y字库芯片,它能支持GB2312标准的简化汉字和ASCII字符的显示,能很好的显示汉字、英文,而且体积小、功耗低、对比度好[21]。图3.171.3寸OLED显示屏在此基础上,以DC5V为电源,以SPI方式与OLED面板模块进行SPI通讯,并将OLED的SPI与STM32的SPI1接口进行SDA了连接,并将其引脚SCL(IIC时钟线)、(IIC数据线)与SDA(IIC数据线)与STM32的管脚PA6、PA7进行了连接。如图3.18所示。图3.18OLED显示屏电路3.6按键模块设计本系统采用5个SW0-SW4微型开关组成的按键输入模块。液晶显示屏的显示内容可以由键盘输入来进行控制。同时可以切换商品选择及其数量加减,对应的微动开关SW0-SW4接口电路如下图3.19所示。图3.19按键输入接口电路在选择商品时对应不同按键功能如下表3.7所示:表3.7按键功能按键编号功能1功能2SW0切换下一个商品种类数量+1SW1切换选择商品还是选择数量SW2切换上一个商品种类数量-1SW3出货—SW4退币—从上表可看出,SW1开关负责切换现在选择的商品种类还是商品数量,而SW1和SW2则为,如果SW1切换到商品种类,SW0就是切换下一个商品种类,SW2切换上一个商品种类,如果SW1切换到商品数量,SW0就是数量加一,SW2就是数量减一。SW3就是当顾客投币完成,出货操作按钮,SW4就为退币按钮。3.7报警电路及LED灯模块设计声光报警两种形式形成了报警电路的设计,声音报警采用Realplay品牌的有源蜂鸣器,实物图如图3.20所示。光源报警采用Risym品牌的3mmLED发光二极管,实物图如图3.21所示。图3.20有源蜂鸣器实物图有源蜂鸣器接口引脚说明见表3.8。表3.8有源蜂鸣器引脚说明名称说明GND接地线VCC3.3V-5VI/O接单片机IO口图3.21发光二极管实物图本系统,一共用到四个LED发光二极管,四个LED发光二极管分别对应的功能见表3.9所示。表3.9四个LED发光二极管功能名称功能LED0商品1出货LED1商品2出货LED2商品3出货LED3报警本系统设计采用DC5V给有源蜂鸣器供电,蜂鸣器报警电路图如图3.22,LED模块如图3.23所示。图3.22蜂鸣器报警电路图图3.23LED模块电路图本系统所采用的蜂鸣器输出模式是通过脉宽调制来实现对蜂鸣器的直接控制。该蜂鸣器的输入/输出接口连接到PB12的输入/输出端口。在投入金额不足的情况下,单片机输出高电平,实现报警提醒的功能。3.8本章小结本章着重阐述了自动售货机系统的硬件设计,在此基础上,对该系统的主电路进行了详细的设计,以STM32单片机为核心,对其余的模块进行了模块化的设计,对电源、电机、硬币器、OLED显示屏、按键模块、报警电路和LED灯模块进行了详细的设计,查找实物图,绘制模块电路图,为下一章的软件设计做好的充足的准备。

第四章自动售货机系统的软件设计本章是对自动售货机的软件部分进行设计,首先是对编程软件进行介绍,其次,采用模块化的设计思路,详细地实现了系统的各个主要功能模块的设计。4.1Keil软件介绍本系统软件编译调试采用二零一三年美国KeilSoftware公司在10月正式发布的KeilμVision5。C语言是本次设计程序的主要语言,在功能、结构、可读性、可维护性等方面,C语言比汇编语言更容易掌握和应用。Keil提供了一个包括C编译器、宏集、连结、库管理的一整套开发方案,并包括一个由一个统一的开发环境(μVision)构成的功能强大的仿真除错程序。UVision是一个类似于Eclipse的集成开发环境,由KEIL公司开发。主要包含了项目管理、源码编辑、编译、下载、调试、模拟模拟等[22],KeilμVision5的优势在于:(1)keil5只是安装了一个简单的软件,没有任何关于设备的详细资料,只需要安装相应的文件。STM32系列微处理器常用Keil5进行编译和调试;(2)Keil5生成了高效的代码,并且大多数语句生成了简单、易于理解的汇编代码。高级语言的优势在大规模的软件开发中更为明显。就拿stm32的驱动来说,Keil4必须从网站上下载相应的驱动,然后将其拷贝到相应的文件夹中。而keil5只要打开packinstall,按install键就可以找到相应的面板。(3)更具大众化、操作简便、界面更优化。KeilμVision5的软件界面如下图4.1所示。图4.1KeilμVision5的软件界面4.2系统主程序设计系统设计的软件流程图如图4.2所示。系统一共设计了三种商品,分别为coke、juice、sprite,对应三个不同的价格,分别为3元、4元、5元。当顾客根据显示屏现实的内容,按下对应的按键,选择想要的商品种类及其数量,系统会根据顾客选择的商品数量计算出应付的金额。接着顾客开始投币付款,投币器会计算投币的数量,单片机接受信号,显示在OLED显示屏,如果顾客投币的数量小于选择商品的总价,顾客依然点击了出货键,则报警电路工作,蜂鸣器想起,报警指示灯里亮红,显示屏显示“TouBiBuZu!!!”,显示完后返回主界面,顾客可选择按下退币按键,系统退币,顾客也可以选择继续投币,如果顾客投币的数量和选择的商品总价相等,顾客按下出货键,商品开始出货,对应货物的LED灯亮起,显示屏显示“KaiShiChuHuo...”,一段时间后,显示”ChuHuoWanCheng!!!”,随即出货指示灯灭。图4.2自动售货机主系统设计的软件流程4.3按键模块程序设计按键模块的程序流程图如图4.3所示。按键模块程序首先对按键的引脚进行定义,接着对系统进行初始化操作,然后通过按键按下和松开的扫描程序,去抖动,最后读取按键值,不同按键获取到值以后会进行不同的操作。首先判断按键1是否被按下。如果按键1没有被按下,则设置的中间变量ins为0,此时再按下按键0,则可以切换下一种商品,再按下按键2,则可以切换上一种商品;如果按键1被按下,则设置的中间变量ins为1,此时再按下按键0,则可以增加商品数量,再按下按键2,则可以减少商品数量。如果投币完成,按下按键3,则商品开始出货,按键4被按下,系统就执行退币操作。图4.3按键模块程序流程图4.4出货模块及报警电路模块程序设计出货模块及报警电路模块的程序流程图如图4.4所示。首先对系统进行初始化操作,然后通过按键按下和松开的扫描程序,去抖动,最后读取按键值。当顾客投币完成后,按下出货按钮,接着单片机进行处理,将顾客投币的数量和商品总价进行比较,如果顾客投币的数量和商品总价相等,则售货机开始出货,并且单片机内部将剩余零钱数和0作比较,大于零发送找零信号;如果顾客投币的数量少于商品总价,按下出货按键,则蜂鸣器报警,报警指示灯亮红。图4.4出货模块及报警电路模块程序流程图4.5本章小结本章主要介绍了自动售货机系统的软件设计,对主系统和主要的功能模块进行了流程图的设计和代码地编写。首先,对系统软件开发运用的Keil软件进行了详细地介绍,并且采用C语言进行编写,然后对系统主程序进行了设计,绘制其流程图,最后对按键模块程序、出货模块及报警电路模块程序挨个进行流程图绘制和代码编写。

第五章自动售货机系统仿真在第三章对自动售货机的硬件设计完毕和第四章对自动售货机的软件设计完毕后,本章将对系统各部分的功能进行仿真。5.1仿真软件介绍本项目所使用的模拟软件为Proteus,由英国实验室开发。该软件是当今世界上最成熟、最完善的嵌入式系统开发和模拟平台。该系统支持各种类型的MCU(51)、PIC(AVR)、STM32(STM32),它还支持当今最受欢迎的MCU开发环境(Keil,MPLAB,IAR),是一种集成和扩充的电子电路模拟软件[23]。该软件的特点:(1)这些都达到了我们所设计的MCU软件模拟系统的要求,与其他同类产品相比,有着显著的优越性。(2)仿真系统包括:模拟电路,数字电路,MCU及其周边电路,RS—232动态仿真,1C调试,SPI调试,键盘和LCD系统仿真;有各种虚拟仪表,例如:示波器、逻辑分析仪、信号发生器等。Proteus与其他的MCU模拟软件相比,该软件不仅能仿真MCU的CPU工作状况,而且能对没有MCU的外部电路以及其它没有MCU的情况进行仿真。因此,在进行仿真和程序调试时,需要考虑的不再是执行某一指令时的问题,而是微处理器的暂存器和存储器的改变,从工程的观点,直接观察程式的操作与电路的运作。在一定程度上,这种模拟试验可以弥补试验与工程应用之间的矛盾与现象[24]。Proteus软件的界面如图5.1所示。图5.1Proteus软件的界面5.2系统仿真结果由于本系统设计中设有硬币器,所以在仿真时,采用一个按键来模拟顾客在付款时投币的操作,按键按下一次,代表顾客投入一枚硬币,系统的仿真图如下:(1)当系统启动时,系统进入初始状态,等待顾客进行商品种类及数量的选择,如图5.2所示。图5.2系统初始界面(2)当顾客通过按键0、按键1、按键2,进行商品种类选择,和选择购买商品的数量。如图5.3所示。图5.3商品选择界面(3)当顾客选择好商品及其数量后,开始投币。如图5.4所示。图5.4投币界面(4)当顾客投入的硬币数值和商品总价相等后,点击按键3,出货按键,则对应的货物指示灯亮,显示屏显示“KaiShiChuHuo...”,一段时间后,显示“ChuHuoWanCheng!!!”,随即指示灯熄灭。如图5.5所示。图5.5出货界面(5)当顾客投入的硬币小于商品总价,然后点击按键3,出货按键,报警灯亮起,显示屏显示“TouBiBuZu!!!”。如图5.6所示。图5.6投币不足界面(6)当顾客投币不足,系统报警,显示屏再显示完“TouBiBuZu!!!”后,显示屏返回投币界面,顾客可以选择继续投币,也可选择退币,按下按键4,退币按键,投币数量清零。如图5.7所示。图5.7退币界面(7)当顾客完成这一系列操作后,系统会自动复位到初始界面。如图5.8所示。图5.8系统自动复位到初始界面5.3本章小结本章主要介绍了自动售货机系统的仿真。首先对仿真软件Proteus进行了详细地介绍,接着对顾客操作的各个阶段系统所出现的情况,挨个进行了仿真,从系统的初始界面一直到顾客完成交易,系统复位到初始界面结束。

第六章总结与展望6.1总结本系统研究了基于单片机的自动售货机系统,系统以STM32F103C8T6芯片为核心,分别连接了电源模块、投币模块、电机模块、按键输入模块、OLED显示模块、报警电路模块及LED灯模块。通过硬件及其软件的设计,最终正确完善地实现了自动售货机的基本功能,基本功能包括系统初始化、顾客挑选自己想要的商品种类及其数量、顾客投币购物、出货并找零、投币不足报警、最后自动跳转到系统初始界面。通过按键来实现顾客选择商品种类和数量以及投币退币出货操作,通过OLED屏幕实时显示当前操作状态及商品种类数量,投币不足、出货等情况,通过硬币器实现顾客投币技术及退币功能,再通过电机转动给顾客转动出他们购买的商品,通过LED灯模块告诉顾客购买的商品从哪个通道转出和实现光报警功能,最后通过蜂鸣器的鸣叫报警提醒顾客投币不足。自动售货机作为一种最大限度地摆脱了营业地点、营业时间的零售模式,由于其便捷的操作特性,现在已经被广泛地运用到了人们的生活中,并成为了一种比较便捷的购物方式。回顾自动售货机的发展历史,我们可以看出,在很长一段时期内,可口可乐和百事等大的饮料公司都是其主要的推动力,而饮料产品则是自动售货机主要的销售市场。所以本文设计了一款小型自动售货机,只售卖大众最喜爱的饮品,是大家在外面也随时随地的购买到自己想喝的饮料。在研究基于单片机控制的自动售货机系统期间,有很多的收获。首先,在这次的毕业设计中,不但学到了很多东西,还学到了很多的课外知识,开阔了眼界,让我对未来的电子技术有了更深的认识,并提高了专业技能和实际操作能力;然后,在设计途中还学习了STM32系列的芯片,发现这一系列的芯片比之前学习到的51芯片更加智能,功能也更加的齐全,感受到了电子科技发展之迅猛。最后,毕业设计的最大收获是脚踏实地,严谨务实,不怕困难,坚持不懈。在设计的时候,就是要有耐心,要有毅力。每一次犯错时,虽然会变得急躁,但不会放弃,会第一时间调整状态,使变得更好,更重要的是,在遇到困难的时候,会想办

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论