基于fpga的自动售货机设计毕业论文(编辑修改稿)内容摘要:

INT82DEV_OE83IN484GCLCK11IN12DEV_OE3VCCINT4I/O0/DATA75I/O1/DATA66I/O2/DATA57I/O3/DATA48I/O4/DATA39I/O5/DATA210I/O6/DATA111D A T A 012D C L K13n C E14T D I15I / O 716I / O 817I / O 918I / O 1019V C C I N T20I / O 1121I / O 1222I / O 1323I / O 1424I / O 1525G N D I N T26I / O 1627I / O 1728I / O 1829I / O 1930M S E L 031M S E L 132VCCINT33nCONFIG34I/O2035I/O2136I/O2237I/O2338I/O2439VCCINT40GNDINT41IN242GCLK243IN344VCCINT45GNDINT46I/O2547I/O2648I/O2749I/O2850I/O2951I/O3052I/O3153A L T E R AE P F1 0 K 1 0 L C8 4FL E X8 4 P IN P L CC 13 图 时钟发生器 电源电路 日常所用到的电源为 220V 电压的电源,但是本课题中自动售货机所需要的电压为 5V,因此我们需要设定一个变压电路来完成所需的电压。 在这部分电路我们用到了一个变压器,一个整流桥,一个滤波电路,一个稳压器完成为 5V 电压的电源。 电源电路如图 所示。 图 电源电路 键盘的设计 为了完成购物自动售货机必须有购物键,本课题所要求的是五个按键,其中四个是商品选择键(热狗,饮料,汉堡,双层汉堡),剩下的一个按键为初始按键。 关于输入按键的信号发生情况将在下文中的软件系统设计中阐述,这里就不多叙述,按键选用的是 SW_PB,按键的硬件部分如图 所示。 14 图 选择键的设计 下载驱动器以及外扩存储器电路设计 自动售货机需要跳电存储功能,因此需要在 FPGA 芯片外接一个存储器,另由于控制器需要下载驱动,因此需要外接一个驱动下载以及外接存储器,如 图 所示。 此装置能够顺利完成下载驱动以及跳电存储功能。 图 下载驱动与外接存储器 显示器设计 自动售货机需要一个显示灯,当购物结束后显示器显示找零钱数额。 对于显示器的显示数字情况,将在下文软件系统中的显示模块进行阐述。 显示器 如图 所示。 15 图 显示器 硬件电路图 本论文的重点在于对控制系统的设计,因此,我们只关注控制信号以及信号发生后出现的结果,对于自动售货机的电动机不做太多的讨论。 自动售货机的硬件电路图见附录。 4 软件系统设计 软件系统分为总体思想 与模块的分类。 设计思想 功能要求 ( 1)该系统能完成对货物信息的存储、进程控制、钱币处理、余额计算和显示功能。 ( 2)自动售货机能够销售 4 种商品:热狗( 1元),汉堡包( 4 元),双层汉堡包( 8 元),饮料( 3 元)数量无限。 自动售货机允许投入 1 元, 2 元, 5 元硬币:当总币值等于顾客需要的商品单价时,机器送出需要的商品:若总币值大于顾客需要的商品单价时,机器除提供所需商品外,并将余币退出;若总币值小于顾客需要的商品单价时,机器退出顾客投入的硬币。 设机器内 1元和 2 元的找零硬币无限。 ( 3)如 果投入的硬币达到或大于所购商品的价格,自动售货机会发出一个指示信号使接受硬币的装置不再接收新的硬币。 ( 4)每次投币的时间有限制,不得超过 30 秒,在时间到时,总币值不足顾 16 客购买的商品单价时,自动售货机按不足钱数处理,退还全部硬币。 或者在设定时间内,总币值不足顾客购买的商品单价时,若需要取消交易则可按取消键,售货机按不足钱数处理,退还全部硬币。 ( 5)当顾客完成一次购买后或按错按钮后,需要设置一个重新开始按钮,使整个系统恢复到初始状态。 ( 6)顾客一次只能购买一种商品的一个,若需要更多商品,需要重复操作。 总体思想 自动售货机包括四个商品,依据四种商品分别设为四个按钮, A1,A3,A4,A8。 当顾客选择其中的一种商品时,售货机发送出一个信号按钮不再生效,用一个 LED灯显示。 设置三个按钮: a1,a2,a5 来表示投入的硬币是 1元、 2元、 5 元。 当顾客投入的硬币大于或等于售价时将不再接受硬币,用一个 LED 灯显示。 当顾客确定某种商品且投入了足额的硬币,投币时限到时,投币窗口找零,用七段显示管显示找零数,同时送出商品,指示灯 out 亮。 控制状态的设计 此售货机分为三种状态,每一个状态能完成一定得 功能:初始状态,投币状态,找零状态。 ( 1)初始状态:当售货机通电后进入初始状态,顾客购买时,可根据选择xuan_rg,xuan_yl,xuan_hb,xuan_schb 键购买商品,从而进入下一状态。 当顾客购买错误或不再购买时按下 start 重新进入初始状态。 ( 2)投币状态:在这个状态时 xuan_rg,xuan_yl,xuan_hb,xuan_schb 键失效。 投入钱( 1元, 2 元, 5元),当投入硬币等于或者超过商品价格时进入下一状态。 投币时间为 30 秒超过 30 秒,售货机拒绝接受钱币。 ( 3)找零状态:投币结束 ,售货机自动判别总钱数,若在时限到来之际,总钱数少于顾客所需商品的单价,则退出钱币,用 LED 显示退钱数。 若大于或等于商品数则通过控制系统找零,用 LED 显示找零数,送出商品。 出货找零,表示一次工作已经结束,等待下一个信号到来,进行新的售货。 设计流程图 17 图 流程图 模块分类 此售货机模块包括:投币处理模块,商品选择模块,投币模块,分频模块,控制器模块,计时模块, LED 灯显示模块,找零模块,出货模块,如图 所示。 是 是 否 否 否 是 一元货物 2 元货 3 元货 投币 计算金额 金额 物价 继续投币 确认购买 出货找零 退币 结束 4 元货 开始 18 图 模块示意图 投币模块 自动售货机能够自动计算投入的钱币数目,需要提供一个寄存器来记录并保存投入的总币值。 此模块有六个输入信号以及两个输出信号: qian1,qian2,qian5为不同数额钱币输入信号; en1 为主控模块所发出的信号,当 en1 信号为 1 的时候,投币模块开始工作; reset 为恢复初始信号,当 reset 信号为 1 的时候投币模块不进行工作; en 为给计时器的输出信号,当 en 为 1 的时候计时器开始工作;bi 为输出的钱币数目。 如图 所示。 投币模块的作用相当于一个计数的寄存器,在清零的状态下可以准确的计算投币数额,记录并保存总币值。 图 . 投币模块 投币模块主要程序如下: library ieee。 use。 19 entity toubi is port (a1,a2,a5,en1,clk,reset:in std_logic。 bi :out integer range 0 to 15。 en: out std_logic)。 end toubi。 architecture a of toubi is signal state:integer range 0 to 1。 begin process variable qian:integer range 0 to 15。 begin wait until clk=39。 139。 and clk39。 event。 if reset=39。 139。 then state=0。 bi=0。 qian:=0。 en=39。 039。 else case state is when 0= if en1=39。 139。 then if a1 =39。 139。 then state=1。 bi=1。 qian:=1。 en=39。 139。 elsif a2=39。 139。 then state=1。 bi=2。 qian:=2。 en=39。 139。 elsif a5=39。 139。 then state=1。 qian:=5。 bi=5。 en=39。 139。 end if。 end if。 when 1= if en1=39。 139。 then if a1=39。 139。 then qian:=qian+1。 bi=qian。 en=39。 139。 elsif a2=39。 139。 then qian:=qian+2。 bi=qian。 en=39。 139。 elsif a5=39。 139。 then qian:=qian+5。 bi=qian。 en=39。 139。 end if。 end if。 end case。 end if。 end process。 20 end a。 通过程序所得到的仿真图如下所示: 1 当 reset 输入为 0,输入 5元, 2 元, 1元时,输出结果为 7。 仿真结果如图 所示: 图 reset 输入为 0 时的仿真结果 2 当 reset 输入为 1 时,输入 5 元, 2元, 1 元, bi 输出应为 0。 仿真结果如图 所示: 图 reset 输入为 1 时的仿真结果 商品选择模块 自动售货机的商品选择模块,通过自动售货机上的四个选择按键完成商品选择,在接收到对应四个商品之一的一个选择信号时进行编译,将被选择的商品进行编码,输入到主控模块中,在主控模块中与所接受的钱币进行对与计算。 输入信号为 a1,a2, a3, a8。 而 xuan_rg,xuan_hb,xuan_yl,xuan_schb 为四个输出信号,与出货模块连接。 reset 与 en2 信号来自主控模块,当 reset 为 1 时模块进 21 入初始状态,进行选择。 当 en2 为 1 时,商品可以进行选择,当 en2 为 0时,四个商品选择键无效。 商品选择模块如图 所示。 图 商品选择模块 商选择模块主要程序如下: LIBRARY ieee。 USE。 ENTITY yima IS PORT ( a1,a3,a4,a8,en2,reset : IN STD_LOGIC。 xuan_rg,xuan_yl,xuan_hb,xuan_schb:OUT STD_LOGIC。 d: OUT integer range 0 to 8 )。 END yima。 ARCHITECTURE a OF yima IS BEGIN process(a1,a3,a4,a8) begin if reset=39。 039。 then if a1=39。 139。 and en2=39。 139。 then d=1。 xuan_rg=39。 139。 xuan_yl=39。 039。 xuan_hb=39。 039。 xuan_schb=39。 039。 elsif。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。