EDA课程设计报告(停车场管理)_第1页
EDA课程设计报告(停车场管理)_第2页
EDA课程设计报告(停车场管理)_第3页
EDA课程设计报告(停车场管理)_第4页
EDA课程设计报告(停车场管理)_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

长 沙 学 院课程设计说明书题目模拟停车场管理系统的设计系(部)电子与通信工程系专业(班级) 姓名 学号 指导教师刘辉、龙英、谢明华起止日期2010.5.31-2010.6.11EDA技术课程设计任务书系(部):电子与通信工程系 专业:电子信息工程 指导教师:刘辉、龙英、谢明华课题名称模拟停车场管理系统的设计设计内容及要求实现一个模拟停车场管理系统,使用8位拨码开关表示车号,按键A按下一次表示该车进入停车场,同时数码管显示该车车号信息(3个数码管显示拨码开关对应的十进制数)及收费费率(位方便模拟,按1元分钟);按键B按下一次表示该车从停车场出来,该车出来时用数码管显示的信息包括:3位车号、停车时间(2位小时数、两位分钟数)、3位停车费用。(数码管位数不够可采用滚动显示的方式)设计工作量1、VHDL语言程序设计;2、波形仿真;3、在实验装置上进行硬件测试,并进行演示;4、提交一份完整的课程设计说明书,包括设计原理、程序设计、程序分析、仿真分析、硬件测试、调试过程,参考文献、设计总结等。进度安排起止日期(或时间量)设计内容(或预期目标)备注第1天课题介绍,答疑,收集材料第2天设计方案论证及设计第3-7天设计VHDL语言程序第8-9天在实验装置上进行硬件测试第59天,第10天上午在实验装置上进行硬件测试第10天下午编写设计说明书教研室意见年 月 日系(部)主管领导意见年 月 日长沙学院课程设计鉴定表姓名谭鑫学号专业电子信息工程班级2设计题目模拟停车场管理系统的设计指导教师刘辉、龙英、谢明华指导教师意见:评定等级: 教师签名: 日期: 答辩小组意见:评定等级:答辩小组长签名:日期:教研室意见:教研室主任签名: 日期: 系(部)意见:系主任签名:日期:说明课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;目 录1.设计思路分析11.1题目要求11.2设计思路12.系统结构设计及分析22.1分频模块42.2消抖模块62.3车牌显示模块72.4计时模块92.5费率器模块112.6滚动模块122.7译码模块153.使用说明174.心得与体会18参考文献181.设计思路分析1.1题目要求实现一个模拟停车场管理系统,使用8位拨码开关表示车号,按键A按下一次表示该车进入停车场,同时数码管显示该车车号信息(3个数码管显示拨码开关对应的十进制数)及收费费率(位方便模拟,按1元分钟);按键B按下一次表示该车从停车场出来,该车出来时用数码管显示的信息包括:3位车号、停车时间(2位小时数、两位分钟数)、3位停车费用。(数码管位数不够可采用滚动显示的方式)1.2设计思路分析题目要求,宜采用“模块法”的设计方法。(模块法先用VHDL语言设计各个模块,将这些模块生成图形文件,在顶层文件中再调用这些图形。)具体思路:当一辆车进入停车场,按键A被按下:计时器开始计时,同时把该车的车牌号和费率送入数码管显示(3个数码管显示拨码开关对应的十进制数:采用BCD码转换的方法;费率显示采用输入设置,可以通过按键+1的方式设置从199的费率)。当车驶出停车场时,按键被按下,此时计时器停止计时,并把计时时间送入数码管显示(2位小时数、两位分钟数),同时显示车牌号信息及停车费用(三位显示:停车费用停车时间费率)。由于数码管位数不够采用滚动显示的方式。2.系统结构设计及分析本系统主要包括以下八个模块:分频模块fpq,车牌BCD转换模块chepai,消抖模块xiaodou,计时模块jishi,费率模块feilvqi,计价器模块jjq,滚动模块gundong,译码器模块YMQ。先通过VHDL文本生成这些模块,再在顶层文件中调用这些模块。系统的主程序流程图如图1所示。图1.系统主程序流程图系统的顶层文件,即为本系统的总原理图,如图2所示。19图2.系统总原理图2.1分频模块该模块对实验箱上的50MHz时钟进行分频,分成所需要的几种不同频率的时钟。分频的原理为:对50MHz时钟每来一个上升沿计一次数,当计数到一定值的时候,计数值清零并且让输出电平取反,根据计数值的不同可以得到不同的输出频率。在本设计中分频出0.1HZ,1HZ,100Hz,200Hz,500Hz的频率,以供不同的需要。 分频模块源程序: 图3 分频模块2.2消抖模块作为机械开关的键盘,在按键操作时,机械触点的弹性及电压突跳等原因,在触点闭合和开启瞬间会出现电压的抖动。为保证按键识别的准确性,在按键电压信号抖动的情况下不能进行状态输入。为此必须进行去抖动处理,消除抖动部分的电压信号,一般有硬件和软件两种方法。硬件就是加去抖动电路,这样可以从根本上解决按键抖动问题。软件消抖就是利用软件延时消抖,具体说就是当检测到高电平(有按键按下),1kHz脉冲来一个高电平计数值加1,一遇到低电平计数值清零,当计数值大于10时,说明按键是被真的按下,消除了抖动。本系统采用软件消抖。 图4.消抖模块 图5.消抖模块波形仿真消抖模块源程序:2.3车牌显示模块用8位拨码开关表示车号,拨码开关对应的8位二进制通过BCD转换为12位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);-输出数码管位选 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:=0000;-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|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 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滚动模块滚动显示模块,当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_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 cnt: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(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=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);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=data(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=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.译码模块图形文件译码模块程序:library 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; end case; end process;end ; 图12.译码模块波形仿真 3. 使用说明按键说明: A按键:为开始按钮,即当车辆进入停车场时,按下A开始计时,并显示进入车辆的车牌号及收费费率。B按键:为停止按钮,即当车辆驶出停车场时,按下B按钮,停止计时,并滚动显示,车牌号、停车时间及停车费用。费率按键:为费率设置按钮,每按一次,费率加1。Reset按钮为总复位按钮。clk为系统时钟,绑定到实验箱上的50MHz的时钟上,led7s6.0为数码管段选控制信号,sel7.0为8个数码管的位选控制信号。测试方法:首

温馨提示

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

评论

0/150

提交评论