- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
自动售货机控制系统的设计
Revised by Jack on December 14,2020
课程设计题目:自动售货机控制系统的设计
目的与任务:
进一步掌握MAX+PLUS11软件的使用方法;
会使用VHDL语言设计小型数字电路系统;
掌握应用MAX+PLUS1I软件设计电路的流程;
掌握自动售货机的设计方法;
会使用GW48实验系统。
内容和要求:
设计一个简易的自动售货机’它能够完成钱数处理、找零、显示、退币等功能。
用3个键表示3种钱,再用3个键表示3种物品。
用2个数码管显示输入的钱数,再用2个数码管显示所找的钱数,以元为单 位。
买东西时.先输入钱,用数码管显示钱数,再按物品键.若输入的钱数大于物 品的价格.用数码管显示所找的钱数.并用发光二极管表示购买成功。
若输入的钱数少于物品的价格,用数码管显示退出的钱数,并用发光二极管表 示购买失败。
设计内容(原理图以及相关说明、调试过程、结果)
一、系统设计方案
根据系统要求,系统的组成框图如图1所示。
系统按现g时钟图1
系统按现g
时钟
图1爆模块、
分频器
M码输出模块。
(1)旷获得 钱数输入 的现象。a 控制器中间
(1)旷获得 钱数输入 的现象。a
控制器
中间
言号.便于操作,且不会产生按键抖动
K, Q在外部时钟CLK的控制下循环计
数,每当计数到一个设定的值时歯译码显不给
数,每当计数到一个设定的值时
歯译码显不给NEW_CLK
即可.改变
即可.改变
商品选择
U2)控制模块是这个系统的核心模块,它具有判断按键、计算输入钱数总和、计
算找零、控制显示四个作用。它的工作原理是每当时钟上升沿到来时.判断哪个按键按 下,若按下的是钱数键.则将钱数保存于中间信号COIN.若下次按下的仍是钱数键.
COIN的值则加上相应的值并显示于数码管;当物品键按下时,则将COIN的值与物品
价格进行比较、然后控制找零°
(3)由于钱数可能大于9,所以译码显示模块的作用就是将钱数译码后用两个数 码管显示,这样方便观察。
根据各个功能模块的功能并进行整合、可得到一个完整的自动售货机系统的整体组 装设计原理图,如图2所示。
图2设计原理图
二、系统主要VHDL源程序
(I)分频器的源程序(外部时钟选用3MHz,实现3万分频)
LIBRARY IEEE;
USE CLKGEN IS
PORT(CLK:IN STD_LOGIC;
NEWCLK OUT STD_LOGIC);
END CLKGEN;
ARCHITECTURE BEHAVE OF CLKGEN IS
SIGNAL Q:INTEGER RANGE 0 TO 14999;
SIGNAL DIVCLK: STD_LOGIC;
BEGIN
PROCESS(CLK)
BEGIN
IF CLK EVENT AND CLK=T THEN
IFQ 14999 THEN Q v二Q+l;
ELSE DIVCLK = NOT DIVCLK:Q =0;
END IF;
END IF;
END PROCESS;
NEWCLK = DIVCLK;
END BEHAVE;
(2)自动售货机控制器源程序(3种钱数为1元、2元、5元;
3种物品的价格为2元、5元、10元
LIBRARY IEEE;
USE SHOUHUOJI IS
P ORT ( CLK: IN STD_LOGIC;
COINI: IN STD.LOGIC:??1 元信号
COIN2: INSTD_LOGIC;??2 元信号
COIN3: IN STD.LOGIC; 一5 元信号
PRICE 1: IN STD_LOGIC; ~2 元商品
PRICE2: IN STD.LOGIC; -5 元商品
END PROCESS
END PROCESS:
PRICE2: IN STD_LOGIC; —5 元商品
PRICE3: IN STD.LOGIC; —10 元商品
Y0: OUT STD_LOGIC; ―购买成功信号
Yl: OUT STD.LOGIC; —退币信号
MONEY: OUT STD_L0GIC.VECT0R(3 DOWXTO 0);
PAYBACK: OUT STD_L0GIC_VECT0R(3 DOWNTO 0));
END SHOUHUOJI;
ARCHITECTURE BEHAV OF SHOUHUOJI IS
SIGNAL COIN: STD_L0GIC-VECT0R(3 DOWNTO 0); —保存钱数
SIGNAL COLT: STD_L0GIC_VECT0R(3 D0?NT0 0):—保存找零
BEGIN
PROCESS(CLK)
BEGIN
IF CLKf EVENT AND CLK=1 THEN
IF COIN1= T THEN COIN
原创力文档


文档评论(0)