自动售货机控制系统的设计_第1页
自动售货机控制系统的设计_第2页
自动售货机控制系统的设计_第3页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、信息科学与工程学院课程设计报告(2008 2009学年第一学期)课程名称:VHDL与数字电路课程设计班 级:电子0601学 号:18姓 名:庞金伟指导教师:谈宜育2009年 1 月课程设计题目:自动售货机控制系统的设计目的与任务:(1) 进一步掌握MAX+PLUS U软件的使用方法;(2) 会使用VHDL语言设计小型数字电路系统;(3) 掌握应用MAX+PLUS U软件设计电路的流程(4) 掌握自动售货机的设计方法;(5) 会使用GW48实验系统.内容和要求:设计一个简易的自动售货机,它能够完成钱数处理、找零、显示、退币等功能。(1) 用3个键表示3种钱,再用3个键表示3种物品。(2) 用2个

2、数码管显示输入的钱数,再用 2个数码管显示所找的钱数,以元为单位。(3) 买东西时,先输入钱,用数码管显示钱数,再按物品键,若输入的钱数大于物品的 价格,用数码管显示所找的钱数,并用发光二极管表示购买成功。(4) 若输入的钱数少于物品的价格,用数码管显示退出的钱数,并用发光二极管表示购 买失败。设计内容(原理图以及相关说明、调试过程、结果)一、 系统设计方案根据系统要求,系统的组成框图如图1所示图1系统组成框图系统按功能可分为分频模块、控制模块和译码输出模块。(1) 分频模块的作用是获得周期较长的时钟信号 ,便于操作,且不会产生按键抖动的现 象。其原理是定义两个中间信号 Q、DIV_CLK,Q

3、在外部时钟CLK的控制下循环计数,每 当计数到一个设定的值时 DIV_CLK的值翻转,最后将DIV_CLK赋给NEW_CLK即可, 改变设定值可改变分频的大小(2 )控制模块是这个系统的核心模块,它具有判断按键、计算输入钱数总和、计算找 零、控制显示四个作用。它的工作原理是每当时钟上升沿到来时,判断哪个按键按下,若按下的是钱数键,则将钱数保存于中间信号 COIN,若下次按下的仍是钱数键,COIN的值 则加上相应的值并显示于数码管;当物品键按下时,则将COIN的值与物品 价格进行比较,然后控制找零。(3)由于钱数可能大于9,所以译码显示模块的作用就是将钱数译码后用两个数码 管显示,这样方便观察。

4、根据各个功能模块的功能并进行整合,可得到一个完整的自动售货机系统的整体组装 设计原理图,如图2所示。UL號GEHSHQUHUOJIFICE2l&£3FCLH: NEUCLIIRamrr4r.irr> r-XIANSHIgi 1 MCI ill hifflHTCT ftpPAYB«K7 fl| :ICEl PAnBiACKCS. . OJf rD 1 H > r . ® 1QQUT|7 LX1ANSHI图2设计原理图系统主要VHDL源程序(1)分频器的源程序(外部时钟选用3MHz实现3万分频)LIBRARY IEEE;USE IEEE.STD_L

5、OGIC_1164。ALL ;ENTITY CLKGEN ISPORT(CLK:IN STD_LOGIC ;NEWCLK : OUT STD_LOGIC);END CLKGEN;ARCHITECTURE BEHA VE OF CLKGEN ISSIGNAL Q : INTEGER RANGE 0 TO 14999 ;SIGNAL DIVCLK: STD_LOGIC;BEGINPROCESS (CLK )BEGINIF C LK'EVENT AND CLK='1 ' THENIF Q 14999 THEN Q =Q+1;ELSE DIVCLK = NOT DIVCLK;Q

