ImageVerifierCode 换一换
格式:DOC , 页数:22 ,大小:633KB ,
资源ID:2940234      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2940234.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(EDA课程设计报告停车场管理.doc)为本站上传会员【快乐****生活】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

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

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

2、码开关对应的十进制数)及收费费率(位方便模拟,按1元/分钟);按键B按下一次表示该车从停车场出来,该车出来时用数码管显示的信息包括:3位车号、停车时间(2位小时数、两位分钟数)、3位停车费用。(数码管位数不够可采用滚动显示的方式) 设计工作量 1、VHDL语言程序设计; 2、波形仿真; 3、在实验装置上进行硬件测试,并进行演示; 4、提交一份完整的课程设计说明书,包括设计原理、程序设计、程序分析、仿真分析、硬件测试、调试过程,参考文献、设计总结等。 进度安排 起止日期(或时间量) 设计内容(或预期目标) 备注 第1天 课题介绍,答疑,收集材料 第2天 设计方案

3、论证及设计 第3-7天 设计VHDL语言程序 第8-9天 在实验装置上进行硬件测试 第5~9天,第10天上午 在实验装置上进行硬件测试 第10天下午 编写设计说明书 教研室 意见 年 月 日 系(部)主管领导意见 年 月 日 长沙学院课程设计鉴定表 姓名 谭鑫 学号 2007044228 专业 电子信息工程 班级 2 设计题目 模拟停车场管理系统的设计 指导教师 刘辉、龙英、谢明华 指导教师意见: 评定等级: 教

4、师签名: 日期: 答辩小组意见: 评定等级:     答辩小组长签名:     日期:     教研室意见: 教研室主任签名: 日期:   系(部)意见: 系主任签名:        日期:      说明 课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类; 目 录 1.设计思路分析 1 1.1题目要求 1 1.2设计思路 1 2.系统结构设计及分析 2 2.1分频模块 4 2.2消抖模块 6 2.3车

5、牌显示模块 7 2.4计时模块 9 2.5费率器模块 11 2.6滚动模块 12 2.7译码模块 15 3.使用说明 17 4.心得与体会 18 参考文献 18 1.设计思路分析 1.1题目要求 实现一个模拟停车场管理系统,使用8位拨码开关表示车号,按键A按下一次表示该车进入停车场,同时数码管显示该车车号信息(3个数码管显示拨码开关对应的十进制数)及收费费率(位方便模拟,按1元/分钟);按键B按下一次表示该车从停车场出来,该车出来时用数码管显示的信息包括:3位

6、车号、停车时间(2位小时数、两位分钟数)、3位停车费用。(数码管位数不够可采用滚动显示的方式) 1.2设计思路 分析题目要求,宜采用“模块法”的设计方法。(模块法——先用VHDL语言设计各个模块,将这些模块生成图形文件,在顶层文件中再调用这些图形。) 具体思路: 当一辆车进入停车场,按键A被按下:计时器开始计时,同时把该车的车牌号和费率送入数码管显示(3个数码管显示拨码开关对应的十进制数:采用BCD码转换的方法;费率显示采用输入设置,可以通过按键+1的方式设置从1~99的费率)。当车驶出停车场时,按键B被按下,此时计时器停止计时,并把计时时间送入数码管显示(2位小时数、两位分钟

7、数),同时显示车牌号信息及停车费用(三位显示:停车费用=停车时间×费率)。由于数码管位数不够采用滚动显示的方式。 2.系统结构设计及分析 本系统主要包括以下八个模块:分频模块fpq,车牌BCD转换模块chepai,消抖模块xiaodou,计时模块jishi,费率模块feilvqi,计价器模块jjq,滚动模块gundong,译码器模块YMQ。先通过VHDL文本生成这些模块,再在顶层文件中调用这些模块。 系统的主程序流程图如图1所示。 图1

8、系统主程序流程图 系统的顶层文件,即为本系统的总原理图,如图2所示。 图2.系统总原理图 2.1分频模块 该模块对实验箱上的50MHz时钟进行分频,分成所需要的几种不同频率的时钟。分频的原理为:对50MHz时钟每来一个上升沿计一次数,当计数到一定值的时候,计数值清零并且让输出电平取反,根据计数值的不同可以得到不同的输出频率。在本设计中分频出0.1HZ,1HZ,100Hz,200Hz,500Hz的频率,以供不同的需要。 分频模块源程序:

