数字逻辑实验报告_自动售货机.doc_第1页
数字逻辑实验报告_自动售货机.doc_第2页
数字逻辑实验报告_自动售货机.doc_第3页
数字逻辑实验报告_自动售货机.doc_第4页
数字逻辑实验报告_自动售货机.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

数字逻辑实验报告自动售货机系统的设计实现目录数字逻辑实验报告1 1. 目的与任务12问题描述23. 系统设计分析.34. 系统实现原理.64.1 金额输入模块.64.2 选择商品模块.74.3 比较、交易处理模块.75系统测试及分析.85.1 变量定义.85.2 系统的测试.96系统评价.117. 改进建议与提高.128. 参考文献.121目的与任务(1) 进一步掌握QUARTUS II软件的使用方法;(2) 会设计小型数字电路系统;(3) 掌握应用QUARTUS II软件设计电路的流程;(4) 掌握自动售货机的原理和设计方法;2问题描述 设计一个简易的自动售货机,它能够完成钱数处理、找零、显示、退币等功能。(1)用2个键表示3种面值的钱,再用2个键表示3种物品,其单价分别为5元与3元。(2) 数码管1显示存入售货机的余额,数码管2显示所购商品的信息(单价),数码管3用来显示退币的金额,以元为单位,考虑到实际情况,设定所输入的钱数不超过9元。(3)买东西时,先输入钱,用数码管1显示输入的总钱数,再按商品选择键(A,B),此时数码管2显示所选商品单价,数码管3显示所找的钱数,(4)当按下商品选择键后,表示已经决定购买此商品。如果总金额大于或等于商品的价格,则显示退币钱数,同时系统的余额清零,并亮起红灯,同时启动蜂鸣器来表示购买成功。如果总金额小于商品的价格,即余额不足时,将余额全部退回,余额清零,红灯不亮,表示购买失败。3 系统设计分析我们用实验板上方的数码管来显示购买过程中的信息,数码管1显示存入售货机的余额,数码管2显示所购商品的信息(单价),数码管3用来显示退币的金额,以元为单位。用实验板下方的4个脉冲输出按钮来分别模拟一元、五元钱币输入,和A,B两种商品的选择。 本系统有两对输入,它们都为脉冲信号,第一对脉冲5Y,1Y分别代表输入面值为五元和一元的钱币,另一对脉冲5SL,3SL分别代表购买价钱为五元和三元的商品。开始时先输入投币脉冲信号,通过转换逻辑将此信号转换成5Y和1Y的二进制代码(0101,0001),加载到脉冲发生器上,脉冲发生器被输入信号触发后,发出相应个数的脉冲信号(5和1),进行译码显示,显示在数码管1上。比如,按下五元的投币按钮,再按下一元按钮两次,脉冲发生器发生五个连续的脉冲,然后再脉冲接收器进行累计计数,计数值即为总金额。此时已经完成投币功能,接下来应该输入购买商品的选择脉冲,类似的,先通过转换逻辑将信号转化为四位二进制代码,然后以脉冲为触发条件,将金额数和所选商品价格分别存入各自的寄存器中。所选商品的信息也被显示在数码管2上。于此同时进行二者的比较,比较结果由控制逻辑进行控制。如果金额足够,则购买成功,将寄存器的四位二进制数变成补码形式,与总金额的四位二进制数相加,即算得退币的钱数。退币,并亮灯,响铃。如果金额不够,则将投入的钱数全部返回,将退币金额显示在数码管3上。图2 系统细化框图图3 系统逻辑流程图4 系统实现原理4.1金额输入模块该部分电路由三个开关电路实现投币,一片74169实现计数脉冲产生和一片74163芯片实现数钱。1 用两个开关电路实现投币模拟(1开关表示投1块,2开关表示投5块)。2 如果投入的是五元,将投入的钱数转化为四位二进制数0101(用组合逻辑实现)送到74169置数端,如此同时将一低电平送入LOAD,向74191置数(此时时钟脉冲被限制),然后使74191下行计数(同时脉冲输入到74163芯片),直到数到0,通过反馈逻辑将脉冲封锁。3 如果投入的是一元,则其本身就是一个计数脉冲,直接加载到74163的CLK端。4 74163芯片开始计数,数出投的钱数,并且存于QA、QB、QC、QD端,并通过数码管输出出来,作为售货机的余额信息。图 4 金额输入模块电路图4.2选择商品模块用两个按钮发出选择商品的脉冲,将输入的脉冲用组合逻辑送到寄存器74175的置数端,同时以两个输入脉冲的或作为出发74175置数的触发脉冲,同时此触发脉冲也送到使总金额数的CLK端,这样,当按下商品选择键后,总金额,商品价格都同时存入寄存器里。4.3 比较、处理交易模块当总金额信息(A)和商品价格信息(B)保存至寄存器中后,通过比较器7485进行比较,根据返回的结果确定下一步的流程:如果A=B时,说明金额足够支付商品的价格,发出TRIG3信号,如果AB,发出NEG信号。图5 比较模块对退币数目的计算通过74283来实现当A=B时,TRIG3为1,此时应该相减。根据这一点,将B的置数位置设计成3项的与门形式:当Bi有信号,TRIG3成立,NEG成立(A=B时,进行A-B的操作,具体是通过观察B为5、3时补码的特点(他们的补码分别是1011、1101,是将原码0101,0011高三位分别变反),将高三位变反,输入到相应置数位,从而通过加法器来实现减法运算,而当AB时,不对B进行置位,输入为A本身,这样实现了在余额不足时将总金额全部退回的功能。最后将退币数显示到数码管上,输出成功后亮灯,响铃。 图 6 减法模块图 7 亮灯、响铃5. 系统测试及分析: 5.1变量定义: 1Y 投币一元 5Y 投入五元 Q1-Q4 余额的数目(二进制表示) Q5-Q8 所选择商品的单价 Q9-Q12 退币数目 5.2 系统的测试 1)首先测试余额充足时,购买成功的情况 投币五元一次,一元一次: 预计结果: Q1 Q2 Q3 Q4为0110(十进制6)输入信号波形图:仿真结果:符合预计结果. 购买五元商品 预计结果: 余额清零:Q1 Q2 Q3 Q4为0000 单价显示:Q5 Q6 Q7 Q8 为0101(十进制5) 退币金额:Q9 Q10 Q11 Q12为0001输入波形与结果:符合预计结果 2)然后测试余额不足,购买失败的情况 投入一元输入波形: 试图购买五元商品 预计结果: 余额清零:Q1 Q2 Q3 Q4为0000 单价显示:Q5 Q6 Q7 Q8 为0101(十进制5) 退币金额:Q9 Q10 Q11 Q12为0001(全部退还) 仿真结果:余额清零:商品单价为0101(十进制5)购买失败,退币一元仿真结果与预计结果完全符合6. 系统评价本系统实现了一般自动售货机的基本功能,包括了投币,购买,退币一系列的基本流程。投币过程中,通过脉冲的产生与接收过程计算预存货币金额,稳定性好,不会产生错误,实现了多次投币总额的累积,和对连续投币的支持。在购买阶段,通过预先对预存金额与商品单价的比较,金额足够才进行相减,避免了余额为负的错误情况。同时,亮灯,响铃等提示信号,较好地模拟了实际购买时的情形。该系统稳定性好,操作简易,界面友好,具有一定的实际利用价值。7 改进建议与提高:本系统可以从以下方面改进:(1)设置一个等待时间,如果投币后在一段时间内没有进行操作,将自动退币。(2)显示提示文字信息。(3)设置一个管理员操作模式:可以进行商品的添加,余额的补充。(5) 考虑商品的有限性和退币数量的有限性,在商品不足和余币不足时给予提示,自动关闭系统8.参考资料【1】鲍家元 毛文林著 数字逻辑 高等教育出版社 2002年9月第

温馨提示

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

最新文档

评论

0/150

提交评论