EDA课程设计简易出租车计价器设计_出租车计价器课程设计

其他范文 时间:2020-02-28 10:35:00 收藏本文下载本文
【www.daodoc.com - 其他范文】

EDA课程设计简易出租车计价器设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“出租车计价器课程设计”。

HBQY

#20080230403

课程设计

EDA

课 程 设 计

[RTX于2012/2/22] 简 易 出租车计价器设计

要求:

 计价器按1.2元/公里计费,超过10公里后,则按1.8元/公里收费。

 起步价6元(3公里),超过3公里后,计价累加0.6元,10公里内以后每过0.5公里累加0.6元。

 过10公里后, 计价累加0.9元, 以后每过0.5公里累加0.9元。

 公里数4位数字显示,精确到0.1公里;出租车计价4位数字显示,精确到0.1元。 即:

一.设计方案

HBQY

#20080230403

课程设计

二.硬件部分:

(1)硬件环境: 东南大学SE-5型EDA试验箱,其中核心元件是Altera公司的EPF10K10LC84-4):

三.软件部分:

(1)软件环境: Altera公司的MAX+plusII(2)程序源代码: 1.顶层设计:

HBQY

#20080230403

课程设计

2.各元件源代码: 元件kms2money--kms2money.vhd library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;--0.1公里表示为1, 0.1元表示为1 entity kms2money is

port(rst, clk, enf, dispclk :in

std_logic;

data4 :out std_logic_vector(3 downto 0);

ctl8

:out std_logic_vector(7 downto 0));--data4 :按dispclk的上升沿周期性的依次输出kms3,kms2,kms1,kms0,mon3,mon2,mon1,mon0

--ctl8 :分别为控制动态扫描显示的8个LED的使能端,高电平使能 end kms2money;architecture art_kms2money of kms2money is signal kms3,kms2,kms1,kms0:std_logic_vector(3 downto 0);--公里百位,十位,个位,十分位 signal mon3,mon2,mon1,mon0:std_logic_vector(3 downto 0);--金额百位,十位,个位,十分位 begin---------dynctl:proce(dispclk,kms3,kms2,kms1,kms0,mon3,mon2,mon1,mon0)--动态显示

--dispclk上升沿依次来临时data4依次为kms3,kms2,kms1,kms0,mon3,mon2,mon1,mon0,周而复始

variable times:std_logic_vector(2 downto 0);--3位可表征8种状态,非'0'且非'1'除外

begin

if dispclk'event and dispclk='1' then

times:=times+1;

case times is

when “000”=>

data4

when “001”=>

data4

when “010”=>

data4

when “011”=>

data4

when “100”=>

data4

when “101”=>

data4

when “110”=>

data4

when “111”=>

data4

when others=> data4

end case;

end if;end proce;---------kmsdisp:proce(rst,clk)--clk每来一次上升沿认为公里数加0.1公里,即加1

begin if rst='1' then kms3

elsif clk'event and clk='1' then

if enf='1' then

HBQY

#20080230403

课程设计

if kms0=“1001” then--按十进制相加规律加1

kms0

if kms1=“1001” then

kms1

if kms2=“1001” then

kms2

if kms3=“1001” then kms3

else kms3

end if;

else kms2

end if;

else kms1

end if;

else kms0

end if;

end if;

end if;

end proce;---------mondisp:proce(rst,clk)

variable kms: std_logic_vector(15 downto 0);--公里数的十六进制值或二进制值

variable times:std_logic_vector(2 downto 0);--记录clk上升沿的次数,即有几个0.1公里

begin if rst='1' then mon3'0');times:=“000”;

elsif clk'event and clk='1' then

if enf='1' then

times:=times+1;

if times=1 then

kms:=kms+5;--kms可能为0,5,10,..,6,65,...(5的倍数)

--kms+1(0.1公里)与kms+5在价格的角度上看是等价的--XXX.1-XXX.5公里均按XXX.5公里看待,XXX.6-XXX.9公里均按(XXX.9+0.1)看待

If kms

--不超过3公里,收起步价6.0元 elsif kms

-------------------------

if mon0>3 then

--按十进制相加规律加6

mon0