9、 图3 分频模块 2.2消抖模块 作为机械开关的键盘,在按键操作时,机械触点的弹性及电压突跳等原因,在触点闭合和开启瞬间会出现电压的抖动。为保证按键识别的准确性,在按键电压信号抖动的情况下不能进行状态输入。为此必须进行去抖动处理,

10、消除抖动部分的电压信号,一般有硬件和软件两种方法。硬件就是加去抖动电路,这样可以从根本上解决按键抖动问题。软件消抖就是利用软件延时消抖,具体说就是当检测到高电平(有按键按下),1kHz脉冲来一个高电平计数值加1,一遇到低电平计数值清零,当计数值大于10时,说明按键是被真的按下,消除了抖动。本系统采用软件消抖。 图4.消抖模块 图5.消抖模块波形仿真 消抖模块源程序: 2.3车牌显示模块 用8位拨码开关表示车号,拨码开关对应的8位二进制通过BCD转换为12位BCD码。 图5.

11、拨码开关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 IS PORT(--clk : IN STD_LOGIC;--时

12、钟输入 key : in std_logic_vector(7 downto 0);--键入 -- l : out STD_LOGIC_VECTOR(7 downto 0);--输出数码管位选 chep : out STD_LOGIC_VECTOR(11 downto 0)--数码管段码 ); END chepai ; --**************构造体定义******************** ARCHITECTURE an OF chepai IS signal clock : std_logic;--分频后时钟

13、 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;--数码管位选扫描程序 begin p<=conv_integer(key);--数据输入 process(p)--显示查表进程 FUNCTION b_to_s4(bcd8421:INTEGER RANGE 0 TO 9) RETURN STD_LOGIC_VECTOR IS--B

14、CD转换七段函数 VARIABLE smg4: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN CASE bcd8421 IS --计算输出值 WHEN 0 => smg4:="0000";--0 --gfedcba 共阳 WHEN 1 => smg4:="0001";--1 WHEN 2 => smg4:="0010";--2 WHEN 3 => smg4:="0011";--3 WHEN 4 => smg4:="0

15、100";--4 WHEN 5 => smg4:="0101";--5 WHEN 6 => smg4:="0110";--6 WHEN 7 => smg4:="0111";--7 WHEN 8 => smg4:="1000";--8 WHEN 9 => smg4:="1001";--9 when others=>null; END CASE; RETURN smg4; END b_to_s4; begin case p is when 0|10|20|30|40|50|

16、60|70|80|90|100|110|120|130|140|150|160|170 |180|190|200|210|220|230|240|250=>b0<=0; when 1|11|21|31|41|51|61|71|81|91|101|111|121|131|141|151|161|171 |181|191|201|211|221|231|241|251=>b0<=1; when 2|12|22|32|42|52|62|72|82|92|102|112|122|132|142|152|162|172 |182|192|202|212|222|232|242|252=>b0<

17、2; When 3|13|23|33|43|53|63|73|83|93|103|113|123|133|143|153|163|173 |183|193|203|213|223|233|243|253=>b0<=3; When 4|14|24|34|44|54|64|74|84|94|104|114|124|134|144|154|164|174 |184|194|204|214|224|234|244|254=>b0<=4; When 5|15|25|35|45|55|65|75|85|95|105|115|125|135|145|155|165|175 |1

18、85|195|205|215|225|235|245|255=>b0<=5; When 6|16|26|36|46|56|66|76|86|96|106|116|126|136|146|156|166|176 |186|196|206|216|226|236|246=>b0<=6; When 7|17|27|37|47|57|67|77|87|97|107|117|127|137|147|157|167|177 |187|197|207|217|227|237|247=>b0<=7; When 8|18|28|38|48|58|68|78|88|98|108|

19、118|128|138|148|158|168|178 |188|198|208|218|228|238|248=>b0<=8; When 9|19|29|39|49|59|69|79|89|99|109|119|129|139|149|159|169|179 |189|199|209|219|229|239|249=>b0<=9; when others=> end case; case p is when 0|1|2|3|4|5|6|7|8|9|100|101|102|103|104|105|106|107|108|109 |200|201|202

20、203|204|205|206|207|208|209=>b1<=0; when 10|11|12|13|14|15|16|17|18|19|110|111|112|113|114|115|116|117 |118|119|210|211|212|213|214|215|216|217|218|219=>b1<=1; when 20|21|22|23|24|25|26|27|28|29|120|121|122|123|124|125|126|127 |128|129|220|221|222|223|224|225|226|227|228|229=>b1<=2; w

