怒摔!数电课设做自动售货机,从零到出货,我只用了这个状态机
在数电课程设计里挑选简易自动售货机,这可是个有着实践性与趣味性的项目,选取它以后,能让你把于课堂之中学到的有关数字逻辑、状态机等那样的理论知识,转化成可以运行、能够交互的实体系统,不仅如此,这更是进行知识巩固的很棒方式,还是你朝着更复杂嵌入式系统开发迈进的首个台阶,整个这一过程会针对核心逻辑设计、硬件模块选型以及系统整合调试等好多关键环节。
如何用状态机设计自动售货机的核心逻辑
用于自动售货的机器,其最为关键的“大脑”部分是一种状态机,通过其来决定自动售货机于不同输入状况之下的行为表现以及状态的转变情况,比如说,在如投币这种输入时的相应变化 。针对有着售卖价值为10分钱饮料功能且能接受5分和10分硬币的简易系统而言 。这儿定义好三个核心状态,这儿定义好三个核心状态,分别是S0(其代表0分)、接下来是S1(其代表5分)、然后是S2(其代表10分)的样子。再说这个系统的初始状态是S0的情形。当投入一枚价值5分的硬币,对应的状态就会从S0跳转变化至S1;在处于S1状态的时候要是再投入一枚5分硬币,那就会跳转至出货状态S2。要是直接投入10分硬币,那状态便从S0直接到达S2。在Verilog等硬件描述语言里头,乃是借由case语句针对cur_state(当前状态)予以判断,并且联合输入信号,以此来确定next_state(下一个状态)以及是不是输出货物和找零了。如此这般清晰的状态转移图是后续所有硬件实现的根基。
自动售货机需要哪些基础硬件模块
一旦明确了逻辑,那就得搭建提供依托的硬件载体了。有关某一极为基础的简易售货机系统,一般涵盖若干模块。首先,你得拥有一个。主控单元,身为总指挥。常见之方案涵盖经典的AT89C51单片机,又或是功能更为强大的STM32系列ARM芯片。其次,。输入模块专门用于接收用户下达的指令,举例来说像4×4矩阵键盘能够被用来挑选商品以及模拟投币 。显示模块接下来是用于反馈信息的部分,其中,LCD1602液晶屏能够实时显示诸如商品金额、投币数量这类状态。最终,也是达成自动化的关键一项——。执行机构通常会采用小型的减速电机,以此来控制货道进行转动,进而实现出货这一操作。为了能够驱动电机,并且接收其传送过来的到位信号,在电路设计的过程当中,常常会用到74HC595,也就是串行输入并行输出的那种移位寄存器,以及74HC165,即并行输入串行输出的此类移位寄存器,去扩展控制引脚。

如何将逻辑电路与硬件系统进行整合调试
在核心逻辑也就是状态机以及硬件模块均被准备完毕之后,系统整合以及调试乃是成功的关键所在。你得把编写好的状态机代码像是Verilog代码那般,下载到主控芯片里头去。接着,借助杜邦线或者焊接好的PCB板,把主控芯片的输入输出端口跟键盘、显示屏、电机驱动电路等模块恰当地连接起来。等到上电之后,从最为简单的功能着手去测试:按下选择键,看屏幕显示是不是正确的;模拟投币,瞧瞧状态指示灯是不是按照预期发生变化;到达金额之后,瞅瞅电机是不是被触发从而转动起来。这个过程或许得反复核查代码逻辑以及硬件连接,还要运用示波器或者逻辑分析仪去观测关键信号。有个实用的提议是,于软件里添加详尽的调试信息输出,如此便能极大地助力你确定问题究竟是出在逻辑判断方面、硬件驱动方面还是信号传输方面。
简易自动售货机如何加入现代联网与支付创意
基础功能达成随后,可以为之尽己所能尝试给你的售货机增添些许现代化创意,使之别具一格,崭露头角。比如说,可以将联网功能引入进来。以工业方案作为借鉴,借助增加一个Wi-Fi或者4G通信模组(就像涂鸦智能的LZ201模组那般),促使你的单片机能够与互联网相连接。如此一来,你便能够于手机上远程去查询库存,或者达成扫码支付功能——于本地生成一个支付二维码,用户扫码之后,云端服务器会把支付成功信号下达到你的售货机主控板,进而触发出货 。添入这般创意,可使你那课程设计,从仅为完成作业,进阶至成为具备实用价值的原型产品 。
在你进行设计期间,致使你认为极其难以处理调试之事的环节,究竟是核心位置的状态机所具备的逻辑,还是各类传感器以及电机等那些外部硬件的驱动以及协同开展工作这个过程,欢迎于评论区域分享你在调试方面遭遇的经历以及内心诞生的心得倘若你觉得这篇文章对你是有帮助作用的,那么也请你给予点赞操作并以示支持一下。 。