6、 =0;END IF;END IF ;END PROCESS;NEWCLK <= DIVCLK ;END BEHA VE ;(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 ISP ORT ( CLK :IN STD_LOGIC ;COIN1 :IN STD_LOGIC; 1 元信号COIN2:IN STD_LOGIC; -2 元信号COIN3: IN STD_

7、LOGIC ;- 5 元信号PRICE1 : IN STD_LOGIC ;2 元商品PRICE2: IN STD_LOGIC;-5 元商品PRICE2: IN STD_LOGIC; -5 元商品PRICE3 :IN STD_LOGIC;-10元商品Y0:OUT STD_LOGIC ;-购买成功信号Y1:OUT STD_LOGIC;-退币信号MONEY:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);PAYBACK:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)END SHOUHUOJI;ARCHITECTURE BEHA V OF SHOUHUOJI ISS

8、IGNAL COIN: STD_LOGIC_VECTOR(3 DOWNTO 0);保存钱数SIGNAL COUT: STD_LOGIC_VECTOR(3 DOWNTO 0);-保存找零BEGINPROCESS( CLK)BEGINIF CLK'EVENT AND CLK= ' 1' THENIF COIN仁'1 ' THEN COIN <= COIN+1 ; Y0 ='0 ; Y1 ='0';ELSIF COIN2='1' THEN COIN <= COIN+2 ;Y0<='0 '

9、 ;Y1<='0'ELSIF COIN3= ' 1 THEN COIN <= COIN+5; Y0 =' O'Y1<= ' 0';ELSIF PRICE仁'1'THENIF COIN >= "0010" THEN Y0 = ' 1;'Y1 =' O'COUT<=CON2;ELSE Y0<='0' ; Y1 ='1' ; COUT =COIN;END IF ;ELSIF PRICE2='1 '

10、; THENIF COIN >= "0101” THEN Y0 ='1 ' ;Y1<='0'COUT<=COIN 5;ELSE Y0<='0Y1<='1' ; COUT = COIN ;END IF ;ELSIF PRICE3='1' THENIF COIN > = "1010 ” THEN Y0<='1'Y1< ='0 ' ;COUT=COIN 10;ELSE Y0<=' 0' ;Y1<=

11、9;1 ' ;CO=COIN ;END IF;END IF;END IF ;END PROCESS;-输入的钱数找零MONEY =COIN ;PAYBACK<=COUT ;END BEHA V;(3) 译码显示源程序(总钱数应小于16元)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164。ALL ;ENTITY XIANSHI ISPORT ( DIN :IN STD_LOGIC_VECTOR(3 DOWNTO 0)DOUT :OUT STD_LOGIC_VECTOR ( 7 DOWNTO 0);END XIANSHI ;ARCHITECTURE BEHAV

12、 OF XIANSHI ISBEGINPROCESS(DIN)BEGINCASE DIN ISWHEN” 0000"= > DOUT =” 00000000;”WHEN "0001"= > DOUT=” 00000001"WHEN "0010"=> DOUT="00000010"WHEN "0011” => DOUT<="00000011WHEN "0100"= >DOUT ="00000100"WHEN "0

13、101"= >DOUT<= 00000101WHEN "0110 ”=>DOUT ="00000110"WHEN "0111 ”=>DOUT ="00000111WHEN” 1000” => DOUT ="00001000"WHEN” 1001"=> DOUT<="00001001”;WHEN” 1010"= > DOUT<= 00010000":WHEN” 1011”DOUT = 00010001;WHEN "

14、1100”=DOUT=” 00010010;WHEN "1101” => DOUT=” 00010011"WHEN "1110"=> DOUT =” 00010100"WHEN” 1111"= > DOUT<= 00010101 ”;WHEN OTHERS= > DOUT=” 00000000;END CASE;END PROCESS;END BEHA V;系统仿真与硬件验证(1)系统的有关仿真1) 分频电路的仿真如图3所示,为了便于仿真,在仿真时采用 20分频,由图可看出 每经过10个外部时钟,新时钟翻