21、hen 30|31|32|33|34|35|36|37|38|39|130|131|132|133|134|135|136|137 |138|139|230|231|232|233|234|235|236|237|238|239=>b1<=3; when 40|41|42|43|44|45|46|47|48|49|140|141|142|143|144|145|146|147 |148|149|240|241|242|243|244|245|246|247|248|249=>b1<=4; when 50|51|52|53|54|55|56|57|58|59|150|1

22、51|152|153|154|155|156|157 |158|159|250|251|252|253|254|255=>b1<=5; when 60|61|62|63|64|65|66|67|68|69|160|161|162|163|164|165|166|167 |168|169=>b1<=6; when 70|71|72|73|74|75|76|77|78|79|170|171|172|173|174|175|176|177 |178|179=>b1<=7; when 80|81|82|83|84|85|86|87|88|89|180|181|182|18

23、3|184|185|186|187 |188|189=>b1<=8; when 90|91|92|93|94|95|96|97|98|99|190|191|192|193|194|195|196|197 |198|199=>b1<=9; when others=>--b0<=10; end case; if p<100 then b2<=0; elsif p>=100 and p<200 then b2<=1; elsif p>=200 then b2<=2; end if; chep(3 downto 0)<=b

24、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。

25、 图7.费率器波形仿真图 8.费率器模块图形文件 费率器模块源程序: 2.6滚动模块 滚动显示模块,当C=1时不滚动,但当C=0时滚动显示车牌、停车时间、及停车中费用。y[3..0]输出到译码器,sel

26、为位选信号。 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); pr

27、ice: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 is signal c:std_logic;

28、 signal count: std_logic_vector (2 downto 0); signal cnt:std_logic_vector(3 downto 0); begin -- process(clk_200Hz) -- begin process(A,B) begin if (A'event and A='1') then c<='1'; end if; if B='1' then c<='0'; end if; end process; process(cl

29、k_200Hz) begin if(clk_200Hz'event and clk_200Hz='1')then if count<"111" then count<=count+1; else count<="000"; end if; end if; end process; process(clk_1Hz) begin if clk_1Hz'event and clk_1Hz='1' then if cnt<"1100" then cnt<=cnt+1;

30、else cnt<="0000"; end if; end if; end process; process(c,cnt,count) begin if c='1' then case count is --when "000"=>y<="1010";sel<="00000001"; when "000"=>y<=feilv(3 downto 0);sel<="00000010"; when "001"=>y<=feilv(7 downto 4);sel<="00000100";

31、 --when "011"=>y<="1010";sel<="00001000"; when "010"=>y<=chep(3 downto 0);sel<="00100000"; when "011"=>y<=chep(7 downto 4);sel<="01000000"; when "100"=>y<=chep(11 downto 8);sel<="10000000"; when others=>null; end case; elsif cnt="0000" then case count is

32、 when "000"=>y<=chep(11 downto 8);sel<="10000000"; when "001"=>y<=chep(7 downto 4);sel<="01000000"; when "010"=>y<=chep(3 downto 0);sel<="00100000"; when "011"=>y<="1010";sel<="00010000"; when "100"=>y<=data(15 downto 12);sel<="00001000"; when "101"=>y<=data(11 do

33、wnto 8);sel<="00000100"; when "110"=>y<=data(7 downto 4);sel<="00000010"; when "111"=>y<=data(7 downto 4);sel<="00000001"; when others=>null; end case; elsif cnt="0001" then case count is when "000"=>y<=chep(7 downto 4);sel<="10000000"; when "001"=>y<=chep

34、3 downto 0);sel<="01000000"; when "010"=>y<="1010";sel<="00100000"; when "011"=>y<=data(15 downto 12);sel<="00010000"; when "100"=>y<=data(11 downto 8);sel<="00001000"; when "101"=>y<=data(7 downto 4);sel<="00000100"; when "110"=>y<=data(3 downto 0);sel<="00000010";

35、 when "111"=>y<="1010";sel<="00000001"; when others=>null; end case; elsif cnt="0010" then … elsif cnt="0011" then … elsif cnt="0100" then … elsif cnt="0101" then … elsif cnt="0110" then … elsif cnt="0111" then … elsif cnt="1000" then … elsif

