收藏 分销(赏)

EDA课程设计报告停车场管理.doc

上传人:快乐****生活 文档编号:2940234 上传时间:2024-06-11 格式:DOC 页数:22 大小:633KB
下载 相关 举报
EDA课程设计报告停车场管理.doc_第1页
第1页 / 共22页
EDA课程设计报告停车场管理.doc_第2页
第2页 / 共22页
EDA课程设计报告停车场管理.doc_第3页
第3页 / 共22页
EDA课程设计报告停车场管理.doc_第4页
第4页 / 共22页
EDA课程设计报告停车场管理.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、长 沙 学 院课程设计说明书题目模拟停车场管理系统的设计系(部)电子与通信工程系专业(班级) 姓名 学号 指导教师刘辉、龙英、谢明华起止日期2010.5.31-2010.6.11EDA技术课程设计任务书系(部):电子与通信工程系 专业:电子信息工程 指导教师:刘辉、龙英、谢明华课题名称模拟停车场管理系统的设计设计内容及要求实现一个模拟停车场管理系统,使用8位拨码开关表示车号,按键A按下一次表示该车进入停车场,同时数码管显示该车车号信息(3个数码管显示拨码开关对应的十进制数)及收费费率(位方便模拟,按1元分钟);按键B按下一次表示该车从停车场出来,该车出来时用数码管显示的信息包括:3位车号、停车

2、时间(2位小时数、两位分钟数)、3位停车费用。(数码管位数不够可采用滚动显示的方式)设计工作量1、VHDL语言程序设计;2、波形仿真;3、在实验装置上进行硬件测试,并进行演示;4、提交一份完整的课程设计说明书,包括设计原理、程序设计、程序分析、仿真分析、硬件测试、调试过程,参考文献、设计总结等。进度安排起止日期(或时间量)设计内容(或预期目标)备注第1天课题介绍,答疑,收集材料第2天设计方案论证及设计第3-7天设计VHDL语言程序第8-9天在实验装置上进行硬件测试第59天,第10天上午在实验装置上进行硬件测试第10天下午编写设计说明书教研室意见年 月 日系(部)主管领导意见年 月 日长沙学院课

3、程设计鉴定表姓名谭鑫学号2007044228专业电子信息工程班级2设计题目模拟停车场管理系统的设计指导教师刘辉、龙英、谢明华指导教师意见:评定等级: 教师签名: 日期: 答辩小组意见:评定等级:答辩小组长签名:日期:教研室意见:教研室主任签名: 日期: 系(部)意见:系主任签名:日期:说明课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;目 录1.设计思路分析11.1题目要求11.2设计思路12.系统结构设计及分析22.1分频模块42.2消抖模块62.3车牌显示模块72.4计时模块92.5费率器模块112.6滚动模块122.7译码模块153.使用说明174.心得与体会18参考文献18

4、1.设计思路分析1.1题目要求实现一个模拟停车场管理系统,使用8位拨码开关表示车号,按键A按下一次表示该车进入停车场,同时数码管显示该车车号信息(3个数码管显示拨码开关对应的十进制数)及收费费率(位方便模拟,按1元分钟);按键B按下一次表示该车从停车场出来,该车出来时用数码管显示的信息包括:3位车号、停车时间(2位小时数、两位分钟数)、3位停车费用。(数码管位数不够可采用滚动显示的方式)1.2设计思路分析题目要求,宜采用“模块法”的设计方法。(模块法先用VHDL语言设计各个模块,将这些模块生成图形文件,在顶层文件中再调用这些图形。)具体思路:当一辆车进入停车场,按键A被按下:计时器开始计时,同

5、时把该车的车牌号和费率送入数码管显示(3个数码管显示拨码开关对应的十进制数:采用BCD码转换的方法;费率显示采用输入设置,可以通过按键+1的方式设置从199的费率)。当车驶出停车场时,按键被按下,此时计时器停止计时,并把计时时间送入数码管显示(2位小时数、两位分钟数),同时显示车牌号信息及停车费用(三位显示:停车费用停车时间费率)。由于数码管位数不够采用滚动显示的方式。2.系统结构设计及分析本系统主要包括以下八个模块:分频模块fpq,车牌BCD转换模块chepai,消抖模块xiaodou,计时模块jishi,费率模块feilvqi,计价器模块jjq,滚动模块gundong,译码器模块YMQ。先

6、通过VHDL文本生成这些模块,再在顶层文件中调用这些模块。系统的主程序流程图如图1所示。图1.系统主程序流程图系统的顶层文件,即为本系统的总原理图,如图2所示。图2.系统总原理图2.1分频模块该模块对实验箱上的50MHz时钟进行分频,分成所需要的几种不同频率的时钟。分频的原理为:对50MHz时钟每来一个上升沿计一次数,当计数到一定值的时候,计数值清零并且让输出电平取反,根据计数值的不同可以得到不同的输出频率。在本设计中分频出0.1HZ,1HZ,100Hz,200Hz,500Hz的频率,以供不同的需要。 分频模块源程序: 图3 分频模块2.2消抖模块作为机械开关的键盘,在按键操作时,机械触点的弹

