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

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式

文章目录

    • 概要
  • 一、总体方案设计
    • 2.1系统总体方案设计
    • 2.2 系统工作流程设计
  • 二、自动售货机系统的硬件设计
    • 3.1 主控电路的设计
  • 四、系统实现
    • 5.1 仿真软件介绍
    • 5.2 系统仿真结果
  • 五、 文章目录

概要

  本文设计基于单片机的自动售货机系统,分为硬件电路设计与软件设计。硬件电路设计,本系统由ST(意法半导体)公司设计和生产的STM32F103C8T6单片机为核心,根据设计功能要求,将硬件电路模块化,分为:电源模块、投币模块、电机模块、按键输入模块、OLED显示模块、报警电路模块及LED灯模块,通过按键输入模块对商品种类和数量的选择以及出货、退币的功能,用OLED显示屏模块实时显示购买的情况以及投币数量,通过LED灯模块提醒顾客哪个通道出货,用蜂鸣器和LED灯提示顾客投币不足。软件部分,根据系统需要实现的功能,运用KeilμVision5编写主程序代码,并调用各个子程序来实现自动售货机的基本功能。最后运用Proteus软件对实验电路和编写好的程序进行仿真,模拟售货过程。本文研究的自动售货机系统具有实时显示商品种类和数量以及投币数量,退币及找零,报警等功能,使得系统更加智能快捷更具有实时性,直观性。

关键词:自动售货机STM32F103C8T6

一、总体方案设计

2.1系统总体方案设计

  本次设计的自动售货机以STM32F103C8T6芯片为核心,其自动控制系统以模块化方式进行设计,主要由电源电路模块、商品选择模块、投币模块、OLED显示模块、出货模块、报警模块及LED灯模块组成。其中,商品选择模块采用按键输入,方便顾客选择自己想要的商品种类及其数量;投币模块采用TW-2020型硬币器,进行顾客投币及找零;OLED显示模块采用1.3寸OLED显示屏,显示商品的种类、数量,投币数量及电机处于出货状态还是投币不足状态;出货模块采用CY-VGMS-277弹簧电机,将顾客购买的商品移出;报警模块包含声音报警和灯光报警,并以蜂鸣器的声音方式发出,同时LED灯提醒消费者投币不足;LED灯模块就采用LED灯,提示顾客从哪一个通道出货。整个系统的总体设计框图,如图2.1所示。
基于单片机的自动售货机系统设计_第1张图片

图2.1系统总体设计框图

2.2 系统工作流程设计

  本文设计的自动售货机具体的工作流程如下:
(1)通过按键选择购买商品的种类及数量,并在OLED显示屏中显示总金额;
(2)投入硬币,硬币数也直接显示在OLED屏中;
(3)若投入金额足够,点击出货按钮,开始出货并找零;
(4)如投入的硬币不够,蜂鸣器报警提示,可选择继续支付或退币;
(5)完成交易后,系统将恢复初始界面。系统工作流程图,如图2.2所示。
基于单片机的自动售货机系统设计_第2张图片

图2.2系统工作流程图

二、自动售货机系统的硬件设计

  
  本文所研究的自动售货机系统,系统硬件由STM32单片机、电源模块、投币模块、电机模块、按键输入模块、OLED显示模块、报警电路模块及LED灯模块等部分组成。该系统采用AC220v电源供电,通过S-50-24直流开关电源,将AC220V转换成DC24V[16],DC24V可以给售货机货物电机模块供电。电源模块中还有内部电池供电的单输出升压转换器,可输出DC12V电压,为售货机的硬币器供电,DC12V再由AMS1117-5V降压芯片转化为DC5V,再由AMS1117-3.3V降压芯片将DC5V的电压转化为DC3.3V。模块化设计能简化系统的设计,减少系统的功耗,简化运行,通过OLED显示屏顾客可直观地选择自己想要的商品。自动售货机原理图如图3.1所示。
基于单片机的自动售货机系统设计_第3张图片

图3.1自动售货机原理图

3.1 主控电路的设计

  主控电路是系统硬件的核心。在上一章中确定了以单片机STM32为控制器的控制方案,因此本课题设计的主控电路是单片机STM32F103C8T6最小系统组成。
 &emspSTM32F103C8T6是意法半导体(ST)自主研发的一款基于Cortex-M3芯片的嵌入式微控制器芯片,其核心采用ARMV7-M结构设计[9],在医疗、航空、农业、环保、智能电子等领域,具有低功耗、低成本、处理速度和可靠性等优点。该芯片能够同时处理32比特的资料,最高可达72MHz的时钟频率,与8位51单片机相比,具有更大的容量和更快的运算速度[10]。该芯片内置256K的FLASH内存,用于存储;此外,还有48K位元组的SRAM内存,用于储存程式执行时所需的数据及变数。同时,该系统还能运行Free RTOS、μC/OS-II等小型嵌入式系统,使系统执行更加高效、稳定。
  该芯片具有三个12位的模数转换器,其最大速度可达1us/次。该ADC具有18个不同的信道,能够对16个外部和2个内部的信号进行检测,每个信道的转换可以分为一次、连续、扫描和间断四种方式进行,可以在不同的情况下进行快速的切换,而不会互相影响,同时还可以触发中断事件。2个12位D/A转换器,可以将数字信号转化为模拟信号后输出。芯片内部拥有7个通道的DMA1和5个通道的DMA2,可以方便实现外设与存储器或存储器与存储器之间数据传输,不需要经过MCU处理,节省了MCU资源开销,支持的外部设备有定时器、SDIO、I2C、SPI、I2S、DAC、ADC和USART等。
  单片机最小系统是一种最小的系统单元,它使单片机可以正常工作,并且发挥出最完全的功能。单片机最小系统包括STM32单片机,时钟电路,电源管理电路,JTAG电路,重置电路等[17]。如图3.2所示。
