基于单片机的自动售货机Word格式.docx
《基于单片机的自动售货机Word格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的自动售货机Word格式.docx(18页珍藏版)》请在冰豆网上搜索。
②有货物选择按键,根据选择自动出售对应货物。
1.2设计目标
从自动售货机的发展趋势来看,它的出现是由于劳动密集型的产业构造向技术密集型社会转变的产物。
大量生产、大量消费以及消费模式和销售环境的变化,要求出现新的流通渠道;
而相对的超市、百货购物中心等新的流通渠道的产生,人工费用也不断上升;
再加上场地的局限性以及购物的便利性等这些因素的制约,无人自动售货机作为一种必须的机器便应运而生了。
从广义来讲投入硬币、纸币、信用卡等后便可以销售商品的机械,从狭义来讲就是自动销售商品的机械。
从供给的条件看,自动售货机可以充分补充人力资源的不足,适应消费环境和消费模式的变化,24小时无人售货的系统可以更省力,运营时需要的资本少、面积小,有吸引人们购买好奇心的自身性能,可以很好地解决人工费用上升的问题等各项优点。
(1)发达国家现状
日本:
各种自动售货机保有量超过600万台,平均20人一台,世界普及率第一。
1990年通过自动售货机实现的销售额即已达到5兆日元(约3000亿人民币)。
美国:
总的机器保有量大致和日本相当,2000年通过自动售货机实现的销售额达到250亿美元,其中OCS(OfficeCoffeeService)的销售额排第六位。
韩国:
自动售货机的使用历史要远短于其它发达国家,仅有25年,但据2001年的统计,总保有量已超过80万台。
在2001年韩国生产的自动售货机中OCS占32.7%,排第一位,咖啡自动售货机占18.1%,排第三位,仅次于18.6%的充电自动售货机。
瓶罐饮料自动售货机和复合型自动售货机(同机销售瓶罐饮料和热咖啡)都仅占8.6%,并列第四位。
(2)国内现状
保有量约2万台,且品种单一,主要以瓶饮料售货机为主,技术质量还未完全过关,生产和运营成本较高,收益也不高。
导致此现状的主要原因是中国有关的自动售货机企业未能有效解决成本,质量,运营等诸多问题。
但由于随中国经济的快速发展和社会的巨大进步,自动售货机的实际需求已相当大。
1.3课题分析
广义来讲投入硬币、纸币、信用卡等后便可以销售商品的机械,从狭义来讲就是自动销售商品的机械。
第2章硬件设计
2.1此次设计的自动售货机的功能简介
基本原理:
货币识别器对所投货币进行识别,根据金额将商品选择权提供用户,用户选择后,控制芯片发出指令将所选择商品从储备料道中送达取物口。
其功能描述:
货物种类一共设有3种,这3种物品分别对应着3个不同的按键选择,其中2元,3元,4元价格不等的物品各1种;
自动售货机能够投币总数LCD显示功能。
如果累计投入的货币数目超过物品的预设价格,机器能够实现找钱功能;
如果投入的货币没有达到所选择物品的预设价格时,投入的钱将全部退还;
在投入一次累加货币后选择物品,如果投入的累加货币数目大大超过所选择物品的预设单个价格时,那么能够实现选择同一个物品购买多个,在本设计中设为可以同时购买2个或3个物品。
本设计中有一共有7个按键选择,其中3个是货物选择键,有2个是多选键(一次购买2个或3个货物),还有1个确定键和1个取消键。
如果没有按照预先设计的流程顺序进行按键选择,自动售货机将会自动返回操作前的状态,等待再次正确的按键选择。
自动售货机的原理框图如图2-1所示
2.2实现自动售货机的功能的设计
2.2.1晶体振荡和复位电路
晶体振荡电路和复位电路图,如图2-2所示。
图2-2晶体振荡电路图
(1)晶体振荡电路功能介绍:
此电路能让电路产生振荡频率,直流电经过晶体振荡电路就会产生电路所需的交流电,此电路不需要外信号刺激自身就可以将直流电能转化为交流电能,所以要是电路需要将直流电变成交流电,在这里就需要用一个晶体振荡电路。
(2)参数计算:
这是一个晶体振荡电路用到了两个电容和一个晶振,一般12MHZ~30P,6MHZ~20P,2MHZ~10P,我采用的是12MHZ~30P的晶振电路。
(3)复位电路功能介绍:
为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。
一般微机电路正常工作需要供电电源为5V±
5%,即4.75~5.25V。
由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。
(4)参数计算:
这是一个复位电路,由一个电阻和一个电容组成,一般的复位电路电容都为10uF,电阻都为10K。
2.2.2独立键盘按键的识别
独立式按键的识别很简单,如图2-3所示,当某个键按下时,相应的接口会出现低电平,无键按下时则为高电平,由此就可以判断出哪个键有按下。
如图2-3独立键盘按键图
将P1.0~P1.6上的按键编码为00H、01H、02H、03H、04H、05H、06H,按键所对应的功能见表2.1.
表2.1按键功能表
按键号
对应的功能
00H
选择2元钱货物A
01H
选择3元钱货物B
02H
选择4元钱货物C
03H
对选择的货物买2个
04H
对选择的货物买3个
05H
对选择的货物再次确定
06H
对选择的货物取消
2.2.3投币系统
投币系统是自动售货设计当中比较重要的一块,涉及到货币识别系统,对于识别货币器是如何设计、如何工作的,在这里将不做进一步的研究。
本课题设计主要是要实现自动售货机的投币总数显示、货物选择、出货以及找零功能。
在本次设计中用P3.4上的一个按键来代替投币系统的电平输出,如图2-4所示。
如图2-4投币系统图
在投币系统中可以通过89C51内部的定时器来控制投币时间,在规定的时间范围内完成投币动作,否则投入的货币全部退出。
由于本次设计主要是要体现从投币到操作最后到出货的过程,在设计中没有用到定时设置。
本次设计的货币累加是对判断P3.4上的按键上所按下的次数进行累加来实现的,并将累加的次数送到寄存器B,然后系统根据投币的总数和相应的操作来实现输出。
2.2.4LCD显示
本次设计选用TC1602液晶显示屏,可以直接跟51系列单片接口相连。
液晶模块TC1602采用标准的16脚接口,作用是显示主控系统面值,如图2-5所示。
图2-5TC1602液晶显示屏图
第3章软件设计
3.1货物选择系统的程序
3.1.1选择系统流程图
选择系统流程图,如图3-1所示。
图3-1选择系统流程图
3.2投币系统程序
3.2.1投币系统流程图
投币装置流程图,如图3-2所示。
如图3-2投币装置流程图
3.3出货系统程序
3.3.1出货系统流程图
出货装置流程图,如图3-3所示。
图3-3出货装置流程图
3.4找零系统程序
3.4.1找零系统流程图
找零装置流程图,如图3-4所示。
图3-4找零装置流程图
第4章仿真设计
4.1Proteus简介
Proteus嵌入式系统仿真与开发平台是英国Labcenter公司开发的,是目前世界上最先进、最完整的嵌入式系统设计与仿真平台。
它是一种可视化的支持多种型号单片机(如51、PIC、AVR、Motorolahcll等),并且支持与当前流行的单片机开发环境(Keil、MPLAB、IAR)连接调试的软硬件仿真系统。
Proteus除了具有和其他EDA工具一样的原理图、PCB自动或人工布线及电路仿真功能外,针对微控制系统与外设的混合电路的电路仿真、软件仿真、系统协同仿真也做到了一体化和互动效果,是目前电子设计爱好者广泛使用的电子线路设计与仿真软件Proteus和Multisim功能的联合和进一步发展。
Proteus软件已有近20年的历史,在全球拥有庞大的企业用户群,是目前唯一能够对各种处理器进行实时仿真、调试与测试的EDA工具,真正实现了在没有目标原型时就可对系统进行设计、测试与验证。
由于Proteus软件包括逼真的协同仿真功能,得到了包括剑桥大学在内的众多大学用户作为电子学或嵌入式系统的课程教学、实验和水平考试平台。
目前,Proteus在国内单片机开发者及单片机爱好者之中已开始普及,有很多开发者已经开始用此开发环境进行仿真。
4.2仿真设计
假如投入5元钱货币,操作依次为按2元货物选择键、确定键,则在proteus里的仿真图如图4-1所示。
图4-1自动售货机仿真设计图
总结
本次设计是一次非常难得的理论与实际相结合的机会,通过这次智能自动售货机系统电路的设计,不仅是理论知识的学习,还有实际设计的结合,综合运用所学的专业基础知识,解决实际问题的能力,同时也提高我查阅文献资料、设计规范以及电脑制图等其他专业能力水平,而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,经验得到了丰富,虽然毕业设计内容多,我的收获却更加丰富。
各种系统的适用条件,各种设备的选用标准,都随着设计的不断深入而不断熟悉并学会应用。
和老师的沟通交流更使我对设计有了新的认识也对自己提出了新的要求。
通过这次的设计也使我意识到自己知识的狭隘,我们可以在以后的学习过程中通过丰富的图书馆资源和网络资源来弥补这一不足。
在这几个星期里我学到了很多的知识,这些都是我以前所不曾学到的。
Protel是我们以前实训时学的内容,在这次毕业设计中又好好的复习了一遍,所谓温故而知新,还包括我们的基础课程《高频电子技术》,《电工电子基础》,《单片机应用基础》等。
提高是有限的,但提高也是全面的,正是这次设计让我积累了无数实际经验,虽然时间紧迫但我学会了很多,也感到自身知识的贫乏,也必然会让我在未来的工作学习中表现出更高的应变能力,更强的沟通力和理解力。
顺利如期的完成本次毕业设计给了我很大的信心,让我了解专业知识的同时也对本专业的发展前景充满信心。
参考文献
[1]杨路明.C语言程序设计教程.北京:
北京邮电大学出版社,2005.1
[2]胡汉才.单片机原理及其接口技术.北京:
清华大学出版社,2006.3
[3]王福瑞.单片微机测控系统设计大全.北京:
北京航空航天大学出版社,1999
[4]徐仁贵.单片微型计算机应用技术.北京:
机械工业出版社,2001
[5]杨恢先.单片机原理及应用.北京:
国防科技大学出版社,2003
[6]李鸿.单片机原理及应用.湖南:
湖南大学出版社,2002
[7]徐惠民.单片微型计算机原理与应用.北京邮电大学出版社,2001
[8]陈隆昌.控制电机.西安:
西安电子科技大学出版社,2000
[9]王锦标.计算机控制系统.北京:
清华大学出版社,2004
[10]李正军.计算机控制系统.北京:
机械工业出版社,2005
[11]刘泽祥.现场总线技术.北京:
[12]何立民.单片机应用系统设计.北京:
北京航空航天大学出版社,1990
[13]林东.计算机控制技术.哈尔滨:
哈尔滨工业大学出版社,1995
[14]刘国荣.计算机控制技术与应用.北京:
机械工业出版社,1999
[15]孙德辉.微型计算机控制系统.北京:
北京航空航天大学出版社,2002
附录
部分源程序程序
****************投币口程序***************
INSERT:
MOVA,P3;
投币口检测
CPLA
JBCACC.4,S1;
P3口有键按下转S1
LCALLKEY
MOVA,R5
CJNEA,#0FFH,CHECK;
货物选择键盘有键按下转CHECK程序
AJMPINSERT
S1:
LCALLD10MS;
延时消抖
MOVA,P3
JBCACC.4,S2
S2:
MOVR1,MONEY
INCR1
MOVMONEY,R1
WAIT1:
MOVA,P3
CPLA
JBCACC.4,WAIT1投币开关未松开继续等待,否则返回START
AJMPSTART;
返回
****************键盘程序*****************
KEY:
MOVA,P1;
读P1口
JNZKEY2;
A不等零说明有键按下转KEY2
MOVR5,#0FFH
RET
KEY2:
LCALLD10MS;
MOVA,P1
JNZKEY3
KEY3:
JNBACC.0,K1
MOVR5,#00H
LCALLWAIT
RET
K1:
JNBACC.1,K2
MOVR5,#01H
LCALLWAIT
RET
K2:
JNBACC.2,K3
MOVR5,#02H
K3:
JNBACC.3,K4
MOVR5,#03H
K4:
JNBACC.4,K5
MOVR5,#04H
K5:
JNBACC.5,K6
MOVR5,#05H
K6:
MOVR5,#06H
WAIT:
MOVA,P1
CPLA
JNZWAIT
****************出货程序*****************
OUTGOODS:
MOVA,R6
MOVDPTR,#GOODSTAB
MOVCA,@A+DPTR
MOVP0,A;
掉出货物
LCALLDELAY1;
调用延时程序
MOVA,#0FFH
将控制掉出货物开关关闭
LCALLDELAY1
DJNZR0,OUTGOODS;
判断是否还将继续掉出货物
GOODSTAB:
DB0FEH;
出2元货物
DB0FDH;
出3元货物
DB0FBH;
出4元货物
****************找零程序****************
OUTMONEY:
MOVDPTR,#MONEYTAB;
查表
MOVCA,@A+DPTR
MOVP0,A;
找出零钱
LCALLDELAY1;
调用延时程序
MOVA,#0FFH;
将控制掉出零钱开关关闭
MOVP0,A
MONEYTAB:
DB0FFH;
找回0元
DB0F7H;
找回1元
DB0EFH;
找回2元
DB0E7H;
找回3元
DB0CFH;
找回4元
DB0BFH;
找回5元
DB0B7H;
找回6元
DB0AFH;
找回7元
DB0A7H;
找回8元
DB08FH;
找回9元
DB07H;
找回10元
DELAY:
MOVR2,#50;
延时子程序
D1:
MOVR3,#50
D2:
DJNZR3,D2
DJNZR2,D1
D10MS:
MOVR2,#64H;
10毫秒延时程序
DL2:
MOVR3,#18H
DL1:
NOP
NOP
DJNZR3,DL1
DJNZR2,DL2
DELAY1:
MOVR7,#10;
延时子程序1
DELAY2:
MOVR2,#250
D3:
MOVR3,#200
D4:
DJNZR3,D4
DJNZR2,D3
DJNZR7,DELAY2
RET
END
实物图