7、性及电压突跳等原因,在触点闭合和开启瞬间会出现电压的抖动。为保证按键识别的准确性,在按键电压信号抖动的情况下不能进行状态输入。为此必须进行去抖动处理,消除抖动部分的电压信号,一般有硬件和软件两种方法。硬件就是加去抖动电路,这样可以从根本上解决按键抖动问题。软件消抖就是利用软件延时消抖,具体说就是当检测到高电平(有按键按下),1kHz脉冲来一个高电平计数值加1,一遇到低电平计数值清零,当计数值大于10时,说明按键是被真的按下,消除了抖动。本系统采用软件消抖。 图4.消抖模块 图5.消抖模块波形仿真消抖模块源程序:2.3车牌显示模块用8位拨码开关表示车号,拨码开关对应的8位二进制通过BCD转换为1

8、2位BCD码。 图5.拨码开关BCD转换模块 8位拨码开关BCD码转换程序:-拨码开关对应数码管显示-*库定义、 包定义*LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_arith.All;USE ieee.STD_LOGIC_UNSIGNED.ALL;-*实体定义*ENTITY chepai ISPORT(-clk: INSTD_LOGIC;-时钟输入 key : in std_logic_vector(7 downto 0);-键入 - l: outSTD_LOGIC_VECTOR(7 downto 0);-输出数码管

9、位选 chep : outSTD_LOGIC_VECTOR(11 downto 0)-数码管段码);END chepai ;-*构造体定义*ARCHITECTURE an OF chepai ISsignal clock : std_logic;-分频后时钟signal p : integer range 0 to 255;-显示数据寄存器signal b0,b1,b2 : integer range 0 to 9;-显示数位寄存器,b0表示个位,b1表示十位,b2表示百位signal cnt : integer range 0 to 3:=0;-数码管位选扫描程序beginp smg4:=0

10、000;-0 -gfedcba 共阳WHEN 1 = smg4:=0001;-1WHEN 2 = smg4:=0010;-2WHEN 3 = smg4:=0011;-3WHEN 4 = smg4:=0100;-4WHEN 5 = smg4:=0101;-5WHEN 6 = smg4:=0110;-6WHEN 7 = smg4:=0111;-7WHEN 8 = smg4:=1000;-8WHEN 9 = smg4:=1001;-9when others=null; END CASE; RETURN smg4; END b_to_s4;begincase p is when 0|10|20|30|

11、40|50|60|70|80|90|100|110|120|130|140|150|160|170|180|190|200|210|220|230|240|250=b0b0b0b0b0b0b0b0b0b0end case;case p iswhen 0|1|2|3|4|5|6|7|8|9|100|101|102|103|104|105|106|107|108|109|200|201|202|203|204|205|206|207|208|209=b1b1b1b1b1b1b1b1b1b1-b0=10;end case;if p100 then b2=100 and p200 thenb2=200

12、 thenb2=2;end if;chep(3 downto 0)=b_to_s4(b0);chep(7 downto 4)=b_to_s4(b1);chep(11 downto 8)=b_to_s4(b2);end process;end an;2.4计时模块当A键按下时,计时器开始计时,B键按下时,计时器停止计时,clk为计时脉冲,来一个上升沿,计数器加1,reset为总复位信号。计时模块程序:图7.计时模块波形仿真2.5费率器模块初值为0,当费率在0-99范围内时,费率按键每按一次,费率加1。 图7.费率器波形仿真图 8.费率器模块图形文件费率器模块源程序: 2.6滚动模块滚动显示模块,

