基于单片机的自动售货机的设计

摘 要

自动售货机是近些年来兴起的一种通过FPGA或者单片机等硬件支持的智能设备。它广泛的应用于商场,公寓,火车汽车站等人流较密集且购物需求大的地方。自动售货机通过硬件支持,通过以编写好的程序自动出货自动找零,但货物一旦售罄就需人为去补充。人们生活水平不断提高,对自动售货机的需求量就越大,所以对它的研究和完善具有重要的商业价值。传统的售货机只能用现金支付,随着近些年的发展移动终端支付方式越来越受欢迎。一些售货机也开始拓展移动支付的功能,极大地满足了人们的需要,给他们提供了许许多多的便利。同时,移动支付功能也克服了现金支付找零会存在的一些问题。本课题主要是研究一款基于89C51单片机的自动售货机,并实现自由选货、出货、收钱、找零等功能。本文介绍了单片机的选型、总的设计框架、软件仿真、硬件电路的实现等各个模块。
关键词:自动售货机; 单片机; 编译仿真

Abstract

Vending machines are the kind of intelligent devices that have been supported by hardware such as FPGAs or microcontrollers in recent years. It is widely used in shopping malls, apartments, bus stations and other crowded and shopping needs of large places. Automatic vending machine through hardware support, through the preparation of a good program automatically sent to automatically change the zero, but the goods once sold out to be added to the people. People’s living standards continue to improve, the demand for vending machines is greater, so its research and improvement has important commercial value. Traditional vending machines can only be paid in cash, with the development of mobile terminals in recent years, more and more popular way to pay. Some vending machines have begun to expand the function of mobile payment, greatly to meet the needs of people, to provide them with a lot of convenience. At the same time, the mobile payment function also overcomes some of the problems that cash payments will have. This topic is mainly to study a 89C51 single-chip vending machines, and to achieve free selection of goods, shipping, money, change and other functions. This article describes the single-chip selection, the overall design framework, software simulation, hardware circuit implementation and other modules.
Keywords:automatic vending machine; 80C51 MCU; compiled simulation

目 录

  1. 引言 1
    1.1 历史及研究意义 1
    1.2 现状及发展趋势 2
    1.3 研究的主要内容 3
    2 自动售货机的系统结构 3
    2.1 系统概述 3
    2.1.1 工作原理 4
    2.1.2控制子系统概述 4
    2.2 功能简介 4
    2.2.1 功能概述 4
    2.2.2 设计思路 5
  2. 硬件设计 5
    3.1 80C51的基本概述 10
    3.2 LCD1602的基本概述 13
    3.3 矩阵键盘的基本概述 13
    3.4 货币识别模块 14
    3.4.1 硬币的识别 14
    3.4.2 纸币的识别 14
    3.5 货物选择模块 16
    3.6 出货退币模块 17
    4 软件流程图设计 18
    4.1 商品选择流程图 20
    4.2 投币系统流程图 20
    4.3出货找零系统流程图 20
  3. 软件仿真 21
    5.1 Proteus简介 22
    5.2 实验结果 22
  4. 总结 23
    参考文献: 341
    致谢 44

1 引言