if mon1=“1001” then

mon1

if mon2=“1001” then

mon2

if mon3=“1001” then mon3

else mon3

HBQY

#20080230403

课程设计

end if;

else mon2

end if;

else mon1

end if;

else mon0

end if;-------------------------else

--超过10公里,每0.5公里金额加0.9元;-------------------------

if mon0>0 then

--按十进制相加规律加9

mon0

if mon1=“1001” then

mon1

if mon2=“1001” then

mon2

if mon3=“1001” then mon3

else mon3

end if;

else mon2

end if;

else mon1

end if;

else mon0

end if;-------------------------end if;

elsif times=5 then times:=“000”;--每计数5次clk就重新计数以便下次“循环”使用

--times=0,2,3,4时参数不变,而只在times=1时一笔带过,被包含了.times=0与times=5是等效的end if;

end if;

end if;end proce;---------end art_kms2money;

3.元件seg7bcd--seg7bcd.vhd library ieee;use ieee.std_logic_1164.all;entity seg7BCD is port(turn_on :in std_logic;

HBQY

#20080230403

课程设计

--------

x y :in std_logic_vector(3 downto 0);:out std_logic_vector(6 downto 0));--声明: 共阴极7段显示 turn_on x y :显示使能开关,高电平有效 :4位BCD码,x(3)为最高位,x(0)为最低位 :7段显示码,y(6)..y(0)对应 g f e d c b a end seg7BCD;architecture art_seg7BCD of seg7BCD is begin proce(x,turn_on)begin

if turn_on='1' then

case x is

--“gfedcba”

when “0000”=>y

when “0001”=>y

when “0010”=>y

when “0011”=>y

when “0100”=>y

when “0101”=>y

when “0110”=>y

when “0111”=>y

when “1000”=>y

when “1001”=>y

when others=>y

end case;

else y

end if;end proce;end art_seg7BCD;3.仿真结果

HBQY

#20080230403

课程设计

HBQY

#20080230403

课程设计

HBQY

#20080230403

课程设计

4.管 脚 绑 定

Port

Num Name---------[+]LedEN[7..0] LedEN7 80 LedEN6 81 LedEN5 83 LedEN4 3 LedEN3 72 LedEN2 73 LedEN1 78 LedEN0 79---------[+]g2a[6..0] g2a6 g g2a5 f g2a4 e g2a3 d g2a2 c g2a1 b g2a0 a---------[+]input CLK

CP1 dispCLK 43 CP2

RSTK1 nPause 29 K2

HBQY

#20080230403

课程设计

5.下载程序

-------------------------本程序十分简易,仅供交流与学习。

RTX创建于2012-2-22,raxial@163.com----------------The end

提示:EPF10K10LC84-4不属于Fastest Speed Grades

出租车计价器课程设计2

出租车计价器课程设计目录前言1、系统工作原理 1.1 功能说明 1.2 基本原理2、硬件设计2.1 单片机最小系统单元 2.2 A44E霍尔传感器检测单元 2.3 AT24C01存储单元 2.4 键盘调......

出租车计价器Multisim课程设计

时序逻辑电路的课程设计题目组员:杨天乐闫帅铮 艾文杰一、题目:出租车计价器        设计内容:1)进行需求分析,确定总体框架;2)画出逻辑图;3)对设计的电路进行仿真;设计要求:1)根据出租......

出租车计价器 硬件课程设计

硬件课程设计报告题目:出租车计价器目录1. 引言 ...........................................................................................................................

出租车计价器设计

出租车计价器课程设计(1)(2009-07-20 12:10:25) 转载标签: 杂谈 分类:技术资料目录前言1、系统工作原理 1.1 功能说明 1.2 基本原理2、硬件设计2.1 单片机最小系统单元 2.2 A44E......

出租车计价器设计

综合实验 ——出租车计价器设计前言随着微电子技术的发展,现代电子技术的核心已日趋转向基于计算机的电子设计自动化技术,即EDA(Electronic Design Automation)技术。EDA技术就......

下载EDA课程设计简易出租车计价器设计word格式文档
下载EDA课程设计简易出租车计价器设计.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

热门文章
点击下载本文