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

2020-02-28 其他范文 下载本文

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

《EDA课程设计简易出租车计价器设计.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
EDA课程设计简易出租车计价器设计
点击下载文档
相关专题 出租车计价器课程设计 设计 计价器 出租车 出租车计价器课程设计 设计 计价器 出租车
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文