1.1 历史及研究意义
据史书记载,公元一世纪,在四大文明古国之一的古希腊,一个名叫希罗的亚历山大港公民,发明了自动售货机,这台机器在接受投币后会给顾客一定数量的圣水,这是历史上最早的自动售货机。到了第17世纪,在英国的某些酒吧里也开始出现了售卖香烟的机器。在自动售货机的漫长历史中,现存最古老的自动售货机是由日本人俵谷高七于1904年发明的“自动邮票、明信片售货机”。这是一台可以出售邮票、明信片并且附带邮筒投递的机器,给人们在邮寄信函方面带来了极大的便利。在第二次世界大战之后,世界归于和平,各行各业急速发展,人们的购物需求大大增加,自动售货机迎来了极大的发展。在19世纪50年代,“水喷雾果汁自动贩卖机”大受欢迎,人们拿着杯子向机器里投币就能得到一杯美味的果汁。后来,随着美国饮料集团的迅速发展,全世界各地都开始流行了可口可乐这一类饮品,饮品类自动售货机成为了最受欢迎的自动售货机之一。
在最近几十年,自动售货机迈步向着信息化、可持续化的方向高速发展。例如,在线上,自动售货机中的库存信息通过电话线及时地发送到每个业务点的计算机,从而保证货物的交付、补货和货物的平稳选择,同时也能非常快捷直观的了解商品售出的情况。为了环境的可持续发展,同时也要考虑到自动售货机的功耗问题,所以现在的自动售货机设计都非常节能。例如,在夏季的售卖冰凉饮料的自动售货机设计了保温功能,即在断电的情况下也能长时间保持低温状态,从而达到比以前的自动售货机有着更加节能的效果。
进入二十一世纪后,科学技术高速发展,各种高科技电子产品走进千家万户,极大地满足了人们对工作、生活以及娱乐上的需求。人们的生活水平显著提高,工作也越来越忙,空余的时间严重碎片化,对购物的需求也大大增加。特别是人们对于小零食或者汽水饮料的商品的高频率消费,去商店购买可能嫌太远或者没时间,一次购买太多,也不太容易存放。此时,自动售货机则可以大大满足人们对于此种必要的需求。人们对于个性化的追求也愈发明显,无论是在穿衣还是吃饭或者住宿亦或是出行,人们总是喜欢有自己的风格来和其他人达到差异化,以达到彰显资格的个性化。自动售货机也随着人们需求的差异化和个性化呈现出不同的形态。例如有售卖饮料的自动售货机,有售卖零食的自动售货机,有售卖感冒药之类的药品自动售货机,有售卖书籍的自动售货机,有售卖玩具的自动售货机…这种个性化的购物方式给人们的日常生活带来了极大的便捷。放在不同地点的自动售货机在销售额上会有很大的差异。所以通常放置在人流量较大的位置。一般情况下,自动售货机放置的位置有:地铁出入口、车站出入口、休息室内、小区楼下、商场门口、教学楼下、宿舍楼下、风景区…
自动售货机集设计,生产技术,智能自动化等技术于一身,是我国发展技术快速强大的有力体现。随着时间的推移,现在的人工成本越来越高,而自动售货机却恰好不需要专门要人去值守,这就大大地节省了人力资源,解放了大量的人工生产力。况且,自动售货机可以24小时不间断的为顾客提供售货服务,相比于人力需要休息又有了一个明显的优势。自动售货机整体体积小,摆放的时候,可以放置在各种多余的空角处,占地面积小,这又是大大的节约了有限的土地资源,运行起来对能源的消耗也比较小。各项优点综合在一起,自动售货机极大的促进现代化社会的发展,满足人们碎片化的购物需求,解放了人工生产力,解约了土地资源,便捷了人们的日常生活。
1.2 现状及发展趋势
第三次零售业革命后,超市和百货商城的发展逐渐放缓了下来,市场也略显疲态。而自动售货机却在这幅疲态之中逆势而起发展迅猛。无论是外形上的新颖设计,还是或商品品类的内容更新都更加的多样化。自动售货机方便灵活,可以根据不同的摆放区域来对应的提供人们相应预购买的商品,比如,在旅游的风景区售卖饮用水和食品,以满足人们旅途对食物和饮水的需求;在游乐场或者电玩城售卖玩具产品;在地铁的出入口或者公交站售卖报纸等等。这样不仅满足了人们的需求,同时促进了自动售货机的销售额的上升。
与以前自动售货机相比,现在自动售货机更加智能。内部可以统计销售数据,比如每种商品的销量、顾客购买商品的时间等,让自动售货机的运营方能更加方便快捷的知道商品的销售情况,然后进行相关的工作。此外,随着移动通信行业的高速发展,人们都在使用智能手机,所以现在的自动售货机还可以用手机或者信用卡等方式进行在线的电子支付。这种新型的购物方式在国内已经相当普遍。因此,国内的自动售货机制造厂商也大力生产支持在线支付的自动售货机,同时与一些移动支付厂商开展了合作关系,比如支付宝和微信支付等等。在自动售货机的表面位置,还可以当做广告位来出租,供广告商投放广告,又进一步增加了自动售货机运营者的收入,这样同时又一步促进了运营商们投放自动售货机的想法,极大的促进了自动售货机在国内社会的普及。
在国外,自动售货机产业早就经过了相当成熟的发展阶段。无论是从自动售货机的种类数量和售卖的商品类别,还是从自动售货机的运营商来看,都比中国要多的多。例如,日本的城市里拥有2000多种不同类型的自动售货机,24小时不停的向顾客们提供服务,这种生产服务能力是相当可观的,极大的节约了人力资源。现在的世界第一强国美国,更是拥有一万多家自动售货机运营商,与各大商品供应商进行深度合作,拥有了相当丰富的经验,这与美国的发达程度也是分不开的。中国从中学习借鉴一些先进的技术,再加以本土化改进,促进了我国的自动售货机行业的快速发展。自动售货机在国内的普及程度已经非常高了。现在,我们经常能在大街小巷里见到它们的身影。比如:地铁出入口、车站出入口、休息室内、小区楼下、商场门口、教学楼下、宿舍楼下、风景区等地点就有比较多的自动售货机运营商投放自动售货机。自动售货机的外观信新颖、美观,并且给群众生活带来了极大的便利,是城市街道上一道亮丽的风景线,也成为了城市文明现代化的标志之一。
1.3研究的主要内容
在自动售货机内以80C51单片机作为控制核心,通过用keil Uvision3来编译调试C语言程序,使用protues来设计出电路图。最终把单片机与输入、输出模块、显示等模块相连接并进行仿真模拟。模拟自动售货机正常运行时的工作情况。

