版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上EDA技术课程设计题 目: 出租车自动计费器班 级: 电子 xxx班 姓 名: xxx 学 号: 成 绩: 目 录、 绪论 1.1 前言 1.2 电子系统设计任务书 1.3 题目分析及构思 、 方案论证 2.1 总体方框图 2.2 功能描述及方案选择、 系统设计详述 3.1 各模块设计原理及仿真 3.2 整个系统的原理图及仿真、 程序设计历程 4.1 系统设计工作进程4.2 仿真实现过程中遇到的问题及排除措施4.3 设计收获和体会 、附录:参考文献、绪论1.1前言古人云:“百尺竿头,更进一步。”也就是说:我们不要满足于已取得的成就,还要继续努力,不断勇往直前。但高中的
2、时候,高考这块敲门砖就是你的指明灯。而进入大学,我一下子被什么协会、什么学生会、什么球队、学习上的难题冲昏了头脑,我甚至不知道什么时候该干些什么了。有时候更会发自内心的支持“读书无用论”,因为高中学的是基本知识,而大学学的是理论,因此,对学习的兴趣也就随着变淡了。但深知大学四年不能就这样孤独、寂寞、迷惘、恐惧地度过,所以,还一直端正自己的态度,努力地做好一切事。 而课程设计正好弥补大学这种纯理论学习的弊端,也是适应社会主义建设人才的一项重要的实践环节,是理论联系实际的有效方式。高校是工程师的摇篮,要培养德才兼备的合格工程师,必须进行理论知识和实践动手能力的正规会培训。课程设计是我们必须参与的一
3、项实践教学环节。通过课程设计,学生可以综合运用所学的电子设计的理论知识和方法,掌握设计的一般规律,培养解决电子工程中实际问题的能力。还可以学会从机器的功能要求出发,合理选择系统或零件的类型,制定设计方案,正确计算零件的工作能力,工作要求,并考虑制造工艺、使用、维护、经济、安全等问题,训练设计能力。另外,在课程设计的过程当中,学生可以通过查阅、分析、计算、绘图等过程,学习正确运用标准、规范、手册、图册等技术资料,训练设计的基本技能。同时,把在理论教学中学到的知识具体运用到实际工作中,提高学生的综合素质,从而达到电子工程师基本培训的目的,使学生成为既有理论知识,又有实际动手能力的工程技术管理人才。
4、虽然课程设计已经结束,但作为一名大学生对设计中任务要求做出正确的方案以及自己的一些感想做一次总结也很有必要。由于时间仓促和水平有限,课程设计报告书中难免有不当和欠妥之处,敬请老师不吝批评指正。1.2电子系统设计任务书1.设计一个出租车自动计费器,具有行车里程计费、等候时间计费、及起价三部分,用四位数码管显示总金额,最大值为99.99元.2.行车里程单价1元/公里,等候时间单价0.5元/10分钟,起价8元(3公里起价)均能通过人工输入。3.行车里程的计费电路将汽车行驶的里程数转换成与之成正比的脉冲数,然后由计数译码电路转换成收费金额,实验中以一个脉冲模拟汽车前进十米,则每100个脉冲表示1公里,
5、然后用BCD码比例乘法器将里程脉冲乘以每公里单价的比例系数,比例系数可由开关设置。例如单价是1.0元/公里,则脉冲当量为0.01元/脉冲。4.用LED显示行驶公里数,两个数码管显示收费金额。1.3题目分析及构思1.等候时间计费需要时间转换成脉冲个数,用每个脉冲表示的金额与脉冲数相乘即得计费数,例如100个脉冲表示10分钟。而10分钟收费0.5元,则脉冲当量0.05元/脉冲,如果将脉冲当量设置成与行车里程计费相同(0.01元/脉冲),则10分钟内的脉冲数应为500个。2.用LED显示等候时间,两个数码管显示等候时间收费金额。3.用加法器几项收费相加:P=P1+P2+P34.P1为起价,P2为行车
6、里程计费,P3为等候时间计费,用两个数码管表示结。5. 8选1选择器将计费数据(4位BCD码)、计时数据(2位BCD码)、计程数据(2位BCD码)动态选择输出。6. 利用MAX+P软件在计算机上完成设计、编程测试、波形仿真最后并下载到器件中,进行调试。、方案论证2.1 总体方框图图1-1总体功能原理图2.2 功能描述及方案选择该设计问题自顶向下可分为分频模块、计量模块、计费模块、控制模块、译码和动态扫描显示模块。(1)分频模块分频模块对频率为240Hz的输入脉冲进行分频,得到的频率为16Hz,15Hz和1Hz的三种频率。该模块产生频率信号用于计费,15HZ信号为0.1元的计费控制,16Hz信号
7、为1元计费控制。(2)计量控制模块计量控制模块是出租车自动计费器系统的主体部分,该模块主要完成等待计时功能、计价功能、计程功能,同时产生3分种的等待计时使能控制信号en1,行程 3公里外的使能控制信号en0。其中计价功能主要完成的任务是:行程 3公里内,起步费为8元;3公里外以每公里1.0元计费,等待累计时间以每分钟0.05元计费;计时功能主要完成的任务是:计算乘客的等待累计时间,计时器的量程为59分,满量程自动归零;计程功能主要完成的任务是:计算乘客所行驶的公里数。计程器的量程为99公里,满量程自动归零。(3)译码显示模块该模块经过8选1选择器将计费数据(4位BCD码)、计时数据(2位BCD
8、码)、计程数据(2位BCD码)动态选择输出。其中计费数据送入显示译码模块进行译码,最后送至十元、元、角、分为单位对应的数码管上显示,最大显示为99.99元;计时数据送入显示译码模块进行译码,最后送至分为单位对应的数码管上显示,最大显示为59秒;计程数据送入显示译码模块进行译码,最后送至以公里为单位的数码管上显示,最大显示为99公里。、 系统设计详述3.1分频功能实现的源代码如下:library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity
9、 fp isport ( clk_240 :in std_logic; q15: out std_logic; q16: out std_logic; q1: out std_logic); end fp;architecture qq of fp is begin process(clk_240) variable cout15:integer range 0 to 15; variable cout16:integer range 0 to 14; variable cout1:integer range 0 to 239; beginif clk_240'event and cl
10、k_240='1' then if cout15=15 then cout15:=0;q15<='1' else cout15:=cout15+1;q15<='0'end if;if cout16=14 then cout16:=0;q16<='1' else cout16:=cout16+1;q16<='0'end if;if cout1=239 then cout15:=0;q1<='1' else cout1:=cout1+1;q1<='0'
11、end if;end if;end process;end qq;3.1分频模块波形仿真图图3-1分频模块仿真波形图由图3-1可知:当输入240HZ的clk脉冲信号时,clk每出现240个脉冲时q1、q15、q16分别出现1、15、16个,相当于计费0.01元、0.05元、1.0元,帮助计费。3.2计量功能模块实现的源代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity jiliang isport( start: in std
12、_logic; fin: in std_logic; stop: in std_logic; clk_240: in std_logic; en1,en0:buffer std_logic; k1,k0: buffer std_logic_vector(3 downto 0); m1,m0:buffer std_logic_vector(3 downto 0); end jiliang;architecture rt2 of jiliang issignal w:integer range 0 to 59; beginprocess(clk_240)begin if clk_240'e
13、vent and clk_240='1' then if start='0' then w<=0;en1<='0'en0<='0'm1<="0000"m0<="0000"k1<="0000"k0<="0000"elsif stop='1' then if w=59 then w<=0; if m0="1001" then m0<="0000"
14、if m1="0101" then m1<="0000"else m1<=m1+1;end if;else m0<=m0+1;end if; if m1&m0>""then en1<='1' else en1<='0' end if; else w<=w+1;en1<='0' end if; elsif fin='1' then if k0="1001" then k0<="000
15、0" if k1="1001" then k1<="0000" else k1<=k1+1; end if; else k0<=k0+1; end if; if k1&k0>"" then en0<='1' else en0<='0' end if; else en1<='0'en0<='0' end if; end if;end process;end rt2;计量模块波形仿真图图3-2计量模块波形仿真图
16、由图3-2可知:由于讲输入参数fin一直设为高,将stop一直设为低。所以k1、k0记录路程的输出量有值,而m1、m0记录等待时间的输出量没有值。3.3计费功能实现的源代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity jifei isport(clk2:in std_logic; start: in std_logic; c0,c1,c2,c3: buffer std_logic_vector(3 downto 0); en
17、d jifei;architecture rt3 of jifei isbeginprocess(clk2,start)begin if start='0' then c3<="0000"c2<="0000"c1<="1000"c0<="0000" elsif clk2'event and clk2='1' then if c0="1001" then c0<="0000" if c1="1001
18、" then c1<="0000" if c2="1001" then c2<="0000" if c3="1001" then c3<="0000" else c3<=c3+1; end if; else c2<=c2+1; end if; else c1<=c1+1; end if; else c0<=c0+1; end if; end if;end process;end rt3;计费模块波形仿真图图3-3计费模块波形仿真图由图3-3可知
19、:输入一个脉冲信号,同时当start为高时开始计价;c0、c1、c2、c3为价格的显示信号,逢9后一位将进1。 3.4实现控制功能源代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity kongzhi isport(ent0,ent1:in std_logic; clk_in1:in std_logic; clk_in2:in std_logic; clk_out:out std_logic); end kongzhi;a
20、rchitecture rt4 of kongzhi isbeginprocess(ent0,ent1)begin if ent0='1' then clk_out<=clk_in1;elsif ent1='1' then clk_out<=clk_in2; end if; end process;end rt4;控制模块波形仿真图图3-4控制模块波形仿真图由图3-4可知:本模块主要是通过两个不同的输入使能信号,对两个输入脉冲进行选择输出,使能信号是计量模块中的输出,两个输入脉冲是分频模块输出的16HZ、15HZ的脉冲。3.5实现译码和动态扫描功能源
21、代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity yima isport( clk :in std_logic; m1,m0,k1,k0,c3,c2,c1,c0 : in std_logic_vector(3 downto 0); sg:out std_logic_vector(7 downto 0); bt: out std_logic_vector(7 downto 0);end ;architecture behav of yima is signal cnt8:std
22、_logic_vector( 2 downto 0); signal a :std_logic_vector(3 downto 0); signal b :std_logic_vector(7 downto 0); signal c :std_logic_vector(7 downto 0); beginprocess(clk) beginif clk'event and clk='1'then cnt8<=cnt8+1;end if;end process;process(cnt8) begincase cnt8 iswhen "000" =
23、>a<=k0;c<=""b(7)<='0' when "001" =>a<=k1;c<=""b(7)<='0'when "010" =>a<=m0;c<=""b(7)<='0'when "011" =>a<=m1;c<=""b(7)<='0'when "100" =>a&l
24、t;=c0;c<=""b(7)<='0'when "101" =>a<=c1;c<=""b(7)<='1'when "110" =>a<=c2;c<=""b(7)<='0'when "111" =>a<=c3;c<=""b(7)<='0'when others=> null;end case;end pr
25、ocess;process(a) begincase a iswhen "0000"=>b(6 downto 0)<=""when "0001"=>b(6 downto 0)<=""when "0010"=>b(6 downto 0)<=""when "0011"=>b(6 downto 0)<=""when "0100"=>b(6 downto 0)<=&
26、quot;"when "0101"=>b(6 downto 0)<=""when "0110"=>b(6 downto 0)<=""when "0111"=>b(6 downto 0)<=""when "1000"=>b(6 downto 0)<=""when "1001"=>b(6 downto 0)<=""when othe
27、rs=> null;end case;end process;sg<=b;bt<=c;end;译码显示模块波形仿真图图3-5译码模块波形仿真图由图3-5可知:首先以一个case语句进行通道的选择,以8为二进制表示。当某一位为1时,表示选择该通道接着。接着又以一个case语句对所选的通道进行动态扫描,由于时间极小,因此在我们用肉眼感觉是同时显示出来的。3.6总程序如下library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;eatit
28、y taxi isport( clk_240:in std_logic;start:in std_logic;stop:in std_logic;fin:in std_logic;cha3,cha2,cha1,cha0:out std_logic_vector(3 down to 0) kn1,kn0:out std_logic_verctor(3 down to 0);min1,min0:out std_logic_vector(3 down to 0);end taxi;architecture behave of taxi issignal f_15,f_16,f_1:out std_l
29、ogic;signal q_15:integer range 0 to 15;signal q_16:integer range 0 to 14;signal q_1:integer range 0 to 239;signal w:integer range 0 to 59;signal c3,c2,c1,c0:std_logic vector(3 down to 0)signal k1,k0: std_logic vector(3 down to 0)signal m1: std_logic vector(2 down to 0)signal m0: std_logic vector(3 d
30、own to 0)signal en1,en0,f:std_logic;feipin:process(clk_240,start)beginif clk_240 'event and clk_240='1'thenif start='0'then q_15<=0;q_16<=0; f_15<='0' f_16<='0' f_1<='0' f<='0'elseif q_15=15 then q_15<=0;f_15<='1'els
31、e q_15<=q_15+1;f_15<='0'end if;if q_16=14 then q_16<=0;f_16<='1'else q_16<=q_16+1;f_16<='0'end if;if q_1=239 then q_1<=0;f_1<='1'else q_1<q_1+1;f_1='0'end if;if en1='1' then f<=f_16;else en0='1' then f<=f_16;els
32、e f<='0'end if;end if;end if;end process;process(f_1)beginif f_1 ' event and f_1='1'thenif start='0'thenw<=0;en1<='0' en0<='0'm1<="0000" m0<="0000" k1<="0000"else if stop='1' thenif w=59 then w<
33、=0;if m0="1001" then m0<="0000"if m1="101" then m1<="0000"else m1<=m1+1;end if;else m0<m0+1;end if;if m1 & m0>"" then en1<='1'else en1<='0'end if;else w<w+1;en1<='0'end if;elsif fin='1' t
34、hen if k0="1001"then k0<="0000"if k1="1001"then k1<="0000"else k1<=k1+1;end if;else k0<=k0+1;end if;if k1&k0 >"" then en0<='1'else en0<='0'end if;else en1<='0'en0<='0'end if;cha3<=c3;c
35、ha2<=2;cha1<=c1;cha0<=c0;km1<=k1;km0<=k0;min1<='0' &m1;min0<=m0;end if;end process;process(f,start)beginif start='0' then c3<="0000"c2<="0001"c1<="0000"c0<="0000"else if f' event and f='1' thenif
36、 c0="1001" then c0<="0000"if c1="1001" then c1<="0000"if c2="1001" then c2<="0000"if c3="1001" then c3<="0000"else c3<=c3+1;end if;else c2<=c2+1;end if;else c1<=c1+1;end if;else c0<=c0+1;end if;en
37、d if;end process;end behav;总模块的波形仿真图图3-6总模块的波形仿真图、 程序设计历程4.1系统设计工作进程1.设计小组的分工及工作日程安排出租车计费器显示系统的设计共由五个小模块组成,在前期的设计中,我们每个组员负责一个模块的设计与仿真及其硬件下载的测试。到了中期,每个组员对于自己负责的工作都或多或少存在一些问题和疑问,因此在这一时期,我们组内会加强交流,共同来解决问题。如果还有问题,我们就去向老师请教。到了后期,我们将各个小的模块组合起来,形成一个系统,进行软件测试和仿真,对于出现的问题及时的进行解决。最后形成课程设计报告。2.本人承担的任务及执行情况在前期我负
38、责的是分频器的设计这一模块,中期时我也帮助组内成员解决一些问题,后期对各模块进行组装形成了系统。总的来说,对于各个阶段的任务,我都按时的完成了。4.2 仿真实现过程中遇到的问题及排除措施1.在编译程序的时候,会出现好多错误,无法编译成功。2编译通过后,仿真之后,发现仿真并没有预期的效果。如无法正常显示出波形等等,当加入适当的选通信号或者脉冲后发现问题得到了解决。所以必须在实践中不断地修改以得到正确的结论。3高电平有效还是低电平有效,这是一个非常容易忽视的问题,有时就知道这个端口要控制信号但不考虑好什么电平有效,造成错误,使得使能端或者清零端的出现错误控制信号。并且到底是脉冲控制,还是边沿控制一
39、定要清楚。在实验时候可以避免一些不必要的麻烦。4引脚重复使用也是一个问题,有时候输出信号必须输出到一个特定的引脚。而输出来自两路信号,这时候必须加入一个选择器件选择输出信号输出。在实际调试的时候我们必须耐心思考,遇到问题针对问题出现的原因认真思考以解决问题。4.3.收获和体会这是一次综合性很强的实验,从最初的模块规划,VHDL程序的编写,再到检验程序的正确性,然后到调试仿真,直至最后的编程下载调试,每一个环节都让我加深了对实际问题的思考,同时也让我动手能力有了很大的提高。这次最大的收获就是学会了很系统地去解决一个实际问题,学会了巧妙运用模块化的思想。在整个程序设计与实现中,最成功的地方就是有条
40、理地将功能细化,分成一个一个小的模块来实现。每做好一个小模块实现的电路,对其进行调试找出错误并更正,全部无误后进行仿真,仿真时总是无法达到百分百的效果,就会回头读程序,读懂了程序后,在进行仿真,一步步的修正,做到百分百的正确。在这个过程中,我更深刻地体会将每个模块集合起来实现一个整体功能的过程。同时也更加深入地了解了MAX+plus2这一软件的更多的功能。更重要的是在此过程中,我学会了独立思考,遇到问题一步一步去研究与解决解决,对于仿真出现的问题不急不躁,而是一部分一部分地对其应有的功能进行调试,对问题进行各个击破。遇到不懂的向老师请教,去图书馆或上网查找相关资料。总而言之,这次实验让我觉得受益匪浅,不再觉得学无所用。实验所解决的问题与生活紧密相连
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河南豫能控股股份有限公司及所管企业2026届春季校园招聘31人笔试参考题库及答案解析
- 2026新疆博尔塔拉州博乐市博州远大运输有限公司招聘2人考试备考题库及答案解析
- 2026云南曲靖市麒麟区珠街街道社区卫生服务中心招聘编外专业技术人员3人考试备考题库及答案解析
- 2026中国电信股份有限公司北京分公司春季校园招聘考试备考试题及答案解析
- 2026江苏省人民医院行风监督处管理辅助岗招聘1人考试参考题库及答案解析
- 2026甘肃省敦煌种业集团股份有限公司招聘2人考试备考题库及答案解析
- 2026春季河北邯郸市永年区博硕人才选聘100人笔试参考题库及答案解析
- 2026重庆成飞新材料股份公司招聘(河北)笔试模拟试题及答案解析
- 2026新疆兵团第一师医院招聘53人考试备考题库及答案解析
- 2026上海浦东发展银行股份有限公司春季校园招聘考试备考试题及答案解析
- 湖北中医药大学-医学-护理105400专业考研复习题库大全-上(500题)
- 种子类中药课件
- 土木工程专业认识教育课件
- 动脉血气分析六步法杜斌
- 软体家具、沙发质量检验及工艺
- 全套电子课件:数据结构(C语言版)(第三版)
- 测量管理体系标准宣贯ppt课件
- 2020年小学中高年级书法教程ppt课件
- 前期手续横道图
- 计算机各种进制转换练习题(附答案)参考模板
- MFB60T系列自动封边机
评论
0/150
提交评论