【基于单片机的自动售货机设计与实现15000字(论文)】_第1页
【基于单片机的自动售货机设计与实现15000字(论文)】_第2页
【基于单片机的自动售货机设计与实现15000字(论文)】_第3页
【基于单片机的自动售货机设计与实现15000字(论文)】_第4页
【基于单片机的自动售货机设计与实现15000字(论文)】_第5页
已阅读5页,还剩42页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

基于单片机的自动售货机设计与实现摘要自动售货机是自动化行业不可或缺的机器产品。随着世界的经济发展,人类的生活水平有了显著的提高,此时对自动售货机的需求也越来越高。自动售货机主要帮助了人们解决急需,也减少了人力,全天24小时不间断工作。本设计是通过核心单片机对机器的控制,清楚了介绍了该设计的思路,硬件选择,软件设计以及功能流程。整个硬件电路通过80C51单片机控制模块、输出液晶显示模块、4*4的矩阵键盘模块以及模拟推出商品的LED指示灯模块的连接。实现了系统的等待购买、确定商品的选择和数量、投币购买货物、自动推出商品以及找零功能,最后再返回待购买界面。其中4*4矩阵键盘用来挑选所需要购买的商品,和对应商品的数量。然后通过矩阵键盘的其他按键来代替所投入货币的面额,模拟投币。采用LCD1602作为输出显示模块,通过液晶显示屏了解系统的按键功能以及系统所处的购买状态,最后用八个LED灯来代替商品的类别。通过Proteus连接电路,再经过Keil软件对程序进行调试和编译,最终进行电路的仿真,达到本设计的控制功能要求。关键词自动售货机,80C51单片机,C语言,仿真目录摘要 1Abstract 2第一章绪论 51.1研究课题的背景以及意义 51.2国内外的现状发展以及趋势 61.3此课题研究的主要内容 7第二章自动售货机系统的结构 82.1自动售货机系统的概述 82.1.1自动售货机系统的结构 82.1.2自动售货机子系统概述 92.2自动售货机功能概述 102.3系统的设计方案 10第三章自动售货机的硬件设计 133.180C51的介绍 133.1.180C51的基本概述 133.1.280C51的引脚功能 143.2LCD1602显示模块的介绍 153.2.1LCD1602的基本概述 153.2.2LCD1602的引脚结构 163.2.3LCD1602的工作原理 173.2.4LCD1602的基本指令 183.2.5LCD1602时序操作 203.3矩阵键盘的设计 213.3.1矩阵键盘的概述 213.3.2矩阵键盘的基本结构和接口设计 213.4识别货币的传感器选择 223.4.1硬币的识别 223.4.2纸币的识别 243.5货物选择系统 243.6出货以及找零系统 25第四章自动售货机的软件设计 264.1自动售货机总流程图 264.2商品选择流程图 274.3投入系统流程图 294.4出货以及找零系统流程图 31第五章系统的仿真 325.1仿真软件Proteus的简介 325.2系统的仿真结果 33第六章本文总结 38参考文献 39附录A:系统原理图 41附录B:程序 42