2 自动售货机的系统结构

2.1 系统概述
2.1.1 工作原理
当顾客看到了自己想要购买的商品时,按下商品所对应的种类按钮和数量按钮,自动售货机根据货品的价值在液晶屏上显示顾客所需付费的商品总额,客户投入货币后,自动售货机的货币识别模块会对客户投入的货币进行真假识别以及面额识别,然后根据客户所选则商品的价格进行收费并找零,自动售货机的内部控制芯片发送指令给储备库将顾客所选的物品发送到取物口。工作原理如图 2-1所示 :
在这里插入图片描述

图 2-1 自动售货机的总体工作原理图
2.1.2 控制子系统概述
按照自动售货机的工作流程,自动售货机的控制子系统一共可以分成三个部分。
(1)自动售货机预设系统。将自动售货机内的所有商品按照品种分类,再分别给每个品种的商品设置好价格,并存储在系统内。商品的价格和种类设置由按钮进行输入,然后存储在存储器内。存储器必须要有断电保护功能才能使系统正常工作。
(2)价格累计和退币系统。当顾客投币后,系统CPU开始对货币进行识别,如果是假币,则CPU向退币模块发出退币信号,退币系统开始工作。如果是真币,则CPU中开始计算金额累计,当累计金额达到顾客预购买商品价格时,购物指示灯亮,CPU向出货模块发送信号,出货模块开始工作,将顾客选择的商品送到出货口,并将金额累计清零。当累计金额超过客户欲购买商品的价格时,购物指示灯亮,CPU向出货模块发送信号,出货模块开始工作,将客户选择的商品送到出货口后,CPU计算差价,向退币模块发送信号,退币模块开始工作,退还差价金额货币,并将金额累计清零。
(3)售罄检测系统。自动售货机存放商品的通道有一个检测开关,当通道内有对应的商品的时候,开关为闭合状态,此时,自动售货机的售货系统正常运行。当通道内对应的商品售罄时,开关为断开状态,向CPU发送信号,CPU向显示屏或者指示灯发送缺货信号,用来向顾客显示相应的商品缺货信息。
2.2 自动售货机的功能简介
2.2.1 功能概述
自动售货机的基本原理:当顾客看到了自己想要购买的商品时,按下商品所对应的种类按钮和数量按钮,自动售货机根据货品的价值在液晶屏上显示顾客所需付费的商品总额,客户投入货币后,自动售货机的货币识别模块会对客户投入的货币进行真假识别以及面额识别,然后根据客户所选则商品的总价格进行金额比较,判断选择退币还是出货并找零,最后自动售货机的内部控制芯片发送指令给储备库将顾客所选的物品发送到取物口。
自动售货机的功能描述:为了方便此次设计的研究,商品的种类一共设计设计为七种,这七种商品分别有不同的线路映射到对应不同的按键上,顾客可以通过按键选择对应的商品以及数量。在确定商品的种类和数量后,按确认键进行确认。顾客再根据系统提示的价格放入货币,系统则发送顾客挑选的物品并进行找零。储备箱内的物品价格规格有1到20块不等;系统能够识别的货币有:壹圆的硬币和纸币,拾圆、贰拾圆、伍拾圆、壹佰圆的纸币。
这个设计中总共有十二个按钮,其对应的分别是七种货物对应的选择按钮、两个选择数量的按钮、一个投入金额的按钮、另外还有两个按钮分别是确认按钮和取消按钮。
顾客在使用自动售货机时,在规定的时间内进行挑货付款,这样有利于提高自动售货机的使用效率。顾客在挑选好货品之后在规定时间内进行一次或者多次投币,然后自动售货机内部的系统会对顾客投入的货币总金额与货品的总价值进行比较计算,如果投入的金额比所选货物的价值小,系统会提示补交货币或者取消此次消费并退还所有金额。
2.2.2系统设计思路如图 2-2所示 :
在这里插入图片描述
图 2-2 自动售货机系统原理图
控制核心为80C51单片机;输入端为投币P3.5口和矩阵键盘;显示模块为LCD1602;P0口为商品选择输入端,P1口为货物输出端和找零系统端。
端口设计:
(1)输入:P0口为P3.5,则定义端口按键值:

P3.5口按键值 代表货币(单位:元)
0X00 1
0X01 5
0X02 10
0X03 20
0X04 50
0X05 100