13、当C=1时不滚动,但当C=0时滚动显示车牌、停车时间、及停车中费用。y3.0输出到译码器,sel为位选信号。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all; 图9 滚动模块图形文件entity gundong is port ( A,B:in std_logic;data: in std_logic_vector(15 downto 0);chep:in std_logic_vector(11 downto 0);price:in std_

14、logic_vector(11 downto 0);feilv:in std_logic_vector(7 downto 0); clk_200Hz,clk_1Hz: in std_logic; sel: out std_logic_vector(7 downto 0);-weixuan y: out std_logic_vector(3 downto 0); end ;architecture body_chooser of gundong issignal c:std_logic; signal count: std_logic_vector (2 downto 0); signal cn

15、t:std_logic_vector(3 downto 0);begin - process(clk_200Hz)- beginprocess(A,B)beginif (Aevent and A=1) then c=1; end if; if B=1 then c=0; end if; end process; process(clk_200Hz) beginif(clk_200Hzevent and clk_200Hz=1)then if count111 then count=count+1; else count=000;end if;end if;end process;process

16、(clk_1Hz)beginif clk_1Hzevent and clk_1Hz=1 thenif cnt1100 thencnt=cnt+1;else cnty=1010;sely=feilv(3 downto 0);sely=feilv(7 downto 4);sely=1010;sely=chep(3 downto 0);sely=chep(7 downto 4);sely=chep(11 downto 8);selnull; end case; elsif cnt=0000 thencase count is when 000=y=chep(11 downto 8);sely=che

17、p(7 downto 4);sely=chep(3 downto 0);sely=1010;sely=data(15 downto 12);sely=data(11 downto 8);sely=data(7 downto 4);sely=data(7 downto 4);selnull;end case;elsif cnt=0001 thencase count is when 000=y=chep(7 downto 4);sely=chep(3 downto 0);sely=1010;sely=data(15 downto 12);sely=data(11 downto 8);sely=d

18、ata(7 downto 4);sely=data(3 downto 0);sely=1010;selnull;end case;elsif cnt=0010 thenelsif cnt=0011 thenelsif cnt=0100 thenelsif cnt=0101 thenelsif cnt=0110 then elsif cnt=0111 thenelsif cnt=1000 thenelsif cnt=1001 thenelsif cnt=1010 then elsif cnt=1011 thenelsif cnt=1100 thencase count is when 000=y

19、=1010;sely=chep(11 downto 8);sely=chep(7 downto 4);sely=chep(3 downto 0);sely=1010;sely=data(15 downto 12);sely=data(11 downto 8);sely=data(7 downto 4);selnull;end case; end if; end process; end body_chooser;图10 滚动显示 2.7译码模块该模块将将输入的二进制信号译成相应的七段共阳极数码管的编码。数据输入data3.0,译码输出led7s6.0。 图11.译码模块图形文件译码模块程序:l

20、ibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ymq is port(data: in std_logic_vector(3 downto 0); led7s: out std_logic_vector(6 downto 0);end ;architecture one of ymq isbegin process(y) begin case y is when 0000=led7sled7sled7sled7sled7sled7sled7sled7sled7sled7snull;

21、end case; end process;end ; 图12.译码模块波形仿真 3. 使用说明按键说明: A按键:为开始按钮,即当车辆进入停车场时,按下A开始计时,并显示进入车辆的车牌号及收费费率。B按键:为停止按钮,即当车辆驶出停车场时,按下B按钮,停止计时,并滚动显示,车牌号、停车时间及停车费用。费率按键:为费率设置按钮,每按一次,费率加1。Reset按钮为总复位按钮。clk为系统时钟,绑定到实验箱上的50MHz的时钟上,led7s6.0为数码管段选控制信号,sel7.0为8个数码管的位选控制信号。测试方法:首先按下复位键,然后设置八位拨码开关的值(车牌号),此时,数码管显示三位车牌号信

22、息和费率,按下费率按键可以设置费率的值(每按一次加1,范围099),过一段时间,按下B键,此时8位数码管会滚动显示,三位车牌号,四位停车时间和三位停车费。按下复位键,可重新测试。系统的引脚绑定如图13所示,实际操作中只需要按下图绑定即可。图13.系统引脚绑定4. 心得与体会 两周的EDA课程设计,我终于能在第8天成功的设计出了我的课题:模拟停车场管理系统,虽然在速度上我没能赶上部分同学,但是与他们不同的是,从软件到硬件完全是我一个人做出来的。没有人跟我同一个题目,网上也找不到资料,完全是一个人的战斗,但最后,我相信我赢得了这场战斗的胜利,圆满完成了模拟停车场管理系统的软硬件设计。在这场战斗中我

23、有很大的收获,首先我采用层次化结构化设计,将此项设计任务分成若干模块,规定每一模块的功能和各模块之间的接口,然后再将各模块联合起来调试,加深了我们对层次化设计的概念的认识。在设计的过程中,虽然遇到了很多困难,但是通过向老师和同学请教以及自己不断摸索、测试,一个个难题迎刃而解。从而提高了我独立发现问题、分析问题、解决问题的能力,其次,我也明白了一个道理,任何一件事情,只有亲自去做的时候才知道它到底难不难,有多难。我们就像小马过河中的小马,需要自己多去尝试。参考文献1. EDA技术实用教程潘松,黄继业. 北京:科学出版社,20062. VHDL设计实例与仿真姜雪松,吴钰淳,王鹰等. 北京:机械工业出版社,20073. 基于Quartus 的FPGACPLD设计李洪伟,袁斯华.北京:电子工业出版社,2006

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服