基于单片机的自动售货机系统设计_第4张图片

图3.2STM32F103C8T6引脚图
  自动售货机系统IO表见下表3.1。
表3.1自动售货机系统IO表
基于单片机的自动售货机系统设计_第5张图片

四、系统实现

5.1 仿真软件介绍

  本项目所使用的模拟软件为Proteus,由英国实验室开发。该软件是当今世界上最成熟、最完善的嵌入式系统开发和模拟平台。
  该系统支持各种类型的MCU(51)、PIC(AVR)、STM32(STM32),它还支持当今最受欢迎的MCU开发环境(Keil,MPLAB,IAR),是一种集成和扩充的电子电路模拟软件[23]。该软件的特点:
(1)这些都达到了我们所设计的MCU软件模拟系统的要求,与其他同类产品相比,有着显著的优越性。(2)仿真系统包括:模拟电路,数字电路,MCU及其周边电路,RS—232动态仿真,1C调试,SPI调试,键盘和LCD系统仿真;有各种虚拟仪表,例如:示波器、逻辑分析仪、信号发生器等。
  Proteus与其他的MCU模拟软件相比,该软件不仅能仿真MCU的CPU工作状况,而且能对没有MCU的外部电路以及其它没有MCU的情况进行仿真。因此,在进行仿真和程序调试时,需要考虑的不再是执行某一指令时的问题,而是微处理器的暂存器和存储器的改变,从工程的观点,直接观察程式的操作与电路的运作。在一定程度上,这种模拟试验可以弥补试验与工程应用之间的矛盾与现象[24]。Proteus软件的界面如图5.1所示。
基于单片机的自动售货机系统设计_第6张图片

图5.1Proteus软件的界面

5.2 系统仿真结果

  由于本系统设计中设有硬币器,所以在仿真时,采用一个按键来模拟顾客在付款时投币的操作,按键按下一次,代表顾客投入一枚硬币,系统的仿真图如下:
(1)当系统启动时,系统进入初始状态,等待顾客进行商品种类及数量的选择,如图5.2所示。
基于单片机的自动售货机系统设计_第7张图片

图5.2系统初始界面
(2)当顾客通过按键0、按键1、按键2,进行商品种类选择,和选择购买商品的数量。如图5.3所示。
基于单片机的自动售货机系统设计_第8张图片

图5.3商品选择界面
(3)当顾客选择好商品及其数量后,开始投币。如图5.4所示。
基于单片机的自动售货机系统设计_第9张图片

图5.4投币界面
(4)当顾客投入的硬币数值和商品总价相等后,点击按键3,出货按键,则对应的货物指示灯亮,显示屏显示“Kai Shi Chu Huo…”,一段时间后,显示“Chu Huo Wan Cheng!!!”,随即指示灯熄灭。如图5.5所示。
基于单片机的自动售货机系统设计_第10张图片

图5.5出货界面
(5)当顾客投入的硬币小于商品总价,然后点击按键3,出货按键,报警灯亮起,显示屏显示“Tou Bi Bu Zu!!!”。如图5.6所示。
基于单片机的自动售货机系统设计_第11张图片

图5.6投币不足界面
(6)当顾客投币不足,系统报警,显示屏再显示完“Tou Bi Bu Zu!!!”后,显示屏返回投币界面,顾客可以选择继续投币,也可选择退币,按下按键4,退币按键,投币数量清零。如图5.7所示。
基于单片机的自动售货机系统设计_第12张图片

图5.7退币界面
(7)当顾客完成这一系列操作后,系统会自动复位到初始界面。如图5.8所示。
基于单片机的自动售货机系统设计_第13张图片

图5.8系统自动复位到初始界面

五、 文章目录

目 录
第一章 绪论 1
1.1 课题的研究背景及意义 1
1.2 国内外研究现状 1
1.2.1 国外研究现状 1
1.2.2 国内研究现状 2
1.3 主要研究内容及章节安排 3
第二章 系统结构设计 5
2.1 设计方案论证 5
2.1.1 控制模块的选择与论证 5
2.1.2 硬币器的选择与论证 5
2.1.3 出货电机的选择与论证 6
2.2 系统的总体设计方案 6
2.3 系统工作流程设计 7
2.4 本章小结 8
第三章 自动售货机系统的硬件设计 9
3.1 主控电路的设计 9
3.2 电源模块设计 11
3.2.1 三插插头、母头、插座和直流开关电源的选择 12
3.2.2 DC12V、DC5V、DC3.3V转化模块选择 16
3.3 电机模块设计 17
3.4 硬币器的选择 18
3.5 OLED显示模块设计 20
3.6 按键模块设计 21
3.7 报警电路及LED灯模块设计 22
3.8 本章小结 24
第四章 自动售货机系统的软件设计 26
4.1 Keil软件介绍 26
4.2 系统主程序设计 27
4.3 按键模块程序设计 28
4.4 出货模块及报警电路模块程序设计 29
4.5 本章小结 30
第五章 自动售货机系统仿真 31
5.1 仿真软件介绍 31
5.2 系统仿真结果 32
5.3 本章小结 36
第六章 总结与展望 37
6.1 总结 37
6.2 展望 38
参考文献 39

你可能感兴趣的:(单片机,单片机,嵌入式硬件)