(2)商品的种类一共设计设计为七种,则定义端口按键值:
P0口按键值 按键
0X06 确定
0X07 取消
0X08 价格+
0X09 价格-
0X0a 数量+
0X0b 数量-
(3)输出:P1口为货物输出,并控制相应的LED灯,则定义端口按键值:
P1口按键值 商品选择 LED灯亮
P1.0 1 D1
P1.2 2 D2
P1.3 3 D3
P1.4 4 D4
P1.5 5 D5
P1.6 6 D6
P1.7 7 D7
(4)显示:显示端口由 P2端口和 P3.2(RS)、P3.3(RW) 、P3.4(E) 控制将顾客的购货状态显示在LCD1602上, P1口控制 LED灯亮表示商品种类。

3 硬件设计

3.1 80C51的基本概述
(1)8051是8位元的单芯片微控制器,采用的是同步式的顺序逻辑系统,出自英特尔公司1981年制造。在中国大陆被大家广泛地称为“单片机”。它拥有非常高的实用性。80C51是采用CMOS工艺技术生产出来的,因此拥有比上一代采用NMOS工艺技术生产出来的的单片机更加节能的特性。其外观如图3-1(a)所示:
在这里插入图片描述

图3-1(a) 80C51单片机的外观图
(2)80C51的组成为外部引脚。内部CPU 、RAM(数据存储器)、ROM(程序存储器)、I/O接口、定时器 / 计数器、时钟电路、串行通信口和中断控制系统。内部基本结构如图3-1(b)所示:
在这里插入图片描述

图 3-1(b) 80C51 单片机内部基本结构
(3)80C51单片机的引脚总共有40支。如图3-1©所示:
在这里插入图片描述

图3-1(c) 80C51 的引脚图
VCC:接正电源5V。
VSS:接地。
XTAL1,XTAL2:接石英晶体振荡器。
RST:芯片重置信号输入端。
PSEN:外接ROM,与ROM的OE相连。
VPD:备用电源。
EA/Vpp:接高电位时,读取内部程式内存;接低电压时,读取外部程式内存。
(4)每次使用单片之前,我们都要按下RST复位键,让单片机恢复初始状态以避免上次的操作对此次操作产生的不确定性的影响。RST复位信号要输入一高电位脉冲,且大于2个机械周期,才能完成重置动作。一般情况下,80C51的复位方法有两种,分别是人工设置按钮和自动上电复位。
自动上电复位电路的工作原理是:在通电的时候,电容相当于短路状态,RST复位引脚上的电位为高电平, 因此电容会因为电阻被充电, 然后 RST复位端逐渐降低电 压直到变为低电平,这时单片机开始正常工作。为了自动售货机的正常运行和功能需求, 本次设计采用自动上电复位电路。
3.2 LCD1602 字符型液晶的基本概述
(1)LCD1602对于爱好单片机的人来说是比较早的接触到的液晶的显示器,并且是字符型的液晶显示器,它的主要控制芯片是具有兼容型的芯片和HD44780芯片。LCD1602是一种点阵型的液晶型的模块,专门运用于显示字符、数字、符号等一些数学术语。1602字符型液晶的点阵字符为的组成部分有以下两种:57点阵字符位;511点阵字符为。这些点阵字符位中的每一个点阵字符都能显示一个数学字符 ,如今在市场上的大多数的液晶芯片基本都是HD44780这种类型的。控制的原理都是一种类型的,因此如今市场上流通的大部分字符这种类型的液晶都是通过HD44780这个控制系统的控制程序来运行的。如今液晶显示器在各种仪表和功耗较低的系统中有着广泛的运用,它的主要优点是:功耗低、所占面积小、显示出来的内容丰富多彩,制作材质轻薄。根据显示内容可以分为字符型液晶,图形液晶。根据显示容量又可以分为单行 16 字,2 行 16 字,两行 20 字等等。
(2)LCD1602基本结构如图3-2(a)图:
在这里插入图片描述

图3-2(a)LCD1602基本结构图
引脚说明: LCD1602一般是 16个引脚
1脚:VSS接地。
2脚:VDD接正电源5V。
3脚:VEE液晶显示器对比度调整端,在连接时可以通过接一个电位器来调整对比度。
4脚:RS为数据命令选择端,高电平时选择数据寄存器、低电平时选择指令寄存器。
5脚:RW为读写选择端,高电平时为读操作,低电平时为写操作。
6脚:E端为使能端,当 E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。
第15~16脚:空脚或背灯电源, 15脚背光正极, 16脚背光负极。

(3)指令和功能设置如表3-2(b)所示:
指令 功能
1 清除显示
2 光标复位
3 光标位置设置
4 显示开关控制
5 光标移位
6 功能设置
7 RAM地址设置
8 DDRAM地址设置
9 读忙信号和光标地址
表3-2(b)指令和功能设置
(4)LCD1602读写时序操作如图3-2(c)、3-2(d)所示:
在这里插入图片描述

