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

上传人:枫** 文档编号:467523608 上传时间:2023-08-22 格式:DOC 页数:16 大小:787KB
返回 下载 相关 举报
EDA技术课程设计出租车自动计费系统_第1页
第1页 / 共16页
EDA技术课程设计出租车自动计费系统_第2页
第2页 / 共16页
EDA技术课程设计出租车自动计费系统_第3页
第3页 / 共16页
EDA技术课程设计出租车自动计费系统_第4页
第4页 / 共16页
EDA技术课程设计出租车自动计费系统_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《EDA技术课程设计出租车自动计费系统》由会员分享,可在线阅读,更多相关《EDA技术课程设计出租车自动计费系统(16页珍藏版)》请在金锄头文库上搜索。

1、课 程 设 计课 程 EDA技术课程设计 题 目 出租车自动计费系统 院 系 电子科学学院 专业班级 电子信息工程 学生姓名 学生学号 指导教师 东北石油大学课程设计任务书课程 EDA技术课程设计题目 出租车自动计费系统专业 电子信息工程 姓名 宋延龙 学号 070901140316主要内容、基本要求、主要参考资料等主要内容:设计一个最大量程为99.99元的出租车自动计费,计费器具有行车里程计费、等候时间计费及起价三部分功能,并用数码管显示车费的数目。基本要求:1、设计一个出租车自动计费器,具有行车里程计费、等候时间计费、及起价三部分,用四位数码管显示总金额,最大值为99.99元;2、行车里程

2、单价1元/公里,等候时间单价0.5元/10分钟,起价3元(3公里起价)均能通过人工输入。3、行车里程的计费电路将汽车行驶的里程数转换成与之成正比的脉冲数,然后由计数译码电路转换成收费金额,实验中以一个脉冲模拟汽车前进十米,则每100个脉冲表示1公里,然后用BCD码比例乘法器将里程脉冲乘以每公里单价的比例系数,比例系数可由开关预置。例如单价是1.0元/公里,则脉冲当量为0.01元/脉冲。4、用LED显示行驶公里数,两个数码管显示收费金额。主要参考资料:1 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005.2 康华光主编.电子技术基础 模拟部分. 北京:高教出版社,2006.3

3、阎石主编.数字电子技术基础. 北京:高教出版社,2003. 完成期限 2011.3.11 指导教师 专业负责人 2011年 3月7日一、总体设计思想1.基本原理随着出租车行业的发展,出租车已经是城市交通的重要组成部分,从加强行业管理以及减少司机与乘客的纠纷出发,具有良好性能的计价器对出租车司机和乘客来说都是很必要的。而采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试。而采用单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易地实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。本设计采用AT89S52单片机为主控器,

4、以A44E霍尔传感器测距,实现对出租车的多功能的计价设计,输出采用8段数码显示管。大体设计思路为把传感器安装在车轮上,主要检测汽车行进的公里数,并产生一系列相应的脉冲输出,脉冲送到单片机进行处理,单片机根据程序设定通过计算脉冲数换算出行驶公里数,再根据从EEPROM中读取的价格等相关数据进行金额的计算,计算好的金额、里程和单价都实时地显示在数码管上。独立键盘可以调节价格等相关数据,按下相应的按钮,产生信号交由单片机处理并实时显示出来,调节好的数据存储到EEPROM中,掉电后可以使调好的数据不丢失,系统结构图如图。2.设计框图根据计费器设计要求,可将该系统分成四大模块,一块为计费模块,一块为时间

5、计时模块,一块为路程控制模块,另一块为输出显示模块。速度控制模块路程控制模块计费模块扫描显示模块二、设计步骤和调试过程1、总体设计电路 主控机系统采用了Atmel 公司生产的 AT89S52单片机,它含有256 字节数据存储器,内置8K 的电可擦除FLASH ROM,可重复编程,大小满足主控机软件系统设计,所以不必再扩展程序存储器。复位电路和晶振电路是AT89S52 工作所需的最简外围电路。单片机最小系统电路图如下图所示。2、模块设计和相应模块程序2.1速度控制程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UN

6、SIGNED.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)

7、 variable count2:std_logic_vector(2 downto 0); begin if reset=0 then count2:=000; elsif (clkevent 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=tm

8、pclk;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

9、 OF luchengkongzhi ISbegin process(clk,reset) variable mm:std_logic_vector(11 downto 0); begin if reset=0 then elsif clkevent and clk=1 then if mm(3 downto 0)=1001then mm:=mm+7; else mm:=mm+1; end if; if mm(7 downto 4)=1010then mm:=mm+01100000; end if; if mm(11 downto 8)=1010then mm:=mm+011000000000

10、; 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_v

11、ector(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 s

12、houfei:std_logic_vector(7 downto 0);signal shoufeijishu:std_logic_vector(15 downto 0);begin shoufei=00110011when(shoufeijishu(15)=1) or(shoufeijishu(14)=1) or(shoufeijishu(13)=1) else00100010;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=0then mm:=0000011100000000; elsif clkevent and clk=1 then if en=1 then mm:=mm+s

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号