第一章绪论1.1研究课题的背景以及意义在当今社会,世界各地的自动售货机都有着非常灵活的不同方式。例如,有一些采用在线的模式,自动售货机的库存信息经过电话网线发送到各种各样业务点的计算机中,这样可以使得自动售货机能够更准确地递补商品、选择和推送商品。除此之外,也可以往节能的观点出发,通过自动售货机的开发,诞生了更为合理、节能的饮料自动售货机。比如,在夏天经常是用电高峰期时期,然而自动售货机可以自动的维持在低温状态下,而不是打开空调。与老式的自动售货机相比,它强调了它的特性,在同样的功效下可以节省出非常多的电能。因此,所有这些都充分表明了业界为进一步合理化自动售货机而不断做出的努力。迈进21世纪后,各国的自动售货机都朝着节省人力资源和环保的方向发展。面对当今人人都处于追求快速的社会时代,大多数人对节省时间的想法也越来越看重,怎么才能迅速地购买客户需要的商品是客户和供应商都面临的一个问题。随着当代社会的快速进步,人们的生活水平质量日渐提升,自动售货机的市场发展将会越来越提出对多样性和针对性的需求。用自动售货机自助购买商品已经成为了市民所追求的消费方式。同时,这种便捷和快速的购物方式已经符合了当今迅速发展的现代社会中追求高质量生活的人的需求。自动售货机的存在已经成为每一条街道亮丽的风景线,可以在城市商业区、风景名胜区、办公楼大厅、车站、码头以及市中心等公共场所,用布局使城市环境美丽明亮,为大众创造便利的生活。自动售货机在全世界已经很受欢迎,是当今社会人类文明发展的象征性表现。虽然当今社会大多数人都习惯了支付宝,微信等各种采用网络支付的APP进行商品的交易,但是对学生而言是没有移动手机的,考虑到小学生和中学生的需求,我认为对于仅投币功能的自动售货机还是存在很大市场的。24小时无人值守的销售系统具有多种优势。例如,包括可以节省更多人力成本、占地面积小、具有有趣的自身成果、能够成功解决人力成本上涨问题等。自动售货机的诞生是随着对现代建设的需求,建设施政,提高经济活动效率,节省劳动力,将有限的人工产品集中在其他资源上完成的。1.2国内外的现状发展以及趋势沿着自动售货机的迅速发展方向观望,它的问世是通过两种结构形式的转变,主要是劳动密集型产业结构和技术密集型产业结构。由于不停的生产、不停的消费以及消费方式和销售方式的转变,不得不导致要求新的流通渠道的出现,而超市和百货商店等新的流通渠道正在崛起,人力成本也在上升,加上位置限制和购物的多样性以及便捷性等因素限制,无人值守自动售货机的诞生为必备机器。从宏观的角度来说,它是可以插入一元硬币、不同面额的纸币、信用卡等销售商品的机器。从微观的角度来说,它就是一台无人值守,自动销售商品的机器。从普及条件开始,自动售货机可以充分解决人力不足的问题,可以应对销售环境以及消费方式的变化,并且24小时无人值守销售系统可以节省更多的人力成本,需要较少的运营资本,占地面积小,同时也具有吸引人们购买好奇心的自身性能,能够成功解决人力成本上升问题等多种优势。自动售货机这一产品的方向正在向信息技术转移,其合理化也正在取得进一步进展。例如,自动售货机的库存信息及时通过电话线传送到到各营业部门的计算机中,实现了在线系统,这样可以方便产品的发运、补充和产品选择。另外,为了防止全球变暖,自动售货机的开发集中在节约能源上,节能软饮料自动售货机成为了这个行业的主流。在高峰夏季功耗期间,该类型号的自动售货机就算关闭或是损坏了冷却装置,一样可以维持在低温状态下,与传统的自动售货机比较,它不仅可以节省10-15%的电力,而且还具有多样性。在21世纪,自动售货机将朝着资源、节能、更高功能的方向进一步发展。在不同的国家,不同的城市,都有着自动售货机的身影,已经遍布各地,成为了不可或缺的一类销售模式。会有人存在疑问,当今社会发展如此迅速为什么还需要投币的机器呢。虽然社会在向无现金时代发展,但并不是人人都佩戴一部手机。例如,小学生,中学生以及不会使用智能手机的老年人,也或者是手机关机,忘了带手机等意想不到的情况出现。这时,自动售货机的存在的价值体现的淋漓尽致。自动化是制造、服务或零售业未来的趋势。自动化机器将代替人工设施,你可以看到更多的设施都在逐渐的被自动化机器代替。在这种大趋势下,自动售货机产业的未来是光明的。根据数据研究中心发表的2013-2018年预测报告。首先表明了全球自动售货机产业的销售行情、中国自动售货机产业的运营环境,然后分析了中国自动售货机产业的现状,最后介绍了中国自动售货机产业市场的竞争力结构。报告分析了中国自动售货机的业务条件,最后分析了中国自动售货机产业的发展前景和投资预测。1.3此课题研究的主要内容本课题是由80C51单片机对自动售货机的控制研究。本设计会利用到两个软件,分别是keiluVision5和proteus8软件。先利用proteus8连接各模块,搭建电路。再利用keiluVision5对C语言进行编程和调试,最后把生成的hex文件烧录到电路的单片机中,对设计好的硬件电路进行仿真。通过80C51单片机控制模块、输出液晶显示模块、4*4的矩阵键盘模块以及模拟推出商品的LED指示灯模块的连接,最后对自动售货机的功能实现进行调试和仿真。其中4*4矩阵键盘用来挑选所需要购买的商品,和对应商品的数量。然后通过矩阵键盘的其他按键来代替所投入货币的面额,模拟投币。采用LCD1602作为输出显示模块,通过液晶显示屏了解系统的按键功能以及系统所处的购买状态。最后用八个LED灯来代替商品的类别。识别投入的货币真假以及面额的功能是通过自动售货机的外部硬件电路的传感器检测的,采用不同的传感器分别对硬币识别和纸币真伪以及面额识别。因为本设计是研究自动售货机模拟功能的实现,对于货币的识别无法进行仿真,因此对两种不同的传感器模块只阐述其检测原理。第二章自动售货机系统的结构2.1自动售货机系统的概述2.1.1自动售货机系统的结构自动售货机是一种借由验钞机与顾客交易的机器,它能协助顾客购买想要的商品。在自动化领域,它是一种常用的设备,既可以节省人力,也可以方便交易,是当今社会一种新颖的商业零售模式,商业界又把它称24小时全天不打烊的微型小超市。自动售货机是机械和电力相结合的一种机器。它的工作方式是在初始化界面,用户通过按键来选择所需要购买的商品种类和数量,确定了商品的种类和数量之后按下确定按钮,系统会自动计算所需要投入的金额。投入的金额会通过外部硬件电路的传感器检测真伪后自动累加。当你投入的货币小于所需要投入的金额,系统会等待你继续投币,如果投入的货币大于或等于所需金额,在数秒之内,自动售货机将自动推出商品以及找零,完成此次交易。在上述任意阶段中可按下取消按键,则系统会自动返回初始化界面。系统大致的工作流程如下图所示: 图2.1自动售货机的总体工作原理图2.1.2自动售货机子系统概述本设计的控制系统是由四大块子系统组成,分别是等待交易系统、货币累计和找零系统、商品检测系统、售出累计及反馈功能系统。1)等待交易系统:自动售货机销售的产品分为多个项目,在销售前设置价格时,必须事先在控制系统中寄存。设置方法的原则:产品的价格由按钮和内存组成,经过按钮设置来确定选择货物的类型以及单价,同时将设置好的单价写入内存。系统内存自身需要在关闭电源时保护数据,这里采用软件设置。自动售货机在销售的货物很少、价格变动很少,使用同一种类型货币时,也可以使用相对简单的定价方法,叫做硬件设置。就是采用拨码式开关对应的方式。货币累计和找零系统:自动售货机的核心是中央处理器对货币的识别,取消交易的信号,无商品检查,购买商品信号的循环检测。当买家投入金额时,传感器识别货币后,把接收到的信号再发送到通信系统,通信系统再把识别的货币面额数值信号将发送到累计内存中,最后对其累加计算。如果所接收到的数值信号满足购买产品的条件,自动售货机就会对外部电机发出信号,通过外部电机推出商品,同时清除内存数量,自动跳转到找零系统,则完成一次自动售货。如果接收到的数值信号不符合商品购买的条件,系统会引导客户继续投入金额或取消交易。如果取消交易,自动售货机会返还之前投入的金额并终止交易,返回初始化屏幕。商品检测系统:为了防止货物数量的供应不足,需要设置两种开关,分别是接触开关和行程开关。将这两种开关设置于售货机的商品存储道的正下方。当售货机的存储道还有商品的时候,其中的行程开关就会保持闭合,中央处理器便控制售货机正常运行。如果商品一旦供应不足时,其中的行程开关便会自动断开,向中央处理器发出货物缺少的信号,通过检测后发送到外部电机,然后推动外部商品进入下方的存储道达到自动补充商品的目的,从而维持商品的充足。售出累计及反馈功能系统:售货机的中央处理器在完成每次交易后,通过通信系统向出货内存中累加计算已卖出的数值,经过自动售货机内部控制的按键可以显示出累计数据以掌握销售情况。此外,由外部按键操作在按下自测功能键后,出现自测功能信号,可以通过检测结果查看各个模块的功能情况,也可以检测自动售货机的货物存储道驱动功能。2.2自动售货机功能概述设计原理:通过4*4的矩阵键盘的按键来选择货物的类型以及数量,确定商品的类型和对应的数量之后,售货机会自动计算所需要的总价并在显示屏上显示。当投入货币时,售货机外部的识币器会对所投入的硬币或纸币进行识别,投入的金额大于等于所需要的金额既购买成功,反之取消交易。交易成功之后,售货机会根据所购买的商品种类通过LCD指示灯显示,中央处理器对外部电机发出指令,外部电机将购买的商品推送到取货口。售货机的功能概述:设定一共有八种商品可供选择,这八种商品可以通过矩阵键盘的按键来切换选择,再通过矩阵键盘的其他按键来确定该商品的购买数量。规定价格为1-8元不等,外部硬件的两种传感器分别能识别硬币和纸币。对于硬币只能识别1元;对于纸币可以识别1元、5元、10元、20元、50元以及100元纸币。在投入货币之后,系统可以实现自动累计计数功能,数据处理单元按照投入的总金额和购买所需的总金额进行计算,实现找零。当所投入的金额值小于购买商品的总价时,则系统提示继续投币或者取消购买。如果取消购买,则取消交易,系统返回初始化等待购买界面。本设计采用4*4的矩阵键盘,总共有12个功能按键,其中有两个按键是用来切换货物,两个按键是用来确定数量,除此之外还有六个不同面额的投币键、一个确认键和一个取消键。2.3系统的设计方案本系统以如下所示的工作流程开始系统的自动售货过程:启动系统,系统初始化,开始待机;消费者通过矩阵键盘来挑选货物的种类和数量并确定;经过确定商品种类和数量之后,系统会自动算出交易的总金额并等待消费者投币;消费者投入货币之后,系统会先检验货币真伪以及面额,经过检验后售货机会自动计算所投入的金额是否能够完成交易;当所投入的货币大于或等于所需要的金额时,在数秒内售货机会自动排出消费者购买的商品以及商品的数量。当所投入的金额小于所需要的的金额时,系统会直接退还投入的金额并返回购买的界面;推出货物之后,售货机转到找零系统推出多余的货币;系统完成一次购买,返回初始化界面;系统硬件电路的设计方案如图2.3:选用80C51单片机作中央处理器;选用LCD1602液晶为输出显示模块,与P0口连接;选用4*4矩阵键盘连接P1口作为商品以及数量的确认端;选用P3口连接LED显示,实现推出货物和找零功能;图2.3自动售货机系统原理图硬件端口的设计方案:货物选择以及数量的确定:此系统假设自动售货机的货物种类一共有8种,各商品价格以1、2、3、4、5、6、7、8的排序规律。不同的价格代表不同的商品,并且每卖出一种类型就由外部的电机自动完成后补货物。本设计设定每次购买最多只能限购10个。货物的选择由P3口控制的相应LED指示灯代替。如下列所示:货物1的选择用P2.0控制LED1灯亮;货物2的选择用P2.1控制LED2灯亮;货物3的选择用P2.2控制LED3灯亮;货物4的选择用P2.3控制LED4灯亮;货物5的选择用P2.4控制LED5灯亮;货物6的选择用P2.5控制LED6灯亮;货物7的选择用P2.6控制LED7灯亮;货物8的选择用P2.7控制LED8灯亮;系统输入口的功能是通过矩阵键盘来实现的,4*4的矩阵键盘与80C51的P1口相连接。商品的切换和货币面额的设定如下:当按下P1口的OX00按键时,表示的是商品单价的选择“price+”;当按下P1口的OX01按键时,表示的是商品单价的选择“price+”;当按下P1口的OX02按键时,表示的是商品单价的选择“nun+”;当按下P1口的OX03按键时,表示的是商品单价的选择“num-”;当按下P1口的0X04按键时,表示的是投入了1RMB;当按下P1口的0X05按键时,表示的是投入了5RMB;当按下P1口的0X06按键时,表示的是投入了10RMB;当按下P1口的0X07按键时,表示的是投入了20RMB;当按下P1口的0X08按键时,表示的是投入了50RMB;当按下P1口的0X09按键时,表示的是投入了100RMB;当按下P1口的0X0f按键时,它代替的是商品交易的成功“OK”按钮;当按下P1口的0X0e按键时,它代替的是商品交易的取消“NO”按钮;显示模块:此设计的显示模块是由P0口和P3.0(RS)、P3.1(RW)、P3.2(E)来对LCD1602液晶显示进行控制并体现商品购买的状态,同时用P2端口对LED灯进行控制来体现货物的种类切换。由上述可得,用此模块来显示购买商品的种类和数量,以及总价和找零等。 第三章自动售货机的硬件设计3.180C51的介绍3.1.180C51的基本概述80C51芯片是由Intel公司所开发的,它的结构是在8048的结构上更加完善而来的,对8048的缺点进行改进,在8048的基础上增加了如MUL、DIV、SUBB、CMP以及16位数据指针,布尔代数运算和相关指令等,其中也包含了5个中断源和串行通信功能。除此之外,80C51芯片也可以在低功耗模式下进行工作,分为空闲和掉电两种方式,可以自主选择任意模式进行工作。在空闲模式下,即使将CPU冻结,也可以保持定时器、中断、RAM和串行口的正常工作。在掉电模式下,芯片的时钟会停止震荡,芯片的其他功能也停止工作,芯片自动保存RAM中的数据。图3.180C51基本结构3.1.280C51的引脚功能图3.280C51引脚图80C51单片机一共包含40个引脚,可以将这40个引脚分为四类:电源引脚,控制引脚,时钟引脚和I/O引脚。电源引脚:VCC:+5V电源;VSS:地线;时钟引脚:XTAL1和XTAL2:外接晶体引线端。当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。控制引脚:ALE:地址锁存控制信号。在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。此外,由于ALE是以晶振1/6的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。PROG:内部含有EPROM的芯片,此引脚输入编程脉冲。PSEN:外部程序存储器读选通信号。在读外部ROM时,PSEN有效(低电平),以实现外部ROM单元的读操作。RST:复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作。EA:访问程序存储控制信号。当信号为低电平时,对ROM的读操作限定在外部程序存储器;当信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。I/O引脚:P0口:P0.0~P0.7,是8位双向口线。P1口:P1.0~P1.7,是8位双向口线。P2口:P2.0~P2.7,是8位双向口线。P3口:P3.0~P3.7,是8位双向口线。其中P3口还包括第二功能,用于特殊信号输入输出和控制信号。在每次使用单片机之前,我们都要使单片机复位,让CPU以及其他功能部件都处于一个确定的初始状态,以消除上一次用户的操作对本次用户操作的影响。51的RST引脚是复位信号的输入端。复位信号是高电平有效,持续时间要有24个时钟周期以上。例如:若MCS-51单片机的时钟频率为12MHz,则复位脉冲宽度至少应为2us。通常,80C51的复位有自动上电复位和人工按纽复位两种自动上电复位电路的工作原理是:电容在通电的时候相当于短路情况,导致RST引脚上的电位为高电平,这样电容会因为电阻被充电,然后RST端逐渐降低电压直到变为低电平,从而使单片机开始正常工作。由于自动售货机的功能需求,本次设计采用自动上电复位电路。3.2LCD1602显示模块的介绍3.2.1LCD1602的基本概述LCD1602是一种工业字符型液晶,LCD1602液晶显示原理LCD1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。LCD1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块,16代表每一行可以显示的字符数,02代表可以显示的行数,所以它一共可以显示32个字符。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形,所以是一种专门显示字母和数字以及符号的液晶显示模块。液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在各类仪表和低功耗系统中得到广泛的应用。根据显示内容可以分为字符型液晶,图形液晶。根据显示容量又可以分为单行16字,2行16字,两行20字等等。3.2.2LCD1602的引脚结构图3.3LCD1602的引脚图LCD1602一共有16个引脚,如下介绍。VSS接电源;VDD接+5V;VO是液晶显示的偏压信号,可接10K的3296精密电位器,或同样阻值的RM065/RM063蓝白可调电阻;RS是命令/数据选择引脚,接单片机的一个I/O,当RS为低电平时,选择命令;当RS为高电平时,选择数据;RW是读/写选择引脚,接单片机的一个I/O,当RW为低电平时,向LCD1602写入命令或数据;当RW为高电平时,从LCD1602读取状态或数据。如果不需要进行读取操作,可以直接将其接VSS;EN,执行命令的使能引脚,接单片机的一个I/O;D0—D7,并行数据输入/输出引脚,可接单片机的P0—P3任意的8个I/O口。如果接P0口,P0口应该接4.7K—10K的上拉电阻。如果是4线并行驱动,只须接4个I/O口;A背光正极,可接一个10—47欧的限流电阻到VDD;K背光负极,接VSS;3.2.3LCD1602的工作原理DDRAM就是显示数据RAM,用来寄存待显示的字符代码。共80个字节,其地址和屏幕的对应关系如下图。图3.4DDRAM相当于计算机的显存,我们为了在屏幕上显示字符,就把字符代码送入显存,这样该字符就可以显示在屏幕上了。同样LCD1602共有80个字节的显存,即DDRAM。但LCD1602的显示屏幕只有16×2大小,因此,并不是所有写入DDRAM的字符代码都能在屏幕上显示出来,只有写在上图所示范围内的字符才可以显示出来,写在范围外的字符不能显示出来。这样,我们在程序中可以利用下面的“光标或显示移动指令”使字符慢慢移动到可见的显示范围内,看到字符的移动效果。LCD1602是一种字符点阵显示器,为了显示一种字符的字形,必须要有这个字符的字模数据。如图所示。图3.5字模上图的左边就是字符‘A’的字模数据,右边就是将左边数据用“○”代表0,用“■”代表1。从而显示出‘A’这个字形。从图12可以看出,字符‘A’的高4位是0100,低4位是0001,合在一起就是01000001b,即41H。3.2.4LCD1602的基本指令LCD1602的基本操作分为四种:读状态输入RS=0,RW=1,E=高脉冲。输出:D0—D7为状态字;读数据输入RS=1,RW=1,E=高脉冲。输出:D0—D7为数据;写命令输入RS=0,RW=0,E=高脉冲。输出:无;写数据输入RS=1,RW=0,E=高脉冲。输出:无;LCD1602的基本指令介绍:图3.6指令表工作方式设置指令:*:不关心,也就是说这个位是0或1都可以,一般取0;DL:设置数据接口位数;DL=1:8位数据接口(D7—D0);DL=0:4位数据接口(D7—D4);N=0:一行显示;N=1:两行显示;F=0:5×8点阵字符;F=1:5×10点阵字符;开关显示控制指令:D=1:显示开,D=0:显示关。C=1:光标显示,C=0:光标不显示。B=1:光标闪烁,B=0:光标不闪烁。进入模式设置指令:I/D=1:写入新数据后光标右移。I/D=0:写入新数据后光标左移。S=1:显示移动。S=0:显示不移动。光标或显示移动指令:SC=1:显示移动字符。SC=0:移动光标。RL=0:左移。RL=1:右移。RAM地址设置:它是用来显示数据的功能。因为液晶显示屏内设有RAM数据地址指针,使用者可以通过它内部的80字节的数据来显示RAM。他的命令设置格式为:80H+地址码。前面的80H是命令码,后面所加上的地址码是决定了字符在液晶显示屏上的输出位置。检测忙标志:BF=0:液晶显示屏处于不忙状态,此时可接收命令和数据。BF=1:液晶显示屏处于忙的状态,此时不接收中央处理器发来的所有数据和命令3.2.5LCD1602时序操作读操作时序图如下所示:图3.7写操作时序图如下所示:图3.83.3矩阵键盘的设计3.3.1矩阵键盘的概述键盘可以向单片机输入数据和命令等功能,它是作为单片机与外界交流的媒介。矩阵式键盘也被称作为行列式键盘,它用于被需要的按键数目比较多的场合,它是由行线与列线相互交叉组合而成的,按键就处于行线与列线的交叉点处。一个4*4的矩阵键盘可以包括16个按键,但只需要8个并行的I/O口就可以完成,大大缩小了所需要的I/O口线。显然,在需要按键数目较多的场合,4*4的矩阵键盘相比于独立式键盘更有优势,而且行数和列数越多,效果就越明显。3.3.2矩阵键盘的基本结构和接口设计图3.9矩阵键盘结构图如矩阵键盘结构图所示,假设行线通过上拉电阻接+5V,当没有键被按下的时候,行线自然处于高电平状态,一旦按键被按下,行线就会和对应的列线短接,进而使得此时行线的电平状态由对应的列线电平决定,这是作为检测键盘是否有按键被按下的关键判断。下面讨论矩阵式接盘的扫描工作原理。识别矩阵键盘有哪一个键被按下一般分两个步骤:第一步,要先判断键盘中是否有按键被按下;第二步,如果有按键被按下,检测出被按下的按键所处的位置。下面以图3.7中的S4按键被按下为例,来解释说明扫描法检测此按键的过程。第一步,先判断键盘中是否有按键被按下。首先,要把所有的列线的电平全部置为0,紧接着检查所有的行线的电平是否为高电平,一旦不全为高电平,那么就代表有按键被按下,反之没有按键被按下。比如,S4按键被按下时,第一行的行线会出现低电平,但并不清楚是否为S4按键按下所致,因为如果S4所在的同一行按键被按下都会使得第一行行线为低电平,所以只能得出第一行有按键被按下的结论。第二步,检测出被按下的按键所对应的键号。这里采用逐行扫描法,在某一时刻只让一条列线处于低电平,其他所有的列线均处于高电平。当第一列为低电平时候,其余三列为高电平,由于是S4按键被按下,所以第一行的行线还是处于高电平的状态;紧接着让第二列的列线处于低电平,其余三列为高电平,会发现与上述一样,第一行的行线仍处于高电平状态;再让第三列的列线处于低电平状态,其余三列处于高电平状态,第一行的行线还是与上述结果一致;直到让第四列的列线为低电平时,其余三列为高电平,此时第一行的行线的电平会被置为0,由此可得,检测出被按下的按键为S3。其余按键都按照此原理检测。3.4识别货币的传感器选择3.4.1硬币的识别本系统设计采用HX711对一元硬币的重量检测,通过对硬币重量的检测从而识别硬币的真伪。检测原理是经过应变片式传感器,对电阻两端的电压进行检测,采用AD转换芯片HX711将模拟量转化为数字量,最后单片机在内部对数据进行读取,判断硬币的真伪。在投币过程中,一旦检测出所投入的货币是假币,售货机会直接弹出假币,只有检测出为真货币才会被累计叠加。HX711采用了海芯科技集成电路专利技术,是一款专为高精度电子秤而设计的24位A/D转换器芯片。与同类型其它芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。降低了电子秤的整机成本,提高了整机的性能和可靠性。该芯片与后端MCU芯片的接口和编程非常简单,所有控制信号由管脚驱动,无需对芯片内部的寄存器编程,输入选择开关可任意选取。通道A或通道B,与其内部的低噪声可编程放大器相连。通道A的可编程增益为128或64,对应的满额度差分输入信号幅值分别为±20mV或±40mV。通道B则为固定的32增益,用于系统参数检测。芯片内提供的稳压电源可以直接向外部传感器和芯片内的A/D转换器提供电源,系统板上无需另外的模拟电源。芯片内的时钟振荡器不需要任何外接器件。上电自动复位功能简化了开机的初始化过程。如图3.8所示为应变片式传感器的工作原理图,当电桥的四个臂都发生应变的时候,即转化成电阻的变化,从而转化为测量电路的电压变化。最后由输出电压的数值经过换算就可以得到被测物体的重量。图3.10应变片式传感器原理传感器的具体接线情况如下所示,附上所绘制的原理图。产品建议使用通道A与传感器相连,A通道作为小信号输入通道;而通道B常用于系统参数检测,如电池电压检测等等。图3.11接线图图3.12原理图模块其中特别注意,传感器的形变非常微小,所在使用的过程中需要特别留意,不要发生超载。一旦过度超载,在撤除外力之后不能恢复原来的形状,即发生了不可逆的塑性形变,则传感器已经被损坏。3.4.2纸币的识别本设计采用TCS230颜色传感器来检测纸币的面额。我们都知道,对于纸币来说,不同面额的纸币都由不同颜色组成,所以我们可以通过采取纸币的颜色对其进行辨别。将该传感器与单片机相连,通过采集到的Red,Blue,green值(简称R,G,B值)发送到单片机中,单片机通过处理将R,G,B,值转为为HSL颜色空间数据(简称H值),通过对得到的H值参考范围最终确定纸币的面额。在本设计中,如果纸币是假币,不会被售货机吸入腔内,只有真纸币会被累计叠加。TCS230的检测原理概述:TCS230是一种现代新型传感器,直接把颜色转变为数值量输出,不需要AD转换,使用非常方便。由三原色感应原理可知,如果知道构成各种颜色的三原色的值,就能够知道所测试物体的颜色。对于TCS230来说,当选定一个颜色滤波器时,它只允许某种特定的原色通过,阻止其他原色的通过。例如,当选择红色滤波器时入射光中只有红色可以通过,蓝色和绿色都被阻止,这样就可以得到红色光的光强;同时,选择其他的滤波器,就可以得到蓝色光和绿色光的光强。所以得到三原色的值之后,通过这三个值,就可以分析投射到TCS230传感器上的光的颜色。利用这一原理就可以识别纸币的面额。传感器管脚图和管脚功能如图所示。图3.13传感器实物图图3.14管脚图和连接方式识别系统的硬件设计:单片机与TCS230连接时,选择百分百的频率输出,所以S0,S1置1,OUT引脚与单片机计数端相连,由于计数端最高接受500Khz的信号,所以S0和S1可以直接与+5V电源相连。本设计只采用一个TCS230,所以GND可以直接与OE相连,因此测量一组颜色信息时,传感器与单片机连接只需要通过三个引脚,分别是S2,S3,OUT。原理图模块如下所示:图3.15传感器原理图3.5货物选择系统商品的选择切换是通过矩阵键盘来实现的。4*4矩阵键盘是自动售货机中的输入设备,由于其低成本、简单的结构和易用性,被广泛采用于单片机应用中。根据接口的原则,键盘可以分为两类:编码和非编码。主要区别在于如何识别关键字符并提供其关键代码。编码式键盘主要用于使用硬件来识别按键;非编码的键盘主要由软件实现对按键的识别。中央处理器通过查询或中断的方式来确认是否有键按下,并且检测出是哪个按键。再通过跳转指令至对应代码段,执行该键的功能程序,执行结束后再返回主程序。本次设计的矩阵键盘包括以下几点功能。能够准确检测键盘上有无按键按下,为了消除键盘的按键机械触点抖动可以采取硬件或软件措施;有良好的逻辑处理方法,按键处理可以独立开展,在处理期间对任何一个按键的操作不对系统产生影响,只要按键按下系统都只执行一次按键功能程序;输出的按键值或者键号可以达到很精确的状态来正确执行跳转指令;3.6出货以及找零系统在本次设计中,一共设定了八种饮料,单价分别是1、2、3、4、5、6、7、8元不等,待顾客通过矩阵键盘切换选择后,再确定购买的数量,确定购买之后向售货机投入可识别的货币(货币可以累加计数)。当所投入的金额大于等于选择的购买的总价时,售货机会推出商品,并做运算,计算多余的货币找零。由于对单片机的输出来说,只分为高低电平。所以只需要在自动售货机中安装一个电机,在买家投入货币后将信号送入系统通过相应电路来驱动电机推出相应商品即可。本设计为了模拟实现此功能,我们选用光敏三极管来实现这一功能。当单片机输出端为高电平时,则驱动二极管发光,使驱动电机电路导通,这时驱动电机开始工作等待信号。当单片机输出端为低电平时,则二极管熄灭。驱动电机电路断开,即完成推货动作,LED灯闪烁。售货机通过投币时累计的计数和购买商品的总金额进行相减的运算,在LCD液晶上显示出余币的数量,顾客取走货物后自动退还余币。第四章自动售货机的软件设计4.1自动售货机总流程图本系统设计的总流程图包括三个子系统流程,分别是商品选择系统流程,投入货币系统流程和出货以及找零系统流程。首先介绍本系统的总流程图。在无交易的情况下,系统处于初始化界面,等待购买。如果产生交易,首先通过矩阵键盘的按键来选择所需要购买的商品,在确定商品种类之后,再次通过矩阵键盘来确定购买商品的数量。确定后系统自动计算出所需的总价,之后便进入到投币系统。经过系统外部硬件传感器对货币辨别真伪后,就进入到出货以及找零系统。如果投入的货币大于所需的总价,系统自动推出商品同时完成找零。其中,在上述的任意阶段,可通过矩阵键盘上的“NO”直接取消交易,返回初始化界面。系统总流程图如下所示。图4.1系统总流程图4.2商品选择流程图本设计设定了1—8元不等的商品种类,且对应着1—8号的商品。当系统启动之后,可以通过矩阵键盘上“PRICE+”和“PRICE-”来切换商品的种类,待购买的商品确定之后,在通过键盘上“NUM+”和“NUM-”来确定商品的数量,之后按下“OK”键,会自动跳转到投入货币系统。按“NO”键,则取消该交易,直接返回初始化界面,等待购买。如图以选择一号商品为例。图4.2货物选择流程图4.3投入系统流程图经过确定商品的种类和数量之后,系统就会进入到投币系统。利用矩阵键盘模拟投币,此设计设有对应的按键分别为1RMB,5RMB,10RMB,20RMB,50RMB,100RMB。当你还未投入金额或者是投入的金额小于购买的总价,系统会显示继续投币的状态。直到你所投入的金额大于或等于购买的总价,此时系统就会进入到出货和找零系统。此流程如下图所示。图4.3投币系统流程图4.4出货以及找零系统流程图上述投币系统完成之后便进入到出货以及找零系统。当你投入的货币在购买商品完成的同时没有多余货币时,系统直接推出商品;当你投入的货币在购买商品完成的同时还留有余币,系统会推出商品,与此同时返还多余的余币。此流程如下图所示。图4.4出货以及找零系统流程图第五章系统的仿真5.1仿真软件Proteus的简介Proteus仿真软件是LabCenterElectronics公司推出的一个EDA工具软件,经常用来对单片机应用系统进行虚拟仿真的软件开发平台。Proteus是目前世界上唯一支持嵌入式处理器的虚拟仿真平台,除了可以仿真模拟电路,数字电路之外,还可以仿真8051,PICI12/16/18系列,AVR系列,MSP430等各主流系列的单片机,以及各种外围可编程接口芯片。此外还支持ARM7,ARM9等型号的嵌入式微处理器的仿真。由于Proteus的虚拟仿真,不需要用户硬件样机,就可以直接在PC机上对单片机系统进行虚拟仿真,将系统的功能以及运行过程形象化,可以像焊接好的电路板一样看到单片机系统的执行效果。Proteus元件库中具有几万种元件模型,可直接对单片机的各种外围元件及电路进行仿真,如RAM、ROM、总线驱动器、各种可编程外围接口芯片、LED数码管显示器、LCD显示模块、矩阵式键盘以及多种D/A和A/D转换器等。此外还可对RS232总线、IC总线、SPI总线进行动态仿真。Proteus提供了各种信号源、虚拟仿真仪器,并能对电路原理图的关键点进行虚拟测试。Proteus提供了丰富的调试功能。在虚拟仿真中具有全速、单步、设置断点等调试功能,同时可观察各变量、寄存器的当前状态。尽管Proteus具有开发效率高,不需要附加的硬件开发装置成本等优点,但是不能进行用户样机硬件的诊断。所以在单片机系统的设计开发中,一般是先在Proteus环境下绘出系统的硬件原理电路图,在Keil-C51环境下书写并编译程序,然后在Proteus环境下仿真调试通过。依照仿真结果,来完成实际的硬件设计,并把仿真通过的程序代码通过编程器或在线烧录到单片机的程序存储器中,然后运行程序观察用户样机的运行结果,如有问题,再连接硬件仿真器或直接在线修改程序去分析、调试。5.2系统的仿真结果完成系统软件设计之后,还需要对系统电路进行调试,利用Proteus8和KeiluVision5软件对系统进行仿真,仿真的结果如下图所示:当系统启动时,系统处于待购买界面,等待购买按键被按下。仿真结果如下图5.1所示:图5.1系统待购买界面开始购买时,通过按键“PRICE+”和“PRICE-”来选择商品的种类,这里以四号商品为例。确定商品种类后,D4-LED指示灯点亮代表你选择的商品种类。再通过按键“NUM+”和“NUM-”来选择商品的数量。同理,在此以购买数量为十为例。仿真结果如下图5.2所示:图5.2系统选择货物种类和数量当选择好商品的种类和对应的数量时,按下“OK”按键,系统就会自动计算出所需的总价,从而进入到系统的投币阶段。如图5.3所示:图5.3系统等待投币状态在进入到等待投币的状态下,可供投入的货币面额分别1,5,10,20,50,100这几种,单类面额可以累积叠加。这里以投入1,5,10,20为例。仿真结果如下图5.4所示:图5.4继续投币状态因为投入的货币小于所需的总金额,所以系统会一直处于等待继续投币的状态,直到投入的金额大于或的等于所需的总金额。所以,在上述已投入36RMB的基础上,再投入50RMB。最终结果投入86RMB,因此找零46RMB。仿真结果如下图5.5所示:图5.5系统推出商品和找零状态上述过程即为完成一次购买,再推出商品和找零后,系统又再次返回待购买界面,等待购买。仿真结果如图5.6所示:图5.6系统返

温馨提示

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

评论

0/150

提交评论