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
出租车计价器课程设计目录前言1、系统工作原理 1.1 功能说明 1.2 基本原理2、硬件设计2.1 单片机最小系统单元 2.2 A44E霍尔传感器检测单元 2.3 AT24C01存储单元 2.4 键盘调......
时序逻辑电路的课程设计题目组员:杨天乐闫帅铮 艾文杰一、题目:出租车计价器 设计内容: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技术就......