图3-2(c)读时序操作图
在这里插入图片描述

图3-2(d)写时序操作图

3.3 44 矩阵键盘的基本概述
(1)4
4 矩阵键盘又被称为44 行列键盘,它是用 4 条 I/O 线分别作为行线和列线相连所组成的键盘。在每条行线和列线的交叉处设置成按键的位置,由此可知,44 矩阵键盘总共有16个按键。在交叉口设置按键可以非常有效地利用单片机 I/O 口。在设计时,如果按键的个数较多,那么通常会采用矩阵键盘的形式来设计,这样可以节省下更多的端口来为其他的连接提供需要。若是采用将按键直接接在I/0端口线上的方案,那么端口将会变得非常拥挤,甚至会发生端口不够用的情况。所以本次设计键盘采用44矩阵键盘。
(2)4
4矩阵键盘基本结构图如图3-3(a)所示:
在这里插入图片描述

图3-3(a)矩阵键盘基本结构
(3)设计矩阵键盘时,先计算出每个按键接口的接口地址,这样在后面的编译程序过程中会更加快速便捷。 方法为:首先,将矩阵键盘上的全部行线设置为低电平状态,再检测所有列线的电平状态。当检测到某列列线为低电平时,说明该列有按键是被按下的。若检测到所有列线都为高电平状态,则说明该矩阵键盘内没有按键被按下。当确定该列中有按键被按下后,被按下的按键必定在该列四个按键中。再将矩阵键盘上的全部列线设置为低电平状态,再检测所有行线的电平状态。当检测到某行行线为低电平时,说明该行有按键是被按下的。由此可知,按下的按键即是该行线与列线交叉处的按键。
3.4 货币识别模块
3.4.1 对硬币的识别
当今社会,对于货币的识别方法有很多,比如:光电传感器测量法、电磁感应识别法、激光扫描识别法…而在自动售货机中大多采用的识别机制是涡流传感检测器,它的优点有:结构简单,制造陈本低、检测精准。
涡流传感器工作原理:通过对线圈发送高频的电流信号,当硬币通过线圈时,带有高频电流的线圈所产生的高频电磁场对该金属进行检测,并产生对应的感应电流,这也是电磁学上所谓的电涡流。然后根据电涡流效应和通过线圈的硬币所产生的多种数据进行综合分析,从而达到检测出硬币的真假的作用。
3.4.2 对纸币的识别
目前对纸币的检测方法有:荧光检测、磁性检测、红外穿透检测、激光检测、防夹心检测。
(1)荧光检测:是通过对纸币的纸质进行检测,但由于会受到外界因素的干扰因此有两个弊端,其一是由于检测环境是遮光的,当外界光线进入检测空间时会产生错误的信息报导,其二是在检测纸币过程中空气中有大量粉尘,这些灰尘会长期累积之下会粘在光源的表面上造成检测信号的变弱,从而造成漏报。
(2)磁性检测:是通过对大额纸币上的磁性油墨进行检测,但也会由于印刷过程中导致的油墨厚度不同造成之后检测时磁头的高低不同导致信号不同,从而造成漏报。
(3)红外穿透检测:是通过对纸币的密度,厚度以及印刷的油墨的厚度等元素影响下纸张对红外线的吸收程度的多少不同来进行分析辨别,但由于油墨的颜色与厚度在印刷时可能存在差异,因此还需要通过数学运算的方法来进行比较分析,因此检测起来比较麻烦。
(4)激光检测:是通过物理学的方法发送一定波长的红外线激光到纸币上,照射纸币上特定的荧光字,根据国家防伪规定的标准检测,从而辨别真假,由于国家特制的荧光字仿造起来非常困难,因此用激光检测辨别甚是准确 。
(5)防夹心检测:是根据对不同纸钞的纸质、磁性、宽度、特征等一系列数据进行分析辨别来剔除不同额度的纸币,然后对不同额度的金钱进行分析,但由于国家发行的纸币的每个版本都略有不同,因此通过简单的防夹心检测分辨是会产生误差。
综合上面所述的方法来看,激光检测验钞的方法是目前最为准确的检测方式,并且应用于自动售货机中更加方便,准确。
3.5货物选择模块
商品选购系统主要是通过按键来进行操作的,键盘输入装置在人机交互中占有非常重要的作用,而且由于其制造价格低廉、制作结构比较简单,使用起来比较方便等一些原因,使按键操作方式广泛的运用于单片机的应用系统之中。根据按键的接口不同的原理可以将按键分为两个大类:编码键盘、非编码键盘。其中识别键符是它们的主要区别之处,也就是其各自对应的键码。代码键盘主要是用来实现对按键的识别,非编码键盘是根据软件的方式来完成对键盘的定义以及对键盘的识别。如图3-5所示:
在这里插入图片描述

