问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

基于AT89C51单片机的自动贩卖机设计

创作时间:
作者:
@小白创作中心

基于AT89C51单片机的自动贩卖机设计

引用
CSDN
1.
https://blog.csdn.net/qq_64505944/article/details/146400251

自动售货机作为自动化技术的一个典型应用,已经成为现代生活中不可或缺的设备之一。随着人们生活水平的提高,自动售货机在便捷性、可靠性、交互性和智能化等方面的需求日益增多。本文基于INTEL公司出品的AT89C51单片机,结合先进的硬件和软件技术,实现了一个高效、智能、易操作的自动售货机系统。

系统结构

自动售货机是集光、机、电一体化的自动化装置,能够独立完成售货、支付、找零等一系列功能。其工作原理是:在初始化界面,顾客选择商品的种类和数量,投入货币后按下确定键,系统计算出商品的总价,并提示顾客投入相应金额。货币通过外部硬件检测传感器来验证其真假,并进行累加计数。如果投入的货币足够支付所购商品的总价,系统将跳转至下一步骤进行商品出货;如果顾客选择取消购买,系统则返回主界面,退还货币。自动售货机通过货币总额与商品总价的差值来计算找零金额,并完成交易。这种智能化的自动化流程简化了购物过程,提高了消费者的购物体验,同时也提升了售货机的管理效率。

硬件设计

AT89C51单片机

由INTEL公司出品的MCS-51系列的AT89C51其实用性非常高。由于它是采用CHMOS的工艺技术制造,所以它是一款稳定性很高的高性能8位单片机,是HCMOS中的最基本的产品之一。在制作工艺的程中不仅继承和扩展了先前单片机的指令系统和体系结构更是把HMOS的高速高密度的技术特点和CHMOS的低功耗特点相结合。为了满足需求,在AT89C51内部置入CPU、RAM(128字节)、I/O(32个双向输入输出)、定时器/计数器(16位)、串行通信口、两级中断结构以及片内时钟震荡电路。此外,它还可以通过选择空闲和掉电的方式用于低功耗模式来进行工作,空闲模式下保持串行口、中断系统、RAM和定时器正常工作而同时冻结CPU来保证其正常运行。掉电模式下,自动保存RAM数据,时钟震荡停止、芯片的其他功能停止工作。

LCD1602液晶显示器

LCD1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在各类仪表和低功耗系统中得到广泛的应用。根据显示内容可以分为字符型液晶,图形液晶。根据显示容量又可以分为单行16字,2行16字,两行20字等等。

4x4矩阵键盘

4x4矩阵键盘是自动售货机中的输入装置,价格低廉,结构简单,使用方便,在单片机应用系统中得到广泛地应用。键盘按照接口原理可分为编码键盘与非编码键盘两类,它们的主要区别是识别键符及给出相应键码的方法。编码键盘主要是用硬件来实现对键的识别,非编码键盘主要是由软件来实现键盘的定义与识别。

CPU可以采用查询或中断方式了解有无将键输入,并检查是哪一个键按下,然后通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。

一个完整的矩阵键盘控制程序应该具备以下功能:

  • 能够准确检测键盘上有无按键按下,为了消除键盘的按键机械触点抖动可以采取硬件或软件措施;
  • 有良好的逻辑处理方法,按键处理可以独立开展,在处理期间对任何一个按键的操作不对系统产生影响,只要按键按下系统都只执行一次按键功能程序;
  • 输出的按键值或者键号可以达到很精确的状态来正确执行跳转指令;

货币识别系统

目前在国内,对于硬币的识别可采用多种方法,比如激光扫描、应变片测重量、光电管检测大小等,然而在自动售货机中采用结构简单、成本低、测量准确及其非接触测量等优点集一身的涡流传感器检测。

电涡流检测原理:以高频的电信号通过一个线圈,在这个过程中产生变化的磁场通过硬币的表面即变化磁通通过硬币的表面,相应地硬币表面上产生电涡流,并产生反向的变化磁场,以削弱原来线圈产生出来的磁场。然后根据激励磁场线圈幅值的变化,通过变化的给定值即可测出真假硬币。

