北邮数电综合实验加油机的设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北邮数电综合实验加油机的设计

数字电路与逻辑设计实验 学院: 班级: 学号: 姓名: 时间: 一.任务要求 3 二.系统设计 3 设计思路 3 总体框图 3 分块说明 4 三.仿真波形 4 1.投币计数模块 4 100元投币的计数 5 2.加油计数模块 6 3.数码管显示模块 7 4.点阵显示模块 8 四.VHDL源程序 14 1.2k分频器 14 2.投币计数器 15 3.加油计数器 16 4.数码管显示 20 5.点阵显示 24 6.音乐模块 30 7.总体布线 36 五.完成功能说明 36 六.资源利用情况 37 七.故障及问题分析 37 八.实验总结与心得体会 37 一.任务要求 设计并实现一个简易加油机控制系统,能够完成定值加油、加油至油箱满等功能,并显示所加油量和钱数。 基本要求: 1、 油价固定设为5元/升。 2、 用2个按键(btn7、btn6)分别表示一百元、十元,用btn5做加油开始键,用btn0做系统复位键。用3个数码管(disp2、disp1、disp0)显示钱数,以元为单位,上限990元;用数码管(disp5、disp4、disp3)显示加油量,精确到0.1升,最大显示99.9升。 3、 定值加油时,先输入钱币,数码管同时显示钱数,按加油键,开始加油。加油过程中,钱数及加油量的显示从零开始递增,直到钱数到达预定值。并用发光二极管表示购买成功。加油过程中,所有按键按下无效。 4、 加油至油箱满:在钱币数为零的状态下,按加油键,钱数及加油量的显示从零开始递增,直到油箱加满。自行设计一个随机数发生器,控制加油量自动停止在30升至50升之间,精确到0.1升。加油过程中,所有按键按下无效。 5、 复位键(btn0)按下后,系统复位,此时数码管显示钱币数及加油量均为零。 提高要求: 1、 用小键盘输入价格,用点阵显示加油机各种状态及动画。 2、 设定不同的油品、油价。 3、 油库管理功能。 4、 自拟其它功能。 二.系统设计 设计思路 自动加油机的程序主要的难点在于计数器的实现与不同状态的控制,先让投币计数器器计数投入的钱数,并用数码管显示出来,当加油键按下时,数码管显示归零,并让左右三个数码管同时开始从零计数,由于是五元一升,即当油量加两个数时,价钱加一个数,当价钱等于投币计数器传过来的值时,停止计数,显示动画,提示加油成功。 总体框图 分块说明 输入部分:输入部分有六个输入端,分别为时钟输入,10元按键,100元按键,加油键,复位键,以及附加功能中的选择油品的开关。复位信号为高电平有效,当reset=‘1’时,所以都清为0。 处理部分:主要处理的部分为加油计数器部分,当有reset=‘1’信号后,投币计数器向加油计数器传入及时的钱数值,当有jiayou=‘1’信号后,加油计数器的输出钱数值归零,并开始计数,直到钱数等于预定钱数。在加满油的功能上,设定一个用时钟控制的计数器,当加油键按下且输入的钱数等于零时,加油键按下的时机就从计数器中把值赋给钱数,然后开始加油,后面的类似。 输出部分:输出的部分不单单只有数码管的输出,还有点阵与音乐的输出,在数码管的输出中,我通过六个数来控制六个数码管的值并输出,而点阵则是通过复位与加油键的控制输出三种不同状态的动画(我姑且把它起名为欢迎加油,正在加油,谢谢加油三种状态),音乐在加油成功后播放音乐,为我国经典的小提琴曲《梁祝》,让人在愉悦的心情中付钱。 三.仿真波形 1.投币计数模块 10元投币计数,其中mpo3,mpo2,mpo1分别表示moneypayout的缩写,为钱输出的百位十位与个位。 100元投币的计数 从10元计数器可以看出,最多钱可记到990: 2.加油计数模块 首先,chooseoil=‘0’当加油键没有按时,money3out=mpi3,money2out=mpi2,money1out=mpi1,这个是把付钱给用户看,而oil3out,oil2out,oil1out为9,5,0,这个意思是95号油的显示,95号油的油价为5元一升,当加油键按下时,moneyout3,moneyout2,moneyout1,oilout3,oilout2,oilout1归零并开始计数。当计数到规定钱数时,停止计数,给点阵与音乐控制一个不同的信号,让他们改变状态。这里为了仿真方便起见,只选择输入10元时。(mpi为moneypayin的缩写) 当chooseoil=‘1’时,加的即为97号油,97号油我设定是十元一升,此时,moneyout与oilout计数是同步的。并且注意到开始加油键没有按下时,oil3out,oil2out为9,7.说明此时已经变成了97号油。 加油至邮箱满:当moneypayin=0时,设定一个计数器,在加油过程中通过加油键的按下瞬间把值传给钱数,接着就是与上

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档