《基于FPGA的自动售货机的控制系统(共41页).doc》由会员分享,可在线阅读,更多相关《基于FPGA的自动售货机的控制系统(共41页).doc(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上河北工业大学城市学院毕业设计说明书 作 者: 张昊 学 号: 系: 信息工程 专 业: 电子信息 题 目: 基于FPGA的自动售货机控制系统设计指导者: 刘艳萍 教授 评阅者: 2010年 5 月 26 日专心-专注-专业毕业设计中文摘要基于FPGA的自动售货机控制系统设计摘要: 随着我国商品市场的不断繁荣和城市现代化程度的不断提高,自动售货机也已悄然步入了我国的大中城市。丰富了中国的商业产业结构,开创了一个全新的自动销售和自助服务时代。该课题将以EDA技术实现自动售货机控制系统设计。应用EDA技术实现的自动售货机控制系统,以其可减少商品开发周期,降低开发成本,增加设
2、计一次性成功通过的可能性等优点,使自动售货机可开发性增强,成本降低。该课题包含两部分:硬件系统设计和FPGA内部电路的编程设计。FPGA内部电路的编程设计采用硬件描述语言(VHDL)对自动售货机的功能进行描述;选择ALTERA公司的FPGA芯片为目标器件。硬件系统设计是围绕所选合适的FPGA器件的硬件电路设计。本文介绍了一种基于FPGA的自动售货机的整体设计与工作原理,详细阐述了投币模块,商品选择模块,主控模块等模块的软件设计与实现,对所设计的FPGA内部功能进行仿真验证。关键词: FPGA EDA 自动售货机 VHDL毕业设计外文摘要Title The Design of Vending m
3、achine control system based on FPGA AbstractWith the continuously prosperity of chinas commodity market and with the rapid develepment of modernization level , vending machines has enterd into large and medium-sized cities quietly ,it enriches chinas commercial industrial structure and creates a new
4、 era of automatic selling and self-service.This subject will accomplish the control system of vending machine with EDA technology.Since it has the advantages of shortening product development cycle,reducing product develepment cost , increasing the possibility of first-time success and so on,it can
5、enhence the exploitability of aotomatic machinea and lower the costs. The issue consists of two parts: hardware system design and fpga internal circuit design. Fpga internal circuit design uses hardware describe language ( vhdl ) to describe the fuction of vending machine; and fpga chip of ALTERA Co
6、rporation is choosen for the target device. Hardware system design is a hardware circuit design that center on the selected appropriate fpga device. and the design of the internal functions of FPGA is simulated.Keywords: FPGA EDA vending machine VHDL 目 次1 引言 21.1 自动售货机的历史21.2 自动售货机的研究现状31.3 未来的发展和研究
7、方向31.4 本文的章节安排42 关键技术 52.1 EDA技术52.2 可编辑逻辑器件 52.3 vhdl描述语言 52.4 相关技术的发展与应用情况63 硬件系统的设计 83.1 芯片的选择 83.2 时钟发生器 93.3 电源电路103.4 硬件键盘103.5 下载驱动器以及存储器的设计113.6 显示器设计113.7 硬件电路图124 软件系统设计124.1 设计思想134.2 软件设计14结论35参考文献36致谢37 附录381 引言自动售货机是能根据投入的钱币自动付货的机器。自动售货机是商业自动化的常用,它不受时间、地点的限制,能节省人力、方便交易。一般的自动售货机由钱币装置、指示
8、装置、贮藏售货装置等组成。钱币装置是售货机的核心,其主要功能是确认投入钱币的真伪,分选钱币的种类,计算金额。如果投入的金额达到购买物品的数值即发出售货信号,并找出余钱。指示装置用以指示顾客所选商品的品种。贮藏售货装置保存商品,接收出售指示信号,把顾客选择的商品送至付货口。一般售货机的钱币装置由投币口、选别装置、确认真伪的检查装置、计算金额的计算装置和找钱装置组成。70年代以来,出现了采用微型计算机控制的各种新型自动售货机和利用信用卡代替钱币并与计算机连接的更大规模的无人售货系统,如无人自选商场、车站的自动售票和检票系统、银行的现金自动支付机等。从西欧、北美、日本和韩国等地区和国家的情况来看,自
9、动售货机在人们日常生活中扮演越来越重要的角色。1962年,出现了以自动售货机为主体的流通领域的革命。到了20世纪80年代,自动售货机在美国和日本被广泛使用,后逐渐散布世界各地,主要是发达国家。其产品特点是科技含量高;24 小时服务,售货便利;无需专人盯守,省人工,省成本;售货范围广泛;此外还是一种新颖独特的广告媒体。目前,随着移动商务的发展,自动售货机作为一种方便、直观的移动商务工具,开始在全球各地迅速普及和发展。1.1 自动售货机的历史自动售货机是一种全新的商业零售形式,20世纪70年代自日本和欧美发展起来。它又被称为24小时营业的微型超市。在日本,70的罐装饮料是通过自动售货机售出的。全球
10、著名饮料商公司在全世界就布有50万台饮料自动售货机。 在日本全国各地,共设有550万台自动售货机(据1998年的统计),销售额达6兆8969亿4887万日元,为世界第一。在售货机的显示屏幕上进行操作,输入商品号码和购买数量,并投入钱币后,商品就会从取货口出来,甚至从食品自动售货机上还能买到热呼呼的面条和米饭团。虽然日本的自动售货机总台数低于(据1997年的统计为689万台),但是,从人口占有数来看却是世界上最高的,美国平均35人占有一台,而日本为23人占有一台。 1.2 自动售货机的研究现状现在,自动售货机产业正在走向信息化并进一步实现合理化。例如实行联机方式,通过电话线路将自动售货机内的库存
11、信息及时地传送各营业点的电脑中,从而确保了商品的发送、补充以及商品选定的顺利进行。并且,为防止地球暖化,自动售货机的开发致力于能源的节省,节能型清凉饮料自动售货机成为该行业的主流。在夏季电力消费高峰时,这种机型的自动售货机即使在关掉冷却器的状况下也能保持低温,与以往的自动售货机相比,它能够节约1015的电力。进入21世纪时,自动售货机也将进一步向节省资源和能源以及高功能化的方向发展。 自动售货咖啡机是一种既可以出冷热咖啡也可以同时出奶茶果汁饮料的咖啡饮料自动售货机,省时方便快捷。既可以作投资来使用,也可作为员工福利来使用。1.3 未来发展和研究方向随着科技的发展及人们生活水平的提高,自动售货机
12、市场的发展呈现出多元化及个性化的需求,通过自动售货机进行自助购物正逐渐成为市民的一种新的消费时尚和追求高品质生活的需要。传统的自动售货机控制系统采用单片机作为控制核心,不仅需要在输入输出接口上做大量的工作,而且系统的抗干扰性也比较差。FPGA 具有可靠性高、编程简单、维护方便等优点,已在工业控制领域得到广泛应用。现如今长生了基于了一种用FPGA 实现的自动售货机主控制系统的硬件设计和软件设计,通过此次毕业设计阐述了基于FPGA的自动售货机的控制系统设计并进行了软件仿真和硬件设计实验,实验表明该控制系统是可行的。现在,自动售货机产业正在走向信息化并进一步实现合理化。例如实行联机方式,通过电话线路
13、将自动售货机内的库存信息及时地传送各营业点的电脑中,从而确保了商品的发送、补充以及商品选定的顺利进行。并且,为防止地球暖化,自动售货机的开发致力于能源的节省,节能型清凉饮料自动售货机成为该行业的主流。在夏季电力消费高峰时,这种机型的自动售货机即使在关掉冷却器的状况下也能保持低温,与以往的自动售货机相比,它能够节约1015的电力。进入21世纪时,自动售货机也将进一步向节省资源和能源以及高功能化的方向发展。作为一种商务工具,自动售货机在生活中应用愈加广泛,综合分析现代自动售货机的研究现状和研究重点,以及自动售货机所处的市场现状和对社会的影响,根据日本、美国等国家的经验,自动售货机将在全球范围内得到
14、更大的普及。自动售货机的机体内部结构已经相当完善,影响其普及的关键因素为:如何在现有的各种通信网络平台上,让自动售货机形成一种销售连锁网,为其提供更方便的营销方式和管理机制,以其最大限度地降低生产、运营成本。目前,无论是基于Internet还是基于移动通信网或其他网络平台,其运作的机制都不太成熟,不过这并不影响自动售货机的发展潜力。因此,自动售货机未来的发展趋势是将其纳入到一个更广阔、更便利的移动商务网络平台。1.4 本文的章节安排本文第一章为总体描述自动售货机的历史以及研究现状等相关知识,第二章主要介绍本课题所应用的关键技术,第三章主要描述本课题所设计的自动售货机控制系统的相关硬件设计,第四
15、章主要阐述本课题的软件系统的各个模块以及仿真。附录将指出本课题所用到的相关文献以及所需要的硬件元器件。2 关键技术系统所应用到的技术有可编程逻辑器件及EDA技术,应用VHDL语言实现自动售货机控制系统的设计,应用PROTEL软件辅助完成硬件系统设计。2.1 EDA技术EDA是电子设计自动化(Electronic Design Automation)的缩写,是一种以计算机为基础的工作平台;是利用电子技术,计算机技术,智能化技术等多种应用学科的最新成果,开发出的一整套电子CAD(计算机辅助设计)软件;是一种帮助电子设计工程师从事电子元件产品和系统设计的综合技术。EDA技术就是以计算机为工具,设计者
16、在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。2.2 可编程逻辑器件FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,是实现EDA的主流器件,他的特点是直接面向用户,具有极大的灵活性和通用性,使用方便,硬件测试和实现快捷,开发效率高,成本低,上市时间短,技术维护简单,工作可靠性强等。 关于FPGA芯片的选择将在下文进行介绍。2.3 VHD
17、L描述语言VHDL ( very high speed integrated circuit hard2ware descrip tion language)是指超高速集成电路硬件描述语言。VHDL主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式,以及描述风格与句法,类似于一般的计算机高级语言,如C语言。VHDL的程序结构特点是,将一项工程设计或称设计实体(可以是一个元件、一个电路模块或一个系统)分成外部(或称可视部分,即端口)和内部(或称不可视部分) 。在对一个设计实体定义了外部界面后,一旦其内部开发完成,其他的设计就可以直接调用这个实体。这
18、种将设计实体分成内外部分的概念是VHDL系统设计的基本点。2.4 相关技术的发展与应用情况1)FPGA的应用FPGA的应用可分为三个层面:电路设计,产品设计,系统设计。(1)电路设计中FPGA的应用连接逻辑,控制逻辑是FPGA早期发挥作用比较大的领域也是FPGA应用的基石。事实上,在电路设计中应用FPGA的难度还是比较大的,这要求开发者要具备相应的硬件知识(电路知识)和软件应用能力(开发工具)。这方面的人才总是紧缺的,往往都从事新技术,新产品的开发。成功的产品将变成市场主流基础产品,供产品设计者应用。在不远的将来,通用和专用IP的设计将成为一个热门行业。 (2)产品设计把相对成熟的技术应用到某
19、些特定领域如通讯,视频,信息处理等等,开发出满足行业需要并能被行业客户接受的产品。这方面主要是和专业技术的结合问题,此外,关与专业客户的界面问题,产品设计分为专业工具类产品及民用产品,前者重点在性能,后者对价格敏感,产品设计以实现产品功能为主要目的。在这个领域FPGA技术是一个实现手段,FPGA因为具备接口,控制,功能IP,内嵌CPU等特点,有条件实现一个构造简单,固化程度高,功能全面的系统产品设计,这将是FPGA技术应用最广大的市场。 (3)系统级应用系统级的应用是FPGA与传统的计算机技术结合,实现一种FPGA版的计算机系统:如用XilinxV-4, V-5系列的FPGA,实现内嵌POWE
20、RPCCPU, 然后再配合各种外围功能,实现一个基本环境,在这个平台上跑LINIX等系统,这个系统也就支持各种标准外设和功能接口(如图像接口)了。这对于快速构成FPGA大型系统来讲是很有帮助的。2)EDA的应用利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程,在计算机上自动处理完成。现在对EDA的概念或范畴用得很宽。在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机
21、制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。3 硬件系统的设计本控制系统的硬件外围设备分为:外部存储器,外部电源,晶振信号发生器,以及FPGA芯片,LED外部显示灯,出货装置。3.1 芯片的选择 本文所用到的FPGA芯片为,Altera生产的EPF10K10LC84 芯片,EPF10K10LC84-4是一种复杂可编程逻辑器件,另外还有其它类型的管脚和封装,选择性强。FLEX10K组成及特点: FLEX10K主要由嵌入式阵列块、逻辑阵列块、快速通道(FastTrack)和I/O单元四部分组成。其中逻辑阵列块由多个逻辑单元构成。FLEX10K系列采用重复可构造的CM
22、OS SRAM工艺,把连续的快速通道互连与独特的嵌入式阵列结构相组合,同时也结合了众多可编程器件的有点来完成普通门阵列的宏功能。每个FLEX 10K器件包括一个嵌入式阵列和一个逻辑阵列,它能让设计人员轻松地开发出存储器、数字信号处理器以及特殊逻辑等强大功能于一身的芯片。该芯片具有的多电压功能可以全面支持以不同电压工作的产品。FLEX10K10主要特点如下:(1)它是工业世界的第一种嵌入式可编程逻辑器件,提供了在单个器件中的系统集成,具有实现宏函数的嵌入式阵列和实现普通功能的逻辑阵列;(2)高密度,它具有10000个可用门,高达40960位内部RAM;(3)系统支持多电压IO接口;(4)低功耗,
23、系统维持状态小于0.5mA;(5)灵活的内部连接,快速、可预测连线延时的快速通道连续式分布结构;(6)增强功能的IO引脚,每个引脚都有一个独立的三台输出使能控制和每个IO引脚都有漏极开路选择;FLEX10K引脚简介EPF10K10有84I/O口,其丰富的IO资源,适用于速度要求高或需要较多的I/O引脚电路或系统中适用。其I/O引脚能够兼容5V 3.3V 2.5V等接口标准,具体的IO引脚与对应的引脚序号如表3-1所示:表3-1 I/O引脚对应的引脚序号引脚名称引脚编号引脚名称引脚编号引脚名称引脚编号引脚名称引脚编号I/O716I/O1728I/O2749I/O3762I/O817I/O1829
24、I/O2850I/O3864I/O918I/O1930I/O2951I/O3965I/O1019I/O2035I/O3052I/O4066I/O1121I/O2136I/O3153I/O4167I/O1222I/O2237I/O3254I/O4371I/O1323I/O2338I/O3358I/O4472I/O1424I/O2439I/O3459I/O1525I/O2547I/O3560I/O1627I/O2648I/O3661FLEX 10K10主要由84个引脚组成,各引脚对应的引脚名如图3.1所示:图3.1 各引脚对应的引脚名称 3.2 时钟发生器自动售货机的控制系统需要一个时钟信号,我们
25、选用的是6MHz的时钟信号,时钟发生器如图3.2所示。其中用两个振荡器以及两个电阻可以完成我们所需要的设定。图 3.2 时钟发生器3.3 电源电路日常所用到的电源为220V电压的电源,但是本课题中自动售货机所需要的电压为5V,因此我们需要设定一个变压电路来完成所需的电压。在这部分电路我们用到了一个变压器,一个整流桥,一个滤波电路,一个稳压器完成为5V电压的电源。电源电路如图3.3所示。 图3.3 电源电路3.4 键盘的设计为了完成购物自动售货机必须有购物键,本课题所要求的是五个按键,其中四个是商品选择键(热狗,饮料,汉堡,双层汉堡),剩下的一个按键为初始按键。关于输入按键的信号发生情况将在下文
26、中的软件系统设计中阐述,这里就不多叙述,按键选用的是SW_PB,按键的硬件部分如图3.4所示。图 3.4 选择键的设计3.5 下载驱动器以及外扩存储器电路设计自动售货机需要跳电存储功能,因此需要在FPGA芯片外接一个存储器,另由于控制器需要下载驱动,因此需要外接一个驱动下载以及外接存储器,如图3.5所示。此装置能够顺利完成下载驱动以及跳电存储功能。图 3.5 下载驱动与外接存储器3.6 显示器设计自动售货机需要一个显示灯,当购物结束后显示器显示找零钱数额。对于显示器的显示数字情况,将在下文软件系统中的显示模块进行阐述。显示器如图3.6所示。图 3.6 显示器3.7 硬件电路图本论文的重点在于对
27、控制系统的设计,因此,我们只关注控制信号以及信号发生后出现的结果,对于自动售货机的电动机不做太多的讨论。自动售货机的硬件电路图见附录。4 软件系统设计软件系统分为总体思想与模块的分类。4.1 设计思想4.1.1 功能要求(1)该系统能完成对货物信息的存储、进程控制、钱币处理、余额计算和显示功能。 (2)自动售货机能够销售4种商品:热狗(1元),汉堡包(4元),双层汉堡包(8元),饮料(3元)数量无限。自动售货机允许投入1元,2元,5元硬币:当总币值等于顾客需要的商品单价时,机器送出需要的商品:若总币值大于顾客需要的商品单价时,机器除提供所需商品外,并将余币退出;若总币值小于顾客需要的商品单价时
28、,机器退出顾客投入的硬币。设机器内1元和2元的找零硬币无限。(3)如果投入的硬币达到或大于所购商品的价格,自动售货机会发出一个指示信号使接受硬币的装置不再接收新的硬币。(4)每次投币的时间有限制,不得超过30秒,在时间到时,总币值不足顾客购买的商品单价时,自动售货机按不足钱数处理,退还全部硬币。或者在设定时间内,总币值不足顾客购买的商品单价时,若需要取消交易则可按取消键,售货机按不足钱数处理,退还全部硬币。(5)当顾客完成一次购买后或按错按钮后,需要设置一个重新开始按钮,使整个系统恢复到初始状态。(6)顾客一次只能购买一种商品的一个,若需要更多商品,需要重复操作。4.1.2 总体思想自动售货机
29、包括四个商品,依据四种商品分别设为四个按钮,A1,A3,A4,A8。当顾客选择其中的一种商品时,售货机发送出一个信号按钮不再生效,用一个LED灯显示。设置三个按钮:a1,a2,a5来表示投入的硬币是1元、2元、5元。当顾客投入的硬币大于或等于售价时将不再接受硬币,用一个LED灯显示。当顾客确定某种商品且投入了足额的硬币,投币时限到时,投币窗口找零,用七段显示管显示找零数,同时送出商品,指示灯out亮。4.1.3 控制状态的设计此售货机分为三种状态,每一个状态能完成一定得功能:初始状态,投币状态,找零状态。(1)初始状态:当售货机通电后进入初始状态,顾客购买时,可根据选择xuan_rg,xuan
30、_yl,xuan_hb,xuan_schb键购买商品,从而进入下一状态。当顾客购买错误或不再购买时按下start重新进入初始状态。(2)投币状态:在这个状态时xuan_rg,xuan_yl,xuan_hb,xuan_schb键失效。投入钱(1元,2元,5元),当投入硬币等于或者超过商品价格时进入下一状态。投币时间为30秒超过30秒,售货机拒绝接受钱币。 (3)找零状态:投币结束,售货机自动判别总钱数,若在时限到来之际,总钱数少于顾客所需商品的单价,则退出钱币,用LED显示退钱数。若大于或等于商品数则通过控制系统找零,用LED显示找零数,送出商品。出货找零,表示一次工作已经结束,等待下一个信号到
31、来,进行新的售货。4.1.4 设计流程图是是否否否是热狗饮料汉堡投币计算金额金额物价继续投币确认购买出货找零退币结束双层汉堡开始图 4.1 流程图4.2 模块分类此售货机模块包括:投币处理模块,商品选择模块,投币模块,分频模块,控制器模块,计时模块,LED灯显示模块,找零模块,出货模块,如图4.2所示。图 4.2 模块示意图4.2.1 投币模块自动售货机能够自动计算投入的钱币数目,需要提供一个寄存器来记录并保存投入的总币值。此模块有六个输入信号以及两个输出信号:qian1,qian2,qian5为不同数额钱币输入信号;en1为主控模块所发出的信号,当en1信号为1的时候,投币模块开始工作;re
32、set为恢复初始信号,当reset信号为1 的时候投币模块不进行工作;en为给计时器的输出信号,当en为1的时候计时器开始工作;bi为输出的钱币数目。如图4.2所示。投币模块的作用相当于一个计数的寄存器,在清零的状态下可以准确的计算投币数额,记录并保存总币值。图 4.2. 投币模块投币模块主要程序如下:library ieee;use ieee.std_logic_1164.all;entity toubi is port (a1,a2,a5,en1,clk,reset:in std_logic; bi :out integer range 0 to 15; en: out std_logic
33、); end toubi;architecture a of toubi issignal state:integer range 0 to 1;beginprocessvariable qian:integer range 0 to 15;beginwait until clk=1and clk event;if reset=1 then state=0;bi=0;qian:=0;enif en1=1 then if a1 =1 then state=1;bi=1;qian:=1;en=1;elsif a2=1 then state=1;bi=2; qian:=2;en=1;elsif a5
34、=1 then state=1;qian:=5;bi=5;enif en1=1 then if a1=1 then qian:=qian+1;bi=qian;en=1;elsif a2=1 then qian:=qian+2;bi=qian;en=1;elsif a5=1 then qian:=qian+5;bi=qian;en=1;end if;end if;end case;end if;end process;end a;通过程序所得到的仿真图如下所示:1 当reset输入为0,输入5元,2元,1元时,输出结果为7。仿真结果如图4.3所示:图4.3 reset输入为0时的仿真结果2 当r
35、eset输入为1时,输入5元,2元,1元,bi输出应为0。仿真结果如图4.4所示:图 4.4 reset输入为1时的仿真结果4.2.2 商品选择模块自动售货机的商品选择模块,通过自动售货机上的四个选择按键完成商品选择,在接收到对应四个商品之一的一个选择信号时进行编译,将被选择的商品进行编码,输入到主控模块中,在主控模块中与所接受的钱币进行对与计算。输入信号为a1,a2,a3,a8。而xuan_rg,xuan_hb,xuan_yl,xuan_schb为四个输出信号,与出货模块连接。reset 与en2信号来自主控模块,当reset为1时模块进入初始状态,进行选择。当en2为1时,商品可以进行选择
36、,当en2为0时,四个商品选择键无效。商品选择模块如图4.5 所示。图 4.5 商品选择模块商选择模块主要程序如下:LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY yima ISPORT ( a1,a3,a4,a8,en2,reset : INSTD_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 ISBEGINprocess(a1,a3,a4,a8)begini
37、f reset=0 thenif a1=1 and en2=1 then d=1;xuan_rg=1; xuan_yl=0;xuan_hb=0;xuan_schb=0;elsif a3=1thend=3;xuan_yl=1;xuan_rg=0;xuan_hb=0;xuan_schb=0;elsif a4=1 and en2=1 then d=4; xuan_hb=1;xuan_yl=0;xuan_schb=0;elsif a8=1 and en2=1 then d=8;xuan_schb=1;xuan_yl=0;xuan_rg=0;xuan_hb=0;else d=0;xuan_schb=0;
38、xuan_yl=0;xuan_rg=0;xuan_hb=0;end if;else d=0;xuan_schb=0;xuan_yl=0;xuan_rg=0;xuan_hb=0;end if;end process;END a;通过程序所得仿真结果如下:1 当reset输入为1,en2输入为0,a8输入为1时,d输出应当为0,仿真结果如图4.6所示: 图 4.6 reset输入为1,en2输入为0,a8输入为1时的仿真结果2 当reset输入为0,en2输入为0,a8输入为1时,d输出为0,仿真结果如图4.7所示:图4.7 reset输入为0,en2输入为0,a8输入为1时的仿真结果3 当res
39、et输入为0,en2输入为1,a8输入为1时,d输出为8,xuan_schb输出为1,仿真结果如图4.8所示:图4.8 en2输出为2时的仿真结果4.2.3 分频模块分频模块是用来将外来的时钟信号进行分频,有硬件系统已经知道,选用的时钟信号是由外部的6MHZ的晶振提供的,通过分频模块进行分频以后将得到周期为1HZ的信号。由于仿真所需时间过长,本文选择100.0ns为一周期的信号,分频后为6.0us为一周期的信号,时钟输入信号为clk,输出信号为newclk,分频模块如图4.9所示。图4.9 分频模块分频模块主要程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.
40、ALL;ENTITY fenpi ISPORT(CLK:IN STD_LOGIC; NEWCLK:OUT STD_LOGIC);END fenpi;ARCHITECTURE a OF fenpi IS SIGNAL Q:INTEGER RANGE 0 TO 14; SIGNAL DIVCLK: STD_LOGIC; BEGIN PROCESS(CLK) BEGIN IF CLKEVENT AND CLK=1 THEN IF Q 14 THEN Q =Q+1; ELSE DIVCLK = NOT DIVCLK;Q =0; END IF; END IF; END PROCESS;NEWCLK =
41、DIVCLK;END a;通过程序所得到的仿真结果如下:当clk第15输出为上升沿时,newclk输出为1,仿真结果如图4.10所示:图 4.10 newclk输出为1时的仿真结果4.2.4 计数模块 由于课题要求自动售货机控制系统有定时系统,并限定在30s内完成投币,30s之后投币无效,因此需要设定一个计数模块对投币时间进行限制。en为接受信号,当投币开始时投币模块发出信号,计数模块开始工作,当计数到30时向控制模块发出t信号。Clr为控制器发送给计数模块的一个信号,当clr为1时,计数器归零。Clk为分频模块发送的时钟信号。计数模块如图4.11所示。图4.11 计数模块计数模块主要程序如下
42、:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jishu isport(clk,en,clr: in std_logic; t: out std_logic);end jishu; architecture a of jishu is signal bcd1n: std_logic_vector(3 downto 0); signal bcd10n: std_logic_vector(2 downto 0);begin process(clk,clr,en) begin if (clr=1) then bcd1n=0000; elsif(clkevent and clk=1) then if (en=1) then