网站地图
范文同学网


自动化 模具 机械 电子 通信 动画 英语范文 工程管理 金融范文 旅游管理 工业工程 生物工程 给排水范文 西门子PLC 历史学 三菱PLC
单片机 财务 会计 法律 行政 物理 物流范文 电子商务 制药工程 包装工程 土木工程 材料科学 汉语言范文 欧姆龙PLC 电压表 松下PLC
计算机 化工 数电 工商 食品 德语 国贸范文 人力资源 教育管理 交通工程 市场营销 印刷工程 机电一体化 数控范文 变电站 文化产业

  • 网站首页|
  • 文档范文|
  • 人工降重|
  • 职称文章发表|
  • 合作期刊|
  • 范文下载|
  • 计算机范文|
  • 外文翻译|
  • 免费范文|
  • 原创范文|
  • 开题报告

联系方式

当前位置:范文同学网 -> 免费范文 -> 电子通信 -> 自动售货机VHDL程序
自动化文档范文| 电子机电范文| 测控技术范文| 通信专业范文| 电气工程范文| 通信工程范文| 电子信息工程范文| 免费自动化范文| 免费电子范文| 免费电气范文| 通信范文
·电气自动化原创文章范文 ·学前教育专业原创文章范文 ·国际经济贸易原创文章范文 ·药学专业原创文章范文 ·英语专业原创文章范文 ·公共事业管理原创文章范文
·金融专业原创文章范文 ·广播电视编导原创文章范文 ·电子商务专业原创文章范文 ·法律专业原创文章范文 ·工商管理原创文章范文 ·汉语言文学原创文章范文
·人力资源管理原创文章范文 ·摄影专业原创文章范文 ·心理学专业原创文章范文 ·教育管理原创文章范文 ·市场营销原创文章范文 ·计算机专业原创文章范文
·物流管理专业原创文章范文 ·小学教育专业原创文章范文 ·行政管理专业原创文章范文 ·土木工程管理原创文章范文 ·财务会计专业原创文章范文 ·信息管理信息系统原创范文
·新闻学专业原创文章范文 ·眼视光技术原创文章范文 ·播音与主持原创文章范文 ·广告学专业原创文章范文 ·表演专业原创文章范文 ·动画专业原创文章范文
·视觉传达设计原创文章范文 ·数控技术专业原创文章范文 ·录音艺术原创文章范文 ·光机电应用技术原创范文 ·机电一体化原创文章范文 ·印刷技术专业原创文章范文
·动漫设计与制作原创范文 ·软件技术专业原创文章范文 ·书法学专业原创文章范文 ·应用电子技术原创文章范文 ·电子信息工程技术原创范文 ·机械专业原创文章范文
·酒店管理专业原创文章范文 ·旅游管理专业原创文章范文 ·文化产业管理专业原创范文 ·体育教育专业原创文章范文 ·通信工程专业原创文章范文 ·护理专业原创文章范文

本专业推荐:带proteus仿真程序的文档设计范文  原创文档范文点击进入 → 自动化单片机相关的原创文档范文

自动售货机VHDL程序

本文ID:LW6270 ¥
(1)自动售货机VHDL程序如下: --文件名:pl_auto1.vhd。 --功能:货物信息存储,进程控制,硬币处理,余额计算,显示等功能。 --说明:显示的钱数coin的 以5角为单位。 --最后修改日期:2004.3.23。 library ieee; use ieee.std_logic_arith.all; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; enti..

(1)自动售货机VHDL程序如下:
--文件名:pl_auto1.vhd。
--功能:货物信息存储,进程控制,硬币处理,余额计算,显示等功能。
--说明:显示的钱数coin的 以5角为单位。
--最后修改日期:2004.3.23。
library ieee;
use ieee.std_logic_arith.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity PL_auto1 is
port ( clk:in std_logic;                              --系统时钟
 set,get,sel,finish: in std_logic;                   --设定、买、选择、完成信号
 coin0,coin1: in std_logic;                      --5角硬币、1元硬币
 price,quantity  :in std_logic_vector(3 downto 0);   --价格、数量数据
 item0 , act:out std_logic_vector(3 downto 0);       --显示、开关信号
 y0,y1 :out std_logic_vector(6 downto 0);          --钱数、商品数量显示数据
 act10,act5   :out std_logic);                   --1元硬币、5角硬币