图3-5货物选择系统图
3.6 出货退币模块
在出货退币这一模块,为了方便示范,我用四个LED灯进行模拟。第一个电路代表出货的指示灯,当客户选择完需要购买的物品以及数量并根据液晶显示器上所显示出的提示进行投币完成之后,如果顾客投入的总金额达到购买所选物品的需求,那么这个指示灯则处于亮的状态,此时CPU发送出货信号到储备箱,顾客所选物品将从储备箱发送到取货口,如果投入的总金额没有达到购买物品所需的金额,那么指示灯处于熄灭的状态,液晶屏则会提示继续投币进行购买,或者取消本次消费。另外的三个LED灯测代表模拟找零,分别代表的金额为壹圆、伍圆、拾圆,当某个通道的指示灯处于亮的状态时,说明这个通到有货币发出。出货、退币的电路图如下图3-6所示:
在这里插入图片描述
图3-6出货及找零

4 软件流程图设计

4.1 商品选择流程图
本文总共设计七种不同种类的商品,分别用1-7的序号对应商品。当启动系统后进入初始化界面,等待顾客选择商品种类和数量,按键“ OK”则跳入投币系统, 按键“ NO”则返回初始化等待界面。具体流 程如图 4-1 :
在这里插入图片描述

图 4-1 商品选择流程图
4.2 投币系统流程图
在 4*4 矩阵键盘上模拟投入货币,设定投入一种面值的货币就累加一种面值的货币,如果没有投入货币或者投入货币值不足购买商品的话则提示继续投币。当 所投货币足够时,进入出货找零系统如图 4-2 所示:
在这里插入图片描述

图4-2投币系统流程图
4.3 出货找零系统流程图
进入出货找零系统时,如果购买商品后没有剩余货币则直接推出商品,若还
有剩余货币则找出余币,如图 4-3 所示:
在这里插入图片描述

图4-3 出货找零系统流程图

5 系统软件仿真

5.1 proteus简介
作为一款全球应用广泛的EDA工具软件,proteus有着非常强大的仿真功能。现如今国内单片机教学课程的主要仿真软件就是proteus,同时它也是单片机爱好者和从事单片机应用与开发的研发人员的香饽饽。它不仅能够进行EDA仿真,还能够仿真单片机及其外围的器件。包括的功能有:pcb自动布局布线、spice仿真、软硬件结合的电路仿真、处理器和外围电路仿真等。
支持的处理器比较多:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU类型随着版本升级还在继续增加,如即将支持CORTEX、DSP处理器;
丰富的虚拟仪器:13种虚拟仪器,面板操作逼真,如示波器、逻辑分析仪、信号发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、逻辑探头、虚拟终端、SPI调试器、I2C调试器等;
支持通用外设模型:如字符LCD模块、图形LCD模块、LED点阵、LED七段显示模块、键盘/按键、直流/步进/伺服电机、RS232虚拟终端、电子温度计等等,其COMPIM(COM口物理接口模型)还可以使仿真电路通过PC机串口和外部电路实现双向异步串行通信;
除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。
5.2实验结果
在电路搭建好之后,将keil软件生成的hex文件装载到proteus里去,两种软件联调进行仿真,仿真结果如下图所示:
(1)按下自动售货机的开关同时开始进入工作模式,等待下一步的命令,如图5-1所示:
在这里插入图片描述

图5-1初始化等待界面
(2)使用按键↑或↓用户挑选自己购买的商品类别,然后按下按键←或→决定需要买入商品的个数。相应的用户购买的商品的LED灯就会变亮。如图5-2所示:
在这里插入图片描述

图5-2 用户挑选的商品类别和数量
(3)用户在挑选好自己的商品时,按下“确定”键后,自动售货机就能够精确的合计商品的价钱,如图5-3所示:
在这里插入图片描述

图 5-3 货物选择并计价
(4)当自动售货机合计总价后,系统会提示用户投币付钱,付完钱后按下“ 确定”键,系统会把投币的总金额合计一下与商品总价对比。当投币的总金额不小于商品总价时就开始出货并找零,若投币的总金额不大于商品总价时则不能出货,同时系统提示“ esc”会退所投的金钱或选择接着投币,如图 5-4 所示:
在这里插入图片描述

图 5.4 出货找零
(5)以上的步骤都完成了的话就算一次成功的购物,自动售货机会保持最开始的状态,回到主页面,如图5-5所示:
在这里插入图片描述

图 5-5 自动复位返回初始化界面

6 总结

