欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    EDA技术课程设计出租车自动计费系统.doc

    • 资源ID:4135400       资源大小:438KB        全文页数:16页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    EDA技术课程设计出租车自动计费系统.doc

    课 程 设 计课 程 EDA技术课程设计 题 目 出租车自动计费系统 院 系 电子科学学院 专业班级 电子信息工程 学生姓名 学生学号 指导教师 东北石油大学课程设计任务书课程 EDA技术课程设计题目 出租车自动计费系统专业 电子信息工程 姓名 宋延龙 学号 070901140316主要内容、基本要求、主要参考资料等主要内容:设计一个最大量程为99.99元的出租车自动计费,计费器具有行车里程计费、等候时间计费及起价三部分功能,并用数码管显示车费的数目。基本要求:1、设计一个出租车自动计费器,具有行车里程计费、等候时间计费、及起价三部分,用四位数码管显示总金额,最大值为99.99元;2、行车里程单价1元/公里,等候时间单价0.5元/10分钟,起价3元(3公里起价)均能通过人工输入。3、行车里程的计费电路将汽车行驶的里程数转换成与之成正比的脉冲数,然后由计数译码电路转换成收费金额,实验中以一个脉冲模拟汽车前进十米,则每100个脉冲表示1公里,然后用BCD码比例乘法器将里程脉冲乘以每公里单价的比例系数,比例系数可由开关预置。例如单价是1.0元/公里,则脉冲当量为0.01元/脉冲。4、用LED显示行驶公里数,两个数码管显示收费金额。主要参考资料:1 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005.2 康华光主编.电子技术基础 模拟部分. 北京:高教出版社,2006.3 阎石主编.数字电子技术基础. 北京:高教出版社,2003. 完成期限 2011.3.11 指导教师 专业负责人 2011年 3月7日一、总体设计思想1.基本原理随着出租车行业的发展,出租车已经是城市交通的重要组成部分,从加强行业管理以及减少司机与乘客的纠纷出发,具有良好性能的计价器对出租车司机和乘客来说都是很必要的。而采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试。而采用单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易地实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。本设计采用AT89S52单片机为主控器,以A44E霍尔传感器测距,实现对出租车的多功能的计价设计,输出采用8段数码显示管。大体设计思路为把传感器安装在车轮上,主要检测汽车行进的公里数,并产生一系列相应的脉冲输出,脉冲送到单片机进行处理,单片机根据程序设定通过计算脉冲数换算出行驶公里数,再根据从EEPROM中读取的价格等相关数据进行金额的计算,计算好的金额、里程和单价都实时地显示在数码管上。独立键盘可以调节价格等相关数据,按下相应的按钮,产生信号交由单片机处理并实时显示出来,调节好的数据存储到EEPROM中,掉电后可以使调好的数据不丢失,系统结构图如图。2.设计框图根据计费器设计要求,可将该系统分成四大模块,一块为计费模块,一块为时间计时模块,一块为路程控制模块,另一块为输出显示模块。速度控制模块路程控制模块计费模块扫描显示模块二、设计步骤和调试过程1、总体设计电路 主控机系统采用了Atmel 公司生产的 AT89S52单片机,它含有256 字节数据存储器,内置8K 的电可擦除FLASH ROM,可重复编程,大小满足主控机软件系统设计,所以不必再扩展程序存储器。复位电路和晶振电路是AT89S52 工作所需的最简外围电路。单片机最小系统电路图如下图所示。2、模块设计和相应模块程序2.1速度控制程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity sudukongzhi isport(clk,reset,start:in std_logic; k:in std_logic_vector(2 downto 0); clkout:out std_logic);end sudukongzhi;ARCHITECTURE FUN OF sudukongzhi IS signal count1:std_logic_vector(1 downto 0); signal tmpclk,clks:std_logic; begin kinside<="000"-k; clks_label: process(reset,clk) variable count2:std_logic_vector(2 downto 0); begin if reset='0' then count2:="000" elsif (clk'event and clk='1') then if start='1' then if count2=kinside then count2:="000" end if; if not(k="000") then count2:=count2+1; end if; if count2="001" then tmpclk<=not tmpclk; end if;end if;end if;end process; clkout<=tmpclk;end FUN;2.2路程控制程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY luchengkongzhi ISPORT(clk,reset:in std_logic; lucheng1:out std_logic_vector(3 downto 0); lucheng2:out std_logic_vector(3 downto 0);end luchengkongzhi;ARCHITECTURE FUN OF luchengkongzhi ISbegin process(clk,reset) variable mm:std_logic_vector(11 downto 0); begin if reset='0' then elsif clk'event and clk='1' then if mm(3 downto 0)="1001"then mm:=mm+7; else mm:=mm+1; end if; if mm(7 downto 4)="1010"then mm:=mm+"01100000" end if; if mm(11 downto 8)="1010"then mm:=mm+"011000000000" end if; end if; lucheng1<=mm(3 downto 0); lucheng2<=mm(7 downto 4); lucheng3<=mm(11 downto 8); end process;end FUN; 2.3计费模块程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY jifeimokuai ISPORT(clk,reset:in std_logic; judge2:in std_logic_vector(3 downto 0); judge3:in std_logic_vector(3 downto 0); jifei1:out std_logic_vector(3 downto 0); jifei2:out std_logic_vector(3 downto 0); jifei3:out std_logic_vector(3 downto 0); jifei4:out std_logic_vector(3 downto 0);end jifeimokuai;ARCHITECTURE FUN OF jifeimokuai ISSIGNAL en:STD_LOGIC;signal shoufei:std_logic_vector(7 downto 0);signal shoufeijishu:std_logic_vector(15 downto 0);begin shoufei<="00110011"when(shoufeijishu(15)='1') or(shoufeijishu(14)='1') or(shoufeijishu(13)='1') else"00100010"en<='0' when judge3="0000" and judge2(3 downto 2)="00" and (judge2(1)='0')or (judge2(1)='1' and judge2(0)='0') else '1' process(clk,reset) variable mm:std_logic_vector(15 downto 0); begin if reset='0'then mm:="0000011100000000" elsif clk'event and clk='1' then if en='1' then mm:=mm+shoufei; end if; if mm(3)='1' and (not(mm(2 downto 1)="00")then mm:=mm+6; end if; if mm(7)='1' and (not(mm(6 downto 5)="00")then mm:=mm+"01100000" end if; if mm(11)='1' and (not(mm(10 downto 9)="00")then mm:=mm+"011000000000" end if; if mm(15 downto 12)="1010"then mm:=mm+"0110000000000000" end if; end if; jifei1<=mm(3 downto 0); jifei2<=mm(7 downto 4); jifei3<=mm(11 downto 8); jifei4<=mm(15 downto 12); shoufeijishu<=mm; end process; end FUN;2.4扫描显示模块程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity xianshimokuai isport(clk:in std_logic; p8:in std_logic_vector(3 downto 0); p7:in std_logic_vector(3 downto 0); p6:in std_logic_vector(3 downto 0); p5:in std_logic_vector(3 downto 0); p4:in std_logic_vector(3 downto 0); p3:in std_logic_vector(3 downto 0); p2:in std_logic_vector(3 downto 0); p1:in std_logic_vector(3 downto 0); xuanze:out std_logic_vector(7 downto 0); shuzhi:out std_logic_vector(7 downto 0);end entity;ARCHITECTURE FUN OF xianshimokuai IS signal count:std_logic_vector(2 downto 0); signal tmp:std_logic_vector(3 downto 0); signal choicein:std_logic_vector(7 downto 0); signal datain:std_logic_vector(7 downto 0);begin clk1_label: process(clk) begin if clk'event and clk='1' then count<=count+1; end if; end process; clk2_label: process(clk) begin if clk'event and clk='0' then xuanze<=choicein; shuzhi(7 downto 1)<=datain(7 downto 1); if(count="0110" or count="0010") then shuzhi(0)<='1' else shuzhi(0)<='0' end if; end if; end process; choicein<="11111110" when count="000"else "11111101" when count="001"else "11111011" when count="010"else "11110111" when count="011"else "11101111" when count="100"else "11011111" when count="101"else "10111111" when count="110"else "01111111" tmp<=p1 when count="000"else p2 when count="001"else p3 when count="010"else p4 when count="011"else p5 when count="100"else p6 when count="101"else p7 when count="110"else p8; with tmp select datain(7 downto 1)<="1111110" when "0000", "0110000" when "0001", "1101101" when "0010", "1111001" when "0011", "0110011" when "0100", "1011011" when "0101", "1011111" when "0110", "1110000" when "0111", "1111111" when "1000", "1111011" when "1001", "1110111" when "1010", "0011111" when "1011", "1001110" when "1100", "0111101" when "1101", "1001111" when "1110", "1000111" when others;end FUN;3、仿真及仿真结果分析计费模块仿真图计程模块仿真图4、实验调试结果经过耐心的调试,同学们互相讨论研究,终于比较顺利的完成了课程设计的仿真,并得到了比较理想的仿真结果。三、结论及心得体会通过这几天有关于出租车计价器的课程设计,使我对EDA工具的使用有了更熟练的掌握。在整个设计的过程中,还是碰到了一些问题。比如,对于键盘的延时防抖问题不能较好的解决;对于编程的顺序及各模块程序调用掌握得还不够好;对于一些相关的应用软件没能熟练掌握。通过这几天的反复思考,以及参考网上的程序,最终还是完成了设计。设计中我最大的收获就是自己的动手能力和独立解决问题的能力得到了很大的提高,在动手的过程中,不仅能增强实践能力,而且在理论上可以有更深的认识;这次设计给了我极大的鼓舞和信心,相信在以后的学习中可以通过不断的学习和实践来提高专业方面的知识。参考资料1 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005.2 康华光主编.电子技术基础 模拟部分. 北京:高教出版社,2006.3 阎石主编.数字电子技术基础. 北京:高教出版社,2003.

    注意事项

    本文(EDA技术课程设计出租车自动计费系统.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开