王闯 聂兴家 马帅兵
摘 要:本文是在现有收银系统的基础上,利用嵌入式系统技术,研究设计新型智能收银机。新型智能收银机可以实现自动收银、自动找零,与现有收银系统连接可以进行超市自动售货。
关键词:新型智能收银机;自动收银;自动找零;嵌入式系统
【Abstract】This paper decribes the research and design of new automatic cashier, on the basis of the existing cash register system and using the embedded system technology.New intelligent cash register can automatically cash and change.Attaching to the existing cash register system,the new intelligent cash register can realize shopping malls supermarkets.
【Keyword】New intelligent cash register;Automatically cash; Automatically change; An embedded system
随着社会经济的发展,人们的生活水平不断提高,超市不断从城市走入乡镇,超市的发展使商品交易集中化、高效化。与此同时也出现了超市排队的问题,据调查顾客对超市提出批评最多的就是在购物交款时等待时间太长。老式收款机,完全是人工负责收款找零,速度慢、容易出错,特别是在下班高峰、节假日等时候。长时间的排队严重影响了,顾客的满意度和超市的服务质量。2012年北京兆维已经实现纸硬币识别模块国产化,识别率可达100%。随着纸币硬币识别技术的成熟,多种面额纸硬币收银找零成为可能。目前关于收银系统提出的设计大多是只能实现找零功能,或收银自动化程度不高。本文在传统收银机的基础上,利用嵌入式设计系统,研究具有自动收银找零的智能收银找零机。智能收银找零机能够通过USB接口,与现有收银机计算机连接,根据支付金额和消费总额,计算出要找零的金额,进行找零并显示。
1 基于嵌入式系统的智能收银找零找零机原理分析
本系统是在现有收银系统的基础上设计的,包括键盘、条形码扫描器、PC、打印机、C52单片机、纸币找零模块、硬币找零模块、LCD液晶显示屏、蜂鸣器。本文着重讨论自动找零系统的硬件组成、软件工作原理及系统的总体结构。
2 智能收银机控制系统主要硬件设计分析
2.1 微控制器
智能收银找零是在现有收银机的基础上研究的,面向顾客,负责收银、找零、LCD显示和蜂鸣器提示。单片机有系统内核小、专用性强、系统精简、高实时性等特点,并且单片机在工业和自动化领域的应用日趋广泛和成熟。我们选择单片机作为微控制器,型号是STC89C52 ,它的资源情况:Flash 程序空间是 8K 字节,RAM 数据空间是 512 字节,能够满足设计需求。
2.2 LCD液晶显示器
LCD是智能收银机的显示设备,用于显示消费总额、收银总额、找零金额,储存零钱用完之后进行提示。设计采用LCD1602液晶显示器,可以显示2行,每行16个字符。它的工作电压是 4.5V~5.5V。
2.3 蜂鸣器
蜂鸣器用于收银系统地语音提醒。蜂鸣器的BUZZ端口与单片机的一个I/O端口相连。程序控制中,将蜂鸣器的控制放入中断服务程序,当用户用于支付金额少于商品总价格时,提醒顾客继续投币;各面额钱币小于一定数目时,提醒加币。
2.4 纸币收银找零模块
纸币模块是由步进电机驱动机械结构实现,设计中选用的步进电机型号为28BYJ-48,四相八拍。纸币收银找零模块主要包括:纸币识别部分、纸币分拣部分、纸币送入部分、送纸机构、纸币分离机构、出币机构。整个收银找零过程是通过电子电路驱动步进电机、电磁铁,以实现对整个出钞模块的所有机械部件的動作.并对各种开关量输入(如光电传感器)做实时、连续的检测,根据检测结果及时调整机械部件的动作.保障找零时中的正确、安全稳定运行。
3 系统软件及工作流程分析
以便于程序的编写和维护,系统程序的设计基于两个层,包括硬件驱动层、用户应用层。
3.1 硬件驱动程序
驱动程序是直接对硬件进行操作,是硬件和软件之间的桥梁。每一种硬件都有对应的驱动程序,通过程序实现某种功能就是调用对应的驱动程序,使硬件做出相应反应。驱动程序的使用减少了上层程序对硬件的依赖性,也简化了上层程序的编写。设计中使用到的驱动程序有通信接口驱动、键盘驱动、步进电机驱动、液晶显示驱动。
3.2 用户应用层
整个系统的编写主要的部分就是应用程序。驱动程序能够使硬件做出一定动作,但只有通过应用程序对数据进行处理,经过判断对驱动程序调用,才能使各硬件有机的结合起来,完成具体的任务。为了顺利完成整个收银找零过程,设计中包括初始储币量输入模块、现有储币量检测模块、通信模块、纸硬币收银模块、显示模块、报警提示模块。
(1)、初始储币量输入模块,用于在系统启动还未开始正常工作时,输入智能收银机中储币量,该变量随着收银找零的进行而改变,记录着装置中各面额钱币的现有量,供下面的检测报警使用。
(2)、现有储币量检测用于,主循环每次循环,进行检测现存的纸硬币数目,当钱币数目小于设定值时,报警并进入死循环,等加币并重启程序后正常进行工作。这里设定的最小张数由一次可能找出最大张数确定,例如50元1张,20元2张,10元1张,5元1张,1元4张。
(3)、通信模块负责与上位机通讯,智能收银找零机是在现有收银系统的基础上研究设计的,商品价格的扫入,总额的计算都是由PC来完成,然后通过通讯模块出入到单片机,用于找零金额的计算使用。找零过程中向PC机返回忙碌状态,此时PC机可以进行商品扫入,但不能像单片机输入商品总金额,找零结束后,返回准备就绪状态,可以接收商品总额进入下一轮收银找零。
(4)、纸硬币收银模块,纸硬币通过纸币识别器,判断出钱币的面额,纸币通过电机带动丝杠,带动分拣机构进行分拣;硬币则通过电磁铁改变硬币滑动路径,实现硬币进入不同的储币筒。然后增加先储币量的数目。
(5)、纸硬币找零模块,通过贪心算法,将经过计算得到的找零金额进行分配,算出每一种面额的金额应找出的张数,然后驱动电机,并使用光电传感器进行检测,实现正确找零。
(6)、显示模块主要用于商品总额输入单片机后,显示商品价格,并提示投币;在投币过程中,实时显示已投金额数目;投币结束后,显示应找零金额;检测到钱币数目过少时,显示哪种面额缺少。
(7)、警示提醒模块,当顾客投入金额小于消费金额时,蜂鸣器会0.5秒响,提醒顾客继续投币,并将程序返回到收银模块;当程序检测到现存个面额钱币小于对应数目时,蜂鸣器会响2秒,提醒加币。
4 程序工作流程框图
根據以上智能收银机的设计分析.首先通过条形码扫描器扫描客户购买商品种类单价,计算总金额。输入机构接收客户付款并进行验收和计算收银总额。计算找零数额并通过程序分离具体找零币类和数目.然后驱动步进电机带动机械结构,找出具体相应数目零钱,实现自动找零。
现在国内的自动售货系统,只能实现硬币的收银找零和少数面额的纸币收银,大大限制了,自动收银系统在各方面的使用。针对于这一现状,本文提出了一种基于STC89C52单片机的超市收银找零系统设计方法,能够实现多种面额的纸硬币找零。经过模型的制作和实验,系统安全可靠。
参考文献
[1]曹占生.单片机控制的自动挂零系统的设计[B].研究与开发.2001.1.
[2]熊志金.基于嵌入式系统的ATM出钞机设计[J].工业控制计算机,2009,12.
[3]周立功,等.ARM嵌入式系统软件开发实例[M].北京:北京航空航天大学出版社,2004.
[4]韩娇,等.基于嵌入式系统的新型智能收银机设计研究[].科技信息,2013