欢迎来到天天文库
浏览记录
ID:24781303
大小:1.16 MB
页数:11页
时间:2018-11-15
《EDA出租车计价.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、1.设计思路分析1.实验要求设计一个出租车计价器,要求显示里程和金额。起步和到达停车时要求有声音提示;行程小于基本里程时,显示起步价,基本里程、起步价要求可通过按键自己设定;行程大于基本里程时,每多行一公里,在起步价上加X元,X可由按键设定;当出租车等待时,由司机按下等候键,每等待一分钟加Y元,Y可由按键设定;用脉冲信号模拟轮胎的转数,设每计一个脉冲汽车前进100米,系统中所需脉冲均由实验箱的50MHz晶振分频提供。2.根据要求确定模块及其分析1.按键消抖模块:分析:由于外部按钮在动作时必然产生抖动
2、,若不消除则容易导致多次检测到边沿而产生错误判断。功能:此模块用于消除产生的抖动波形。2.50MHz分频模块:分析:要求100m产生的脉冲,并且需要等待计价和声音提示,所以有必要对50MHz进行分频成分钟、秒钟和发声频率。将系统所有需要用到的频率,由此模块产生,使程序模块化分工明确。功能:此模块模拟出车行驶100m产生的脉冲,并完成每1Km产生一个脉冲输出;产生1s、1min、蜂鸣器鸣叫所需的频率方波。3.蜂鸣器控制模块:分析:题目要求只有在起步和到达停车时要求有声音提示,所以需要检测起步和停止这两
3、个状态,然后决定是否发声。功能:完成检测当前状态并决定是否驱动蜂鸣器。4.设置数据存储器模块:分析:对起步价、基本里程、每公里价格及等待价格都是可用户设定的,所以通过按键对这些数据进行设定,为了方便操作,需对输入按键的读取采用模式选择形式。为了对其他模块的兼容性,采用当前模式状态输出。功能:设置并寄存起步价、基本里程、每公里价格及等待价格。5.停止复位模块:分析:由于停止是在系统任何情况下都能进行的,所以建立单独的模块对复位进行动作,输出复位时钟。功能:检测是否复位系统本次运行。6.数据检测模块:-
4、11-分析:要对行驶路程及价格进行计数处理,所以需要设计一个模块读取外部寄存器的相关数据,结合外部脉冲,处理这些数据,从而得出所需的数据。功能:对获取模拟脉冲、时间及设置信息并进行处理,决定输出内容,如价格,行驶里程,或设置状态下的起步价、基本里程等。1.数据显示处理模块:分析:由于数码管显示代码与实际数据不同,所以需要进行转换,对于显示排列及显示滚动均由一个模块完成,使得显示情况与外部数据状态无关,即外部模块只需给值,无需决定其因如何显示。简化其他数据处理模块的程序。功能:将获得的数据转换为数码管
5、显示的代码,并完成移动显示功能。2.数码管显示模块:分析:读取7段代码,进行八位数码管扫描显示。功能:显示获得的数据代码。-11-系统结构设计及分析1.系统系统的总体模块图:-11-2.系统引脚分配图:3.系统各功能模块的实现:1.按键消抖模块:a.模块图带自保持消抖按钮模块-11-不带带自保持消抖按钮模块b.仿真波形c.实现思想:采用抽样比较的方式进行消抖,即连续对输入抽样,比较抽样十次数据是否相等,相等则使得输出为十次相等的值,否则继续抽样。实际中抽样频率保持在1KHz。2.50MHz分频模块a
6、.模块图b.仿真波形-11-3.蜂鸣器控制模块:a.模块图b.仿真波形c.实现思想:当输入开始按钮按下并为启动状态,或结束按钮按下且为结束状态,蜂鸣器输出频率方波驱动蜂鸣器。-11-4.设置数据存储器模块:a.模块图b.仿真波形c.实现程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitysetisport(upBut,dnBut,setKey,cmod1,cmod2:instd_logic;bs
7、,sp,xp,yp:outstd_logic_vector(3downto0);dismod:outstd_logic);end;architectureoneofsetissignalmodc:std_logic_vector(1downto0);signalbst,spt,xpt,ypt:std_logic_vector(3downto0);signalcKey:std_logic;beginmodc<=cmod2&cmod1;bs<=bst;sp<=spt;-11-xp<=xpt;yp<=yp
8、t;cKey<=upButxordnBut;process(modc)beginifsetKey='1'thencasemodciswhen"00"=>dismod<='1';when"01"=>dismod<='1';when"10"=>dismod<='0';when"11"=>dismod<='0';whenothers=>null;endcase;endif;endprocess;process(cKey)beginifcKey'eventandcKey='1
此文档下载收益归作者所有