随着科学技术的发展,自动售货机在我们的生活中扮演着越来越重要的角色,所以对自动售货机的研究具有十分重要的意义。在本次设计中,首先简要概括了对此系统的总体构造,然后简要介绍了本次设计课题的研究背景、目的、意义以及国内外对这个方面的研究,紧接着又十分详细的提出了了关于此课题的研究内容以及设计要求,然后一步步论证和选择了本系统的各个模块。接下来分别展开各个模块,包括模块的原理,对硬件系统的介绍后,本论文又简要的介绍了系统的软件部分,给出了本系统的整体程序流程框图和部分代码分析。通过和老师以及同学一起讨论,交流。然后进行的是软件部分,自己熬了一个通宵,对程序一步一步的修改,终于达到自己几想要的效果。

参考文献:

[1] 白丽. 自动售货机:第三次零售业革命 [J]. 电子商务 .2005. (3).
[2] 胡汉才 . 单片机原理及其接口技术 [M]. 北京:清华大学出版, 1996.
[3] 付家才 . 单片机控制工程实践技术 [M]. 北京:化学工业出版社, 2004.5.
[4] 潘新民 . 微型计算机控制技术 [M]. 北京:人民邮电出版社, 1999.9.
[5] 余锡存 曹国华 . 单片机原理及接口技术 [M]. 陕西 : 西安电子科技大学出版社 ,2000.7.
[6] 雷丽文 . 微机原理与接口技术 [M]. 北京:电子工业出版社, 1997.2.
[7] 叶银兰 . 自动售货机的设计与实现 . 微计算机信息 [J],2008 年 23 期,53-55
[8] 朱清慧,张凤蕊 , 翟天嵩 .Proteus 教程 [M]. 清华大学出版社 ,2008.9.
[9] Guiyun Tian.Foundtion and Application of Microcontroller[M]. 高等教育出版社, 2004.11.
[10] 丁元杰 . 单片微机原理及应用 [M]. 北京:机械工业出版社, 2005.7.
[11] 张元良 . 单片机原理及应用教程 [M]. 北京:清华大学出版, 2011.2.
[12] 朱军 . 自动售货机的结构 [J]. 信息与电脑 .1995
[13] 裴进灵 . 一种新型自动售货机的研制 [J]. 科技情报开发与经济 .2002.
[14] 张文祥,李志军,张子红,张小清 . 单片机系统设计与开发教程 [M]. 北京:电子工业出版社, 2011.5.
[15] 宋萧,李佩佩,韩莹莹 . 自动售货机控制设计 [J]. 科技信息,机械与电子, 2009.
[16] 徐仁贵.单片微型计算机应用技术 [M] .北京:机械工业出版社, 2001.
[17] 冯克 .MCS-51 单片机实用子程序及其应用实例.黑龙江科学技术出版社, 1990
[18] 马刚 . 用 Proteus 和 Keil 整合构建单片机虚拟仿真平台 .[J]. 现代电子技术,
2006.24:129-131.
[19] 朱军 . 基于 Proteus 的单片机仿真实验 .[J]. 计算机光盘软件与应用 .

致 谢

从最初在刘素一导师的指导下选定了“自动售货机的设计”这样一个题目开始,就一直在为这个课题的撰写做准备工作,通过后期在导师的尽心指导下进行构思然后不断的修改,以及在图书馆查阅与课题相关的各种资料,并且还在同学和网上那里对有关课题有了一定的了解。从基础的初稿撰写完成后在经过导师的指导下反复的修改直到现在定稿,虽然在这期间我遇到了各种各样以前从来没有遇到过的困难和问题,在论文的撰写过程中的有过迷茫,有过烦躁,也有过兴奋。但心里还是感觉堵得慌。直到这篇毕业论文经过多次修改后终于完成了定稿了,久久悬挂在心里的那块石头才落了下来,这就像自己在唱吧上录一首喜欢的歌一样,虽然一遍遍的唱着,但总有些音乐的细节没有唱好,但经过一遍遍的改进最终完成了这首歌,此时的心情是无比舒畅的而且发表之后得到朋友的赞肯,内心有着一种达成一种目标的成就感。本文是我从0到100,从毫无头绪到成功的完成导师所要求的论文,在这论文的撰写过程中感慨很多,感谢的话也有很多。下面的致谢是我成功完成这篇论文后发自肺腑的诚挚感谢与感激:
首先我必须感谢的,而且要非常感谢的是我的导师老师。她为人随和热情,平易近人,十分替我们着想。在平常的聊天中她也总是能和我们像好朋友一样激励着我们,而且在这次论文的撰写上给了我很多的帮助。无论是前期构思论文时对我撰写的课题思路的推荐和资料的收集,还是后期对基本论文中存在的问题所提出的修改意见都给了我莫大的帮助。在论文的编写和格式等方面她也总会提醒我们要用专业的标准来判定自己所写的论文的水平,从最初选课题、定课题开始,一直到最后论文的一遍又一遍的修改和改进的过程中,刘素一老师始终恪守着她自己那一份对我们细心帮助的责任,辛辛苦苦地教导我们,提醒我们对于自己设计的论文要深刻而且细致,这一路走来协助我们去不断地开拓自己的设计以及研究思路,全心全意的去帮助,鼓励我们不可以半途而废以及马马虎虎的撰写态度。感谢我的导师对我无微不至的关心和不求回报的无私支持,让我能够顺利的完成我的的毕业设计并且按照学校的要求顺利的通过考核。自动化的老师们,让我感受到了这里的温暖。在此,我诚心的向你们说一声:“谢谢!”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/541854.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker 安装minio,详细图解