end PL_auto1;
architecture behav of PL_auto1 is
type  ram_type is array(3 downto 0)of std_logic_vector(7 downto 0);
signal ram :ram_type;                                      --定义RAM
signal item: std_logic_vector(1 downto 0);                      --商品种类
signal coin: std_logic_vector(3 downto 0);                      --币数计数器
signal pri,qua:std_logic_vector(3 downto 0);                    --商品单价、数量
signal clk1: std_logic;                                      --控制系统的时钟信号
begin
com:process(set,clk1)
variable quan:std_logic_vector(3 downto 0);
begin
  if set='1' then ram(conv_integer(item))<=price & quantity;act<="0000";
 --把商品的单价、数量置入到RAM
  elsif clk1'event and clk1='1' then  act5<='0'; act10<='0';
      if coin0='1' then    
      if coin<"1001"then coin<=coin+1;            --投入5角硬币,coin自加1
   else coin<="0000";
   end if;
      elsif coin1='1' then
   if coin<"1001"then coin<=coin+2;            --投入1元硬币,coin自加2
   else coin<="0000";
   end if;
      elsif sel='1' then item<=item+1;                  --对商品进行循环选择
 elsif get='1' then                              --对商品进行购买
 if qua>"0000" and coin>=pri then coin<=coin-pri;quan:=quan-1;
 ram(conv_integer(item))<=pri & quan;
            if   item="00" then act<="1000";  --购买时,自动售货机对4种商品的操作
   elsif item="01" then act<="0100";
      elsif item="10" then act<="0010";
      elsif item="11" then act<="0001";
   end if;
  end if;
      elsif  finish='1' then                            --结束交易,退币(找币)
         if coin>"0001" then act10<='1';coin<=coin-2;     --此IF语句完成找币操作
         elsif coin>"0000" then act5<='1'; coin<=coin-1;
         else act5<='0'; act10<='0';
         end if;
      elsif get='0' then act<="0000";                 
         for i in 4 to 7 loop                   
         pri(i-4)<=ram (conv_integer(item))(i);           --商品单价的读取
         end loop;
         for i in 0 to 3 loop
         quan(i):=ram(conv_integer(item))(i);            --商品数量的读取
         end loop;
      end if;
  end if;
 qua<=quan;
end process com;

m32:process(clk)                            --此进程完成对32Mhz的脉冲分频
variable q: std_logic_vector( 24 downto 0);
begin
   if clk'event and clk='1' then q:=q+1;
   end if;
   if q="111111111111111111111111" then clk1<='1';
   else clk1<='0';
   end if;
end process m32;

code0:process(item)                          --商品指示灯译码
begin
 case item is
 when "00"=>item0<="0111";
 when "01"=>item0<="1011";
 when "10"=>item0<="1101";
 when others=>item0<="1110";
 end case;
end process;

code1: process (coin)                       --钱数的BCD到七段码的译码
begin
  case coin is
      when "0000"=>y0<="0000001";
      when "0001"=>y0<="1001111";
      when "0010"=>y0<="0010010";
      when "0011"=>y0<="0000110";
      when "0100"=>y0<="1001100";
      when "0101"=>y0<="0100100";
      when "0110"=>y0<="0100000";
      when "0111"=>y0<="0001111";
      when "1000"=>y0<="0000000";
      when "1001"=>y0<="0000100";
      when others=>y0<="1111111";
  end case;
end process;

code2: process (qua)                       --单价的BCD到七段码的译码
begin
  case qua is
      when "0000"=>y1<="0000001";
      when "0001"=>y1<="1001111";
      when "0010"=>y1<="0010010";
      when "0011"=>y1<="0000110";
      when "0100"=>y1<="1001100";
      when "0101"=>y1<="0100100";
      when "0110"=>y1<="0100000";
      when "0111"=>y1<="0001111";
      when "1000"=>y1<="0000000";
      when "1001"=>y1<="0000100";
      when others=>y1<="1111111";
  end case;
end process;
end behav;

自动售货机VHDL程序相关范文
上一篇:实验2 振幅调制(Amplitude modul.. 下一篇:GPS定位系统机器功能的实现
点击查看关于 自动售货机 VHDL 程序 的相关范文题目 【返回顶部】
精彩推荐
电气工程自动化原创范文  电子商务原创文章范文
人力资源专业原创文章范文 土木工程原创文章范文
工商管理专业原创范文    药学专业原创范文
汉语言文学专业原创范文  会计专业原创文章范文
计算机技术原创文章范文  金融学原创文章范文
法学专业原创文章范文   市场营销专业原创范文
信息管理专业原创文章范文 学前教育专业原创范文
公共事业管理专业原创范文 英语专业原创范文
教育管理专业原创范文   行政管理专业原创范文
热门范文

关于我们 | 联系方式 | 范文说明 | 网站地图 | 免费获取 | 钻石会员 | 硕士文章范文


范文同学网提供文档范文,原创文章范文,网站永久域名www.lunwentongxue.com ,lunwentongxue-范文同学网拼音首字母组合

本站部分文章来自网友投稿上传,如发现侵犯了您的版权,请联系指出,本站及时确认并删除  E-mail: 17304545@qq.com

Copyright@ 2009-2024 范文同学网 版权所有