36、 cnt="1001" then … elsif cnt="1010" then … elsif cnt="1011" then … elsif cnt="1100" then case count is when "000"=>y<="1010";sel<="10000000"; when "001"=>y<=chep(11 downto 8);sel<="01000000"; when "010"=>y<=chep(7 downto 4);sel<="00100000"; when "01

37、1"=>y<=chep(3 downto 0);sel<="00010000"; when "100"=>y<="1010";sel<="00001000"; when "101"=>y<=data(15 downto 12);sel<="00000100"; when "110"=>y<=data(11 downto 8);sel<="00000010"; when "111"=>y<=data(7 downto 4);sel<="00000001"; when others=>null; end case; en

38、d if; end process; end body_chooser; 图10 滚动显示 2.7译码模块 该模块将将输入的二进制信号译成相应的七段共阳极数码管的编码。数据输入data[3..0],译码输出led7s[6..0]。 图11.译码模块图形文件 译码模块程序: library ieee; use ieee.std_logic_1164.all; use ieee.s

39、td_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 is begin process(y) begin case y is when "0000"=>led7s<="1000000"; --0 when "0001"=>led7s<="1111001";

40、 --1 when "0010"=>led7s<="0100100"; --2 when "0011"=>led7s<="0110000"; --3 when "0100"=>led7s<="0011001"; --4 when "0101"=>led7s<="0010010"; --5 when "0110"=>led7s<="0000010"; --6 when "0111"=>led7s<="1111000"; --7 when "1000"=>led7s<="00

41、00000"; --8 when "1001"=>led7s<="0010000"; --9 when others=>null; end case; end process; end ; 图12.译码模块波形仿真 3. 使用说明 按键说明: A按键:为开始按钮,即当车辆进入停车场时,按下A开始计时,并显示进入车辆的车牌号及收费费率。B按键:为停止按钮,即当车辆驶出停车场时,按下B按钮,停止计时,并滚动显示,车牌号、停车

42、时间及停车费用。费率按键:为费率设置按钮,每按一次,费率加1。Reset按钮为总复位按钮。clk为系统时钟,绑定到实验箱上的50MHz的时钟上,led7s[6..0]为数码管段选控制信号,sel[7..0]为8个数码管的位选控制信号。 测试方法:首先按下复位键,然后设置八位拨码开关的值(车牌号),此时,数码管显示三位车牌号信息和费率,按下费率按键可以设置费率的值(每按一次加1,范围0~99),过一段时间,按下B键,此时8位数码管会滚动显示,三位车牌号,四位停车时间和三位停车费。按下复位键,可重新测试。 系统的引脚绑定如图13所示,实际操作中只需要按下图绑定即可。

43、 图13.系统引脚绑定 4. 心得与体会 两周的EDA课程设计,我终于能在第8天成功的设计出了我的课题:模拟停车场管理系统,虽然在速度上我没能赶上部分同学,但是与他们不同的是,从软件到硬件完全是我一个人做出来的。没有人跟我同一个题目,网上也找不到资料,完全是一个人的战斗,但最后,我相信我赢得了这场战斗的胜利,圆满完成了模拟停车场管理系统的软硬件设计。 在这场战斗中我有很大的收获,首先我采用层次化结构化设计,将此项设计任务分成若干模块,规定每一模块的功能和各模块之间的接口,然后再将各模块联合起来调试,加深了我们对层次化设计的概念的认识。在设计的过程中,虽然遇到了很多困难

44、但是通过向老师和同学请教以及自己不断摸索、测试,一个个难题迎刃而解。从而提高了我独立发现问题、分析问题、解决问题的能力,其次,我也明白了一个道理,任何一件事情,只有亲自去做的时候才知道它到底难不难,有多难。我们就像小马过河中的小马,需要自己多去尝试。 参考文献 [1].《 EDA技术实用教程》潘松,黄继业.. 北京:科学出版社,2006 [2].《 VHDL设计实例与仿真》姜雪松,吴钰淳,王鹰等.. 北京:机械工业出版社,2007 [3]. 《基于Quartus Ⅱ的FPGA/CPLD设计》李洪伟,袁斯华..北京:电子工业出版社,2006

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

关于我们      便捷服务       自信AI       AI导航        抽奖活动

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

关注我们 :微信公众号    抖音    微博    LOFTER 

客服