废话不多说,直接上干货 docker 安装minio 拉取镜像 docker pull minio/minio创建数据目录、配置目录 mkdir /opt/minio/data mkdir /opt/minio/config启动容器 docker run -p 9000:9000 -p 9090:9090 \--name minio \-d --restartalways \-e "MINIO_ACCESS_KE…

Flutter:构建美观应用的跨平台方案

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

笔记本电脑数据恢复:如何轻松地从笔记本电脑恢复文件

不小心从笔记本电脑中删除了一些重要文件?或者恶意软件和其他不可控因素是否导致您的文件消失?人们很容易认为这些文件已经永远消失,并且无法恢复。但这与事实相差甚远。通过遵循正确的数据恢复礼仪并使用良好的数据恢复工具,您可…

老电脑装什么系统流畅

对于一些老旧电脑来说,重装系统是提升电脑性能的最佳选择。那么,老电脑装什么系统流畅呢?推荐Windows 7系统,它对硬件的需求相对较低。配置较低的电脑运行Windows 7可以更好地利用系统资源,提高电脑的运行速度和响应能…

DFS(深度优先搜索)8种题型

👂 如果当时2020(不曾遗忘的符号) - 许嵩/朱婷婷 - 单曲 - 网易云音乐 👂 一个深爱的女孩 - 本兮 - 单曲 - 网易云音乐 半年前写了一半的博客.......(2023/7/14),今天花6小时给它补充完毕.....…

sqllab第十七关通关笔记

知识点: 错误注入update更新语句 update 表名 set 字段‘输入’ where 字段名数据 通过admin admin进行输入发现是一个数据更新的语句 推测原始语句为update 表 set password‘’ where username 直接构造payload:passwdadminandexp(710) 发现有错误提示&#xf…

了解常用开发模型 -- 瀑布模型、螺旋模型、增量与迭代、敏捷开发

目录 瀑布模型 开发流程 开发特征 优缺点 适用场景 螺旋模型 开发流程 开发特征 优缺点 适用场景 增量与迭代开发 什么是增量开发?什么是迭代开发? 敏捷开发 什么是敏捷开发四原则(敏捷宣言)? 什么是 s…

微服务技术栈SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(五):分布式搜索 ES-中

文章目录 一、DSL查询文档1.1 简单查询1.2 复合查询 二、搜索结果处理三、RestClient演示 查询与结果分析四、案例4.1 问题解析4.2 代码4.2.1 实体bean4.2.2 控制层4.2.3 业务service4.2.4 启动类 一、DSL查询文档 1.1 简单查询 # 1. DSL查询 # 1.1 查询所有GET /hotel/_searc…

【解读】NIST网络安全框架CSF 2.0

2014年,NIST(美国国家标准与技术研究所,类似于中国的工信部)首次发布了网络安全框架CSF(Cybersecurity Framework),十年后,在2024年2月26日发布了重大更新(CSF 2.0)&…

百度paddleocr GPU版部署

显卡:NVIDIA GeForce RTX 4070,Nvidia驱动程序版本:537.13 Nvidia驱动程序能支持的最高cuda版本:12.2.138 Python:python3.10.11。试过python3.12,安装paddleocr失败,找不到相关模块。 飞桨版本…

爬虫 某物流

目标地址 url "https://api.jdl.com/aging/feeInquiryNewByJDL" 加密参数 ciphertext和data 搜关键字ciphertext跟着栈走 很明显的DES加密 window globalconst e require(jsencrypt); // const e require(JSEncrypt) // e r(775).JSEncrypt // const t requi…

Java数据结构-优先级队列

文章目录 前言一、优先级队列1.1 概念 二、优先级队列的模拟实现2.1 堆的概念2.2 堆的存储方式2.3 堆的创建2.3.1 堆向下调整2.3.2 堆的创建2.3.3 建堆的时间复杂度 2.4 堆的插入与删除2.4.1 堆的插入2.4.2 堆的删除 2.5 用堆模拟实现优先级队列 三、常用接口介绍3.1 PriorityQ…