自动售货机控制系统的设计

更新时间:2023-09-28 18:53:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

课程设计题目:自动售货机控制系统的设计

目的与任务:

(1) 进一步掌握MAX+PLUSⅡ软件的使用方法; (2) 会使用VHDL语言设计小型数字电路系统; (3) 掌握应用MAX+PLUSⅡ软件设计电路的流程; (4) 掌握自动售货机的设计方法; (5) 会使用GW48实验系统。

内容和要求:

设计一个简易的自动售货机,它能够完成钱数处理、找零、显示、退币等功能。 (1)用3个键表示3种钱,再用3个键表示3种物品。

(2)用2个数码管显示输入的钱数,再用2个数码管显示所找的钱数,以元为单位。 (3)买东西时,先输入钱,用数码管显示钱数,再按物品键,若输入的钱数大于物品

的价格,用数码管显示所找的钱数,并用发光二极管表示购买成功。

(4)若输入的钱数少于物品的价格,用数码管显示退出的钱数,并用发光二极管表示

购买失败。

设计内容(原理图以及相关说明、调试过程、结果)

一、 系统设计方案

根据系统要求,系统的组成框图如图1所示。

时钟 分频器 钱数输入 控制器 商品选择 译码显示 图1 系统组成框图

系统按功能可分为分频模块、控制模块和译码输出模块。

(1)分频模块的作用是获得周期较长的时钟信号,便于操作,且不会产生按键抖动的现象。其原理是定义两个中间信号Q、DIV_CLK,Q在外部时钟CLK的控制下循环计数,每当计数到一个设定的值时DIV_CLK的值翻转,最后将DIV_CLK赋给NEW_CLK即可,改变设定值可改变分频的大小。

(a2)控制模块是这个系统的核心模块,它具有判断按键、计算输入钱数总和、计算找零、控制显示四个作用。它的工作原理是每当时钟上升沿到来时,判断哪个按键按下,若按下的是钱数键,则将钱数保存于中间信号COIN,若下次按下的仍是钱数键,COIN的值则加上相应的值并显示于数码管;当物品键按下时,则将COIN的值与物品 价格进行比较,然后控制找零。

(3)由于钱数可能大于9,所以译码显示模块的作用就是将钱数译码后用两个数码管显示,这样方便观察。

根据各个功能模块的功能并进行整合,可得到一个完整的自动售货机系统的整体组装设计原理图,如图2所示。

图2 设计原理图

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='1' THEN IF Q < 14999 THEN Q <=Q+1; 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 IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SHOUHUOJI IS

P ORT ( CLK: IN STD_LOGIC;

COIN1: IN STD_LOGIC; --1元信号 COIN2: IN STD_LOGIC; --2元信号 COIN3: IN STD_LOGIC; --5元信号 PRICE1: IN STD_LOGIC; --2元商品 PRICE2: IN STD_LOGIC; --5元商品

本文来源:https://www.bwwdw.com/article/f2jd.html

Top