15、转一次,实现了分频。3工严101DhS150M昭25OJ0hs300.0nsBOikOO.OnsASO1iJiiiB-CIK '1ouLTJWWLRrLRArWWLrUW0於Q刖Mill!'epppioFn图3分频器仿真结果图2)控制电路的仿真如图4、图5、图6所示.OJrtHaireValue5O.0h£lOO.OnslSD£ki£ICOW250.0nsJUOj&ienn.Il-*D丁丁丁n_rm _i1 PT 丁B-C0IN11亠 COIM20U-CQIM301 1 L-叩|旧0E-P 虻 E2:*叩1征3-* ri:0OSMOLE-F

16、0o ( i .1 3TD PAY 昭H0-i3HOQ I. * X3(:TD:0? DWTnoLJ图5 输入13元,购买10元商品,找零3元,丫0显示购买成功图6 输入7元,购买10元商品,Y1显示购买失败,退币7元3)显示电路的仿真如图7所示,当大于9时分开显示恤.-1 -OhIk20usIDus4呱5血恥僦111111UB1A|D;(F8; (S IQ I 1111213J 1JJ 15图7显示电路仿真结果图(2)系统的硬件验证应用GW48实验系统,选择实验电路结构图 N0.5,管脚定义如下:CLK 接 CL0CK1、C0IN1 接 PIOO、C0IN2 接 PI01、C0IN3 接 P

17、I02、PRICE1 接 PI03、 PRICE2 接 PI04、PRICE3 接 PI05; M0NEY 7。.0接 PI016PI023 (数 码管1、数码管2)、PAYBACK 7.。0接PI024PI031 (数码管3、数码管4)、 Y0 接 PIO8 (二极管 D1 )、Y1 接 PIO9 (二极管 D2)。硬件验证方法:选择实验模式5,时钟信号CLK与CLOCK1信号组中的3MHz 信号相连,用键1键3输入钱数,用键4键6选择商品,观察数码管及二极管的显 示情况.四、系统设计总结自动售货机是采用VHDL设计控制系统的经典实例,设计中模块的不同功能划 分方式将会对程序的编写产生重要的

18、影响,不恰当的模块划分将使模块间通信困难, 同时程序的编写也将会很复杂。我们这次设计的自动售货机比较简单,功能不是很复 杂,所以我将计算钱数、计算找零、控制显示等功能模块集成于一个核心控制模块, 这样不用考虑各个模块间的通信问题了,程序编写起来结构就比较简单。在系统的设计过程中采用图形输入法和 VHDL文本输入法相结合的方法,可使 系统结构更简单直观,比如系统顶层设计采用图形输入法,系统底层模块用VHDL文本输入法设计.本次试验中在进行软件仿真和硬件验证时有一点需要注意,由于设计程序时钱数输入信号和商品选择信号共用一个时钟,所以在软件仿真时每个时钟上升沿处只能有一个信号值为1而在硬件验证时每次

19、只能有一个键的值为高电平,否则会出错。本系统基本达到了作为自动售货机的绝大部分功能,但还有许多地方可以进一步完善使系统的功能更全面。比如说可以增加一个存储器来存储商品的信息,这样当售 货机内没有物品时能提醒放入物品;另外还可以加一些键来设置售货机,如可以修改物品价格使价格可调等五、参考资料1、EDA技术与应用(第2版):江国强 编著;2、EDA技术实验与课程设计 :曹昕燕 周凤臣 编著;3、VHDL设计实例与仿真 :姜雪松 编著。指导教师意见内容及要求评定等级优良中及格不及格独立完成全部工作量课程设计报告质量课程设计内容创新性出勤率综合得分教师评语:指导教师:年 月日教学环节名称综合课程设计教学大纲综合课程设计英文名称Course Desig n理 论 基 础电子技术基础、电子线路、微机系统原理与接口技术、单片机原理等。教 学 目 的对大学期间所学的电子专业基础知识和专业知识进行 次综 合运用,为下一步毕业实习和毕业设

温馨提示

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

评论

0/150

提交评论