在实际应用中,由于某些条件的原因会影响到电子线路元器件的判定值,比如温漂的影响,由于材质的差异比较小,从而导致信号值得差距变小,若受到的温漂影响稍微增强一点,那么则很难精确地确检测出假币,为此可以采用电桥的方法来进行改善弥补,从而减小由温漂造成的干扰。图中L3、L4都是激励线圈,L3上方放置一个标准的1元硬币或其它用低碳钢做成的圆片,L4为检测有无硬币通过和是否为真假币的激励线圈,A、B两信号通过通信模块同时送到后续的运算放大器之中进行相减,从而抵消因温漂所造成的影响。

出货及找零系统

在本系统中,总共设计了8种饮料,价格分别为1、2、3、4、5、6、7、8元不等,由顾客通过按键选择确定后,投入售货机可识别的货币(货币可以累加计数)。当投入的货币总值不够购买选择的商品总值时,售货机显示金取消交易并退出所投货币,如果所投货币大于等于购买选择的商品总值时,由售货机出货并计算剩余货币。但是在单片机的输出中只有高电平和低电平之分。在自动售货机中只需要安装一个驱动电机,待顾客投入货币后将信号送入系统通过相应电路来驱动电机推出相应商品即可。本设计只模拟实现此功能,负责软件仿真,暂不考虑硬件电机方面,只作介绍。在这里,我们选用光敏三极管来实现这一功能。当单片机输出端为高电平时,则驱动二极管发光,使驱动电机电路导通,这时驱动电机开始工作等待信号。当单片机输出端为低电平时,则二极管熄灭。驱动电机电路断开,即完成推货动作,LED灯闪烁。售货机通过投币时累计的计数和购买商品的总金额进行相减的运算,在LCD液晶上显示出余币的数量,顾客取走货物后自动退还余币。

软件流程图设计

本设计提供1-8元不等的货物,分别用1-8的序号对应货物。当启动系统后进入初始化界面,等待顾客选择货物种类和数量,按键“OK”则跳入投币系统,按键“NO”则返回初始化等待界面。在这里只以1号商品作为例子来讲解具体流程如图4.1:

在4*4矩阵键盘上模拟投入货币,若投入一种面值的货币就累加一种面值的货币,如果没有投入货币或者投入货币值不足购买商品的话则提示继续投币。当所投货币足够时,进入出货找零系统如图4.2所示:

进入出货找零系统时,如果购买商品后没有剩余货币则直接推出商品,若还有剩余货币则找出余币,如图4.3所示:

系统软件仿真

设计好程序之后,还需要通过protues7.5和keil3.0来实现程序的调试和仿真,仿真结果图如下:

  • 当启动自动售货机时机器进入初始化等待状态,等待按键输入,如图5.1所示:

  • 通过按键price+和price-来选择货物的种类,然后通过num+和num-来选择所购买货物的数量,同时代表被选择货物的LED指示灯亮,如图5.2所示:

  • 当选择好货物后,按下“OK”键进入到投币系统,此时机器会自动计算出所购货物总金额,如图5.3所示:

  • 当机器计算出总价等待顾客投入货币并按下“OK”键后,当投入货币货币值大于或等于总价时就出货并找零,若投入货币货币值小于总价则不能出货只能按下“NO”退出所投货币或继续投币,如图5.4所示:

  • 当完成以上步骤后则完成一次自动购物过程,机器自动复位回到初始化界面如图5.5所示:

最终,系统能够准确执行从顾客选择商品、投入货币到商品出货、找零返回等一系列操作,完全符合设计要求。通过仿真验证,系统在操作流畅性、稳定性和准确性上都表现出色,成功实现了基于单片机的自动售货机设计目标。这一设计不仅提高了自动售货机的自动化程度,还能为实际应用中售货机的研发提供理论依据与技术支持。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号