当前位置:文档之家› 出租车自动计费器VHDL程序报告

出租车自动计费器VHDL程序报告

出租车自动计费器VHDL程序报告
出租车自动计费器VHDL程序报告

EDA 课程设计

课程 ____________

题目 ____________

学院 ____________

专业班级

学生姓名

学生学号

指导教师

****年**月**日

题目出租车自动计费器

摘要

本系统是基于FPGA的模拟出租车计费系统,是在实验室实验箱EP1C6P240C8芯片及其外围电路的基础上完成程序的下载仿真。本系统模拟了出租车计费系统的过程,其中出租车的状态分为等待、行驶,系统能够完成起步价计费,等待、行驶状态计费。

关键字:出租车计费系统起步价等待行驶

一、设计目的

1.掌握出租车计费的工作原理

2.进一步熟悉用VHDL语言编写出租车计费程序

二、开发软件: QuartusII

三、设计任务

1、设计一个出租车自动计费器,具有行车里程计费、等候时间计费、及起

价三部分,用三位数码管显示总金额,最大值为99.9元;

2、行车里程单价1.7元/公里,等候时间单价1.7元/5分钟,起价8元(3

公里起价)。

3、行车里程的计费电路将汽车行驶的里程数转换成与之成正比的脉冲数,

然后由计数译码电路转换成收费金额,实验中以一个脉冲模拟汽车前进十米,则每100个脉冲表示1公里,然后用乘法器将里程数乘以每公里单价的比例系数,从而计算出具体费用。

4、用数码管显示行驶公里数,三个数码管显示行驶里程。提示:

1、等候时间计费需将等候时间转换成脉冲个数,用每个脉冲表示的金额与

脉冲数相乘即得计费数,脉冲周期为1秒,例如60个脉冲表示1分钟,而5分钟收费1.7元。

2、用2个LED显示等候时间。

3、用加法器将几项收费相加,P=P1+P2+P3

4、 P1为起价,P2为行车里程计费,P3为等候时间计费,用四个数码管表示总的计费结果。

四、系统设计原理及过程

1、基本原理

本次设计首先在QuartusⅡ环境中对出租车自动计费器的各个部分利用VHDL这一硬件描述语言予以设计,生成模块。而整个设计的核心部分就在里程、计时、计费处理模块。里程、计时模块完成行驶距离和等待时间的处理以及起步距离之后和等待时间的计费脉冲的产生。计费处理模块完成起步价计费、在计费脉冲来临之际累加计费的功能。随后运用QuartusⅡ中的仿真功能对其予以仿真,从仿真的结果中分析程序的正确性。待所有模块的功能正确之后,运用原理图搭建电路并进行整体仿真直至达到最初的设计要求,最后再在实验箱上综合下载检验设计的正确与否。

2、系统框图

根据设计要求,电路具有计时、计程、计费功能,用数码管显示行驶公里数、等待时间、收费金额,行车里程和等待时间的处理电路将汽车行驶的里程数、转换成与之成正比的计费脉冲,然后由计费电路转换成收费金额,实验中以一个脉冲模拟汽车前进十米,则每100个脉冲表示1公里,3公里以后每公里产生一个计费脉冲,一个1HZ的脉冲用来表示等待时间,60个脉冲代表1分钟,5分钟即300个脉冲产生一个等待计费脉冲,然后用计费电路对计费脉冲进行计费。实验箱中只有一个48MHZ的时钟,所以需要分频之后再送给其他模块,最后将等待时间、行驶里程、计费金额经过译码电路送到数码管显示。其设计框图如图1所示:

图1整体系统框图

3、电路及模块分析

系统总体设计电路如图2:

图2 出租车自动计费器顶层电路原理图

1)行驶里程、等待时间处理模块

本模块是系统的核心模块之一,能够对外部的行驶距离脉冲、等待时间脉冲进行计数。因为行驶距离每脉冲代表10米,所以计满100个数就输出一个行驶距离计费脉冲,因为3公里之内属于起步价,所以前3公里内不输出行驶距离计费脉冲,因为用3位数码管来显示行驶距离,其中两位整数,一位小数,所以行驶距离最小分辨率为0.1公里,行驶距离脉冲每计10个数,行驶距离输出加0.1,行驶距离最大值为99.9公里。等待时间脉冲频率为1HZ,所以一个脉冲代表1秒,60个等待脉冲是1分钟,输出等待时间加1,等待时间5分钟计一次费,所以对等待时间脉冲计数,计满300个数就输出一个等待计费脉冲。等待时间最大值为99分钟。将行驶距离、等待时间送到数据选择器,计费脉冲送到计费模块完成距离、时间的显示以及计费功能。

2)计费模块

计费模块也是本系统的核心,完成起步价计费,等待时间,行驶计费功

能。计费器启动,显示起步价8元,之后每来一个行驶距离计费脉冲或者等待时间计费脉冲,计费金额自动加1.7元。计费显示用3位数码管,所以计费最大值为99.9元。将计费输出送到数据选择器,最后送到译码电路显示。3)分频模块

因为实验箱上只有一个48MHZ的时钟,所以我们要经过分频电路得到我们所需要的频率,本系统中用到了三个分频,1HZ分频用来作为等待时间脉冲,10HZ分频作为行驶距离脉冲,每个脉冲代表行驶10米。还有一个分频是作为数码管动态显示的扫频脉冲,由此频率生成一个八进制计数器,作为数据选择器的选择信号,将各个数据位轮流送到数码管,利用人眼的视觉暂留实现动态显示。

4)八进制计数器模块

八进制计数器模块完成八进制计数,从000计到111后,回到000重新计数,并将此数据送到数据选择器作为选择信号。

5)八选一数据选择器模块

本模块主要是完成数码管的动态扫描,将八位数据在选择信号的作用下依次送到译码电路,完成动态显示。本模块的主要特点是有一个小数点标志位输出以及段选信号。

6)译码模块

本模块主要完成数据的译码,在段选信号,小数点标志位的共同作用下完成数据在八位数码管上的动态显示。

五、系统调试及下载

完成个模块的设计之后,将各个模块封装成元件,建立一个原理图文件,将各个模块连接起来,即完成了整个系统的顶层设计,顶层设计框图如上图图2所示。下面对系统的核心模块进行仿真。

1、里程、等待时间处理模块

里程、行驶距离计费脉冲仿真图

由图可以看出每10个脉冲里程数加0.1,三公里以后每公里有一个计费脉冲B1。

等待时间,等待计费脉冲仿真图

由图可以看出每60个脉冲,等待时间加1。等待时间每5分钟产生一个计费脉冲。

2、计费模块

计费模块仿真图

由图可以看出在计费脉冲来临之前,计费金额始终是起步价8元,之后每来一个计费脉冲,计费金额加1.7元。

其他模块较简单,这里就不一一仿真了,设计好顶层原理图之后,就可以配置引脚了,在配置引脚之前,先选择芯片EP1C6P240C8,然后配置好START、

WR、RST按键,数码管位选、段选引脚就可以下载了。

六、结论

下载完之后,我们可以看到,八位数码管的右三位显示起步价08.0,中间三个数码管在以0.1为步长进行加法显示行驶里程,当行驶里程超过3公里之后,每公里计费金额加1.7元,当我们按下K2键,每分钟左边两个数码管加1,其显示的等待时间,当等待时间到5分钟时,计费金额加1.7元,由此我们可以判断,系统设计符合要求。

实验感想:

附:实验程序

1.1HZ分频

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity pulse is

port(clk: in std_logic;

-- D: in std_logic_vector(7 DOWNTO 0);

Fout: out std_logic);

end;

architecture one of pulse is

signal full:std_logic;

begin

p_reg:process(clk)

variable cnt8: integer range 24000000 downto 0;

begin

if clk'event and clk='1' then

if cnt8=24000000 then

cnt8:=0;

full<='1';

else cnt8:=cnt8+1;

full<='0';

end if;

end if;

end process p_reg;

p_div:process (full)

variable cnt2:std_logic;

begin

if full'event and full='1' then

cnt2:=not cnt2;

If cnt2='1'then fout<='1';

else fout<='0';

end if;

end if;

end process p_div;

end;

2、10HZ分频

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity pulse10 is

port(clk: in std_logic;

-- D: in std_logic_vector(7 DOWNTO 0);

Fout: out std_logic);

end;

architecture one of pulse10 is

signal full:std_logic;

begin

p_reg:process(clk)

variable cnt8: integer range 2400000 downto 0;

begin

if clk'event and clk='1' then

if cnt8=2400000 then

cnt8:=0;

full<='1';

else cnt8:=cnt8+1;

full<='0';

end if;

end if;

end process p_reg;

p_div:process (full)

variable cnt2:std_logic;

begin

if full'event and full='1' then

cnt2:=not cnt2;

If cnt2='1'then fout<='1';

else fout<='0';

end if;

end if;

end process p_div;

end;

3、扫频分频

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity pulsesp is

port(clk: in std_logic;

-- D: in std_logic_vector(7 DOWNTO 0);

Fout: out std_logic);

end;

architecture one of pulsesp is

signal full:std_logic;

begin

p_reg:process(clk)

variable cnt8: integer range 24000 downto 0;

begin

if clk'event and clk='1' then

if cnt8=24000 then

cnt8:=0;

full<='1';

else cnt8:=cnt8+1;

full<='0';

end if;

end if;

end process p_reg;

p_div:process (full)

variable cnt2:std_logic;

begin

if full'event and full='1' then

cnt2:=not cnt2;

If cnt2='1'then fout<='1';

else fout<='0';

end if;

end if;

end process p_div;

end;

4、里程、等待时间处理模块

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY JIFEI IS

PORT(CLK0,CLK1:IN STD_LOGIC;

START:IN STD_LOGIC;

WR:IN STD_LOGIC;

RST:IN STD_LOGIC;

B1,B2:OUT STD_LOGIC;

KM0,KM1,KM2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

MIN1,MIN0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END JIFEI;

ARCHITECTURE BEHA VE OF JIFEI IS

BEGIN

RUN:PROCESS(CLK0,START,WR,RST)

V ARIABLE R1:INTEGER RANGE 0 TO 9;

V ARIABLE R2:INTEGER RANGE 0 TO 99;

V ARIABLE K:STD_LOGIC_VECTOR (7 DOWNTO 0);

V ARIABLE K2,K1,K0 :STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN

IF RST='0' THEN K0:="0000";K1:="0000";K2:="0000";R1:=0;R2:=0; ELSIF CLK0'EVENT AND CLK0='1' THEN

IF START='1'AND WR='1' THEN

IF R1=9 THEN R1:=0;

IF K0="1001" THEN

K0:="0000";

IF K1="1001" THEN

K1:="0000";

IF K2="1001" THEN

K2:="0000";

ELSE

K2:=K2+1;

END IF;

ELSE

K1:=K1+1;

END IF;

ELSE

K0:=K0+1;

END IF;

ELSE R1:=R1+1;

END IF;

K:=K2&K1;

IF K>"00000001" THEN

IF R2<99 THEN R2:=R2+1;B1<='0';

ELSE R2:=0;B1<='1';

END IF;

END IF;

END IF;

END IF;

KM0<=K0;KM1<=K1;KM2<=K2;

END PROCESS;

W:PROCESS(CLK1,START,WR,RST)

V ARIABLE W1:INTEGER RANGE 0 TO 59;

V ARIABLE W2:INTEGER RANGE 0 TO 299;

V ARIABLE M1:STD_LOGIC_VECTOR(3 DOWNTO 0);

V ARIABLE M0:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN

IF RST='0' THEN M0:="0000";M1:="0000";W1:=0;W2:=0;

ELSIF CLK1'EVENT AND CLK1='1' THEN

IF START='1' AND WR='0'THEN

IF W1=59 THEN W1:=0;

IF M0="1001"THEN

M0:="0000";

IF M1="1001"THEN

M1:="0000";

ELSE M1:=M1+1;

END IF;

ELSE M0:=M0+1;

END IF;

ELSE W1:=W1+1;

END IF;

IF W2<299 THEN W2:=W2+1;B2<='0';

ELSE W2:=0;B2<='1';

END IF;

END IF;

END IF;

MIN0<=M0;

MIN1<=M1;

END PROCESS;

END ARCHITECTURE ;

5、计费模块

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY JIN IS

PORT(B:IN STD_LOGIC;

START:IN STD_LOGIC;

RST:IN STD_LOGIC;

P0,P1,P2: OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END JIN;

ARCHITECTURE BEHA VE OF JIN IS

BEGIN

P:PROCESS(B,START,RST)

V ARIABLE C2,C1,C0:STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN

IF RST='0' THEN C0:="0000";C1:="1000";C2:="0000";

ELSIF START='1' THEN

IF B'EVENT AND B='1' THEN

IF C0>2 THEN --加0.7元

IF C1="1001"THEN C1:="0000";

IF C2="1001"THEN C2:="0000";

ELSE C2:=C2+1;

END IF;

ELSE C1:=C1+1;

END IF;

C0:=C0-3;

ELSE C0:=C0+7;

END IF;

IF C1="1001"THEN C1:="0000";

IF C2="1001"THEN C2:="0000";

ELSE C2:=C2+1;

END IF;

ELSE C1:=C1+1;

END IF;

END IF;

END IF;

P0<=C0;P1<=C1;P2<=C2;

END PROCESS;

END;

6、八进制计数器

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY CNT8 IS

PORT (CLK : IN STD_LOGIC;

OUTY : OUT STD_LOGIC_VECTOR(2 DOWNTO 0)); END CNT8;

ARCHITECTURE behav OF CNT8 IS

BEGIN

PROCESS(CLK)

V ARIABLE CQI : STD_LOGIC_VECTOR(2 DOWNTO 0);

BEGIN

IF CLK'EVENT AND CLK='1' THEN

IF CQI < "111" THEN CQI := CQI + 1;

ELSE CQI := "000";

END IF;

END IF;

OUTY <= CQI;

END PROCESS;

END behav;

7、八选一数据选择器

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY MAX81 IS

PORT (P0,P1,P2,K0,K1,K2,M0,M1: IN STD_LOGIC_VECTOR(3 DOWNTO 0);

S : IN STD_LOGIC_VECTOR(2 DOWNTO 0);

D : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

B : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);

POINT:OUT STD_LOGIC);

END MAX81;

ARCHITECTURE body_mAx81 OF mAx81 IS

BEGIN

process (P0,P1,P2,K0,K1,K2,M0,M1,S)

begin

case S is

WHEN "000"=>D<= P0;B<="11111110";POINT<='0';

WHEN "001"=>D<= P1;B<="11111101";POINT<='1';

WHEN "010"=>D<= P2;B<="11111011";POINT<='0';

WHEN "011"=>D<= K0;B<="11110111";POINT<='0';

WHEN "100"=>D<= K1;B<="11101111";POINT<='1';

WHEN "101"=>D<= K2;B<="11011111";POINT<='0';

WHEN "110"=>D<= M0;B<="10111111";POINT<='0';

WHEN "111"=>D<= M1;B<="01111111";POINT<='0';

WHEN others => null;

end case;

end process;

END body_MAX81;

8、数码管译码程序

Library ieee;

use ieee.std_logic_1164.all;

entity decl7s is

port(a:in std_logic_vector(3 downto 0);

POINT:IN STD_LOGIC;

led7s:out std_logic_vector(7 downto 0));

end decl7s;

architecture one of decl7s is

begin

process(a,POINT)

begin

IF POINT='0' THEN

case a is

when "0000"=>led7s<="11000000";

when "0001"=>led7s<="11111001";

when "0010"=>led7s<="10100100";

when "0011"=>led7s<="10110000";

when "0100"=>led7s<="10011001";

when "0101"=>led7s<="10010010";

when "0110"=>led7s<="10000010";

when "0111"=>led7s<="11111000";

when "1000"=>led7s<="10000000";

when "1001"=>led7s<="10010000"; when others=>null;

end case;

ELSE

case a is

when "0000"=>led7s<="01000000"; when "0001"=>led7s<="01111001"; when "0010"=>led7s<="00100100"; when "0011"=>led7s<="00110000"; when "0100"=>led7s<="00011001"; when "0101"=>led7s<="00010010"; when "0110"=>led7s<="00000010"; when "0111"=>led7s<="01111000"; when "1000"=>led7s<="00000000"; when "1001"=>led7s<="00010000"; when others=>null;

end case;

END IF;

end process;

end;

VHDL实验报告

《创新实验》实验报告 —基于VHDL的编程和硬件实现

一、实验目的 1.熟悉和掌握硬件描述语言VHDL的基本语法及编写; 2.掌握软件Xilinx ISE 10.1的使用; 3.熟悉SDZ-6电子技术实验箱的使用; 4.了解节拍脉冲发生器等基本电路的实现; 5.了解八位二进制计数器的功能与设计; 6.学习键盘和七段数码管显示的控制和设计。 二、实验内容 1.Xilinx ISE 10.1软件的使用; 2.节拍脉冲发生器等基本电路的实现; 3.八位二进制计数器的实现 4.键盘扫描及显示的实现 三、实验器材 1、PC机 2、SDZ-6电子技术实验箱 3、正负5V电源 4、I/O接口线 四、软件的使用 在安装Xilinx10.1软件时,需要一个ID号,其实这个ID号是可以重复使用的,几个同学在官网注册后就可以共享ID号了。 安装完成之后就可以使用这个软件编写相应的VHDL的程序。 1.新建工程 File—>New Project 弹出下面的对话框 输入工程名后单击Next。然后根据本实验的实验箱进行以下设置。

以后的步骤一般都是单击Next(有些资料上会介绍有些这些步骤的具体功能,但对于本实验不必用到),最后单击Finish,完成新建一个工程。在窗口的左边会出现刚刚新建的工程,如下: 2.新建一个VHDL的源文件。 在上图中,右击工程选择New Source ,弹出如下对话框。

在对画框的左边选择VHDL Module,输入文件的名字(改名字最好是你定义的实体的名字)。单击Next。出现下面的对话框。 该对话框主要是对外部端口的编辑。可以直接跳过,即单击Next,在源文件上编辑端口。然后在接下来的对话框中单击Finish。完成建立一个源文件。窗口右边就会出现刚才编辑的源文件。 3.编写和编译代码 将事先编好的代码复制到源文件里,然后保存文件。 选中左边的文件名,在窗体的左边出现如下编辑文档内容。

VHDL课程设计-PS2键盘

VHDL课程设计-PS2键盘

目录 一、课程设计的目的与任务 (3) 二、课程设计题目 (3) 1、指定题目: (3) 2、自选题目: (3) 三、课程设计的内容与要求 (3) 1、设计内容 (4) 2、设计要求 (4) 四、实验仪器设备 (4) 五、设计方案 (4) 1、PS2解码 (4) 2、设计思路 (6) 3、模块设计 (7) 4、各模块分析 (8) (1)PS2时钟检测模块 8 (2)PS2解码模块 10 (3)PS2组合模块 12 (4)控制LED模块 14 (5)PS2总的组合模块 16 六、综合与仿真 (17) 1、综合 (17) 2、仿真 (18) (1)电平检测模块仿真 (18) (2)LED灯控制模块仿真 (18)

(3)PS2_module总模块仿真 (19) 七、硬件下载 (23) 八、心得体会 (24) 九、参考文献 (24) 一、课程设计的目的与任务 (1)熟练掌握EDA工具软件QuartusII的使用; (2)熟练用VHDL硬件描述语言描述数字电路; (3)学会使用VHDL进行大规模集成电路设计; (4)学会用CPLD\FPGA使用系统硬件验证电路设计的正确性; (5)初步掌握EDA技术并具备一定的可编程逻辑芯片的开发能力; 二、课程设计题目 1、指定题目: 0 :多功能计数器;1 :数字秒表;2 :简易数字钟;3 :简易频率计; 4 :彩灯控制器; 5 :交通灯控制器; 6 :四路智力竞赛抢答器; 7 :简易微波炉控制器;8 :表决器;9 :数字密码锁; 我的的学号尾数是2,所以我要做的题目是简易数字钟。由于我之前已经学过Verilog HDL和VHDL,所以简易数字钟相对于我比较简单,我完成了简易数字钟并验收后,再选择了另一个自选题目来完成。 简易数字钟:设计一个以“秒”为基准信号的简易数字钟,显示时、分、秒,同时可实现整点报时和清零(我已经完成,而且已经验收了)。 2、自选题目: 在完成了数字钟的设计后,我选择了另一个设计的题目,那就是PS2键盘扫描。所以这次课程设计我的报告主要详细写的是PS2键盘扫描的程序,而不是简易数字钟。 PS键盘扫描:设计一个PS键盘扫描程序,能接受键盘的输入时钟和数据,区别哪一个键输入,同时解译通码和断码,使用LED灯来显示收到的数据。三、课程设计的内容与要求

课程设计出租车计费器

推南呼紐厚院 电子技术课程设计报告 题 目:基于Multisum 的出租车计价器课 程设计 级:3班 指导教师:聂文艳 机械与电气工程学院制 2015年3月 学生姓名: 学生学号: 李少华 1314050317 13级 年 级: 业: 电气工程及其自动化

目录 设计任务 ....................... 1.1 设计目的和意义 . ...................... 1.1.1 目的 ................... 1.1.2 意义 ................... 1.2 初始参数和要求 . ...................... 1.2.1 74LS160 计数器的简介 1.2.2 1.2.3 1.2.4 1.2.5 系统设计 2.1 2.2 74LS85 比较器的简介 74LS283 加法器的简介 初始要求 . .......................... 所用软件工具 . .............. 2.3 系统工作原理 . .......................................... 器件选择 ............................... 2.2.1 74LS160 计数器的功能 ............. 2.2.2 74LS283 加法器组成预置数计数器 2.2.3 74LS85 比较器的组成和内部结构 2.2.4 设计所需的器件归纳 . ................................. 电路设计 . ................................................ 2.3.1 2.3.2 2.3.3 2.3.4 路程的计数及显示 ..... 路程与预设值的比较 . 加 法器的预置 . ............... 电路整体的整合 . ......... 电路仿真测试 ............................ 2.4.1 路程计数及显示 . ............................... 2.4.2 系统整体电路运行及车费的显示 . 2.4.3 仿真结论 . ......................................... 总结 ........................................ 3.1 结论 . ...................................................... 3.2 优点与不足 . .............................................. 3.3 心得与体会 .............................. 参考文献 ................................... 2.4 3 3 3 4 4 4 4 4 4 4 5 5 6 6 7 8 9 9 9 10 10 11 11 11 12 12 13 13 13 13 14

VHDL实验报告03137

VHDL实验报告 60 庄炜旭实验三. 4位可逆计数器,4位可逆二进制代码-格雷码转换器设计 一.实验目的 学习时序电路的设计,仿真和硬件测试,进一步熟悉VHDL设计技术 1. 学习4位可逆计数器的设计 2. 学习4位可逆二进制代码-格雷码转换器设计 二.实验内容 设计4位可逆计数器,及4位可逆二进制代码-格雷码转换器,并仿真,下载。 [具体要求] 1.4位可逆计数器 a)使用CLOCK_50作为输入时钟,其频率为50MHz(对于频率大于50Hz的闪烁, 人眼会看到连续的光),因而,对其进行225的分频后,再用于时钟控制。(可 利用实验一) b)使用拨码开关SW17作为模式控制,置‘1’时为加法计数器,置‘0’时为减 法计数器,同时使用LEDR17显示SW17的值。 c)使用KEY3作为异步复位开关(按下时为0,不按为1),当为加法计数器时, 置“0000”,当为减法计数器时,置“1111”。 d)使用LEDR3,LEDR2,LEDR1,LEDR0作为转换后的输出结果显示,LEDR3为高 位,LEDR0为低位。 2.4位可逆二进制代码――格雷码转换器 a)使用拨码开关SW17作为模式控制,置‘1’时为二进制代码―>格雷码转换, 置‘0’时为格雷码―>二进制代码,同时使用LEDR17显示SW17的值。 b)使用拨码开关SW3, SW2, SW1, SW0作为输入的被转换数,SW3为高位,SW0 为低位。 c)使用LEDR3,LEDR2,LEDR1,LEDR0作为转换后的输出结果显示,LEDR3为高 位,LEDR0为低位。 三.管脚设定 SW[0]PIN_N25 SW[1]PIN_N26 SW[2]PIN_P25 SW[3] PIN_AE14 SW[17] PIN_V2 LEDR[0] PIN_AE23 LEDR[1] PIN_AF23 LEDR[2] PIN_AB21 LEDR[3] PIN_AC22 LEDR[17] PIN_AD12 KEY[3] PIN_W26

简易出租车里程计费器

测控08级综合课程设计 题目:简易出租车里程计费器 摘要:本系统以STC89C52RC单片机为控制核心,辅以键盘调节、12864显示、蜂鸣器报警、车速模拟、车速检测及信息存储电路,实现了出租车计价器的行车里程和车速的实时检测与显示、计价金额显示以及价格预置等功能,满足了题目中基本部分及发挥部分的要求。在此基础上,还增加了断电保护、蜂鸣器警示、行驶里程等功能。该系统功能齐全,实用性强。经测试,计价器的各项显示指标均满足题目要求。 关键词:出租车里程计费器;STC89C52RC+;MOC70T2;;掉电保护;

Abstract: This system uses STC89C52 microcontroller as control core. With the keyboard control circuit, digital display circuit, beep alarm circuit, speed measureement circuit, speed detection circuit and information storage circuit,this system realizes function of the meter taxi driving mileage ,display and detection of real-time speed, valuation display and price set in advance, it meets all essential and additional requirement. Additional function such as power-off protection , beep alarm the print of mileage and consumption is added. This system is fully functioned and easy to implement. The measurement results show that all indicators of this taxi meter meet the requirement.

VHDL课程设计PS键盘

目录 一、课程设计的目的与任务 (1)熟练掌握EDA工具软件QuartusII的使用;

(2)熟练用VHDL硬件描述语言描述数字电路; (3)学会使用VHDL进行大规模集成电路设计; (4)学会用CPLD\FPGA使用系统硬件验证电路设计的正确性; (5)初步掌握EDA技术并具备一定的可编程逻辑芯片的开发能力; 二、课程设计题目 1、指定题目: 0 :多功能计数器; 1 :数字秒表; 2 :简易数字钟; 3 :简易频率计; 4 :彩灯控制器; 5 :交通灯控制器; 6 :四路智力竞赛抢答器; 7 :简易微波炉控制器; 8 :表决器;9 :数字密码锁; 我的的学号尾数是2,所以我要做的题目是简易数字钟。由于我之前已经学过Verilog HDL和VHDL,所以简易数字钟相对于我比较简单,我完成了简易数字钟并验收后,再选择了另一个自选题目来完成。 简易数字钟:设计一个以“秒”为基准信号的简易数字钟,显示时、分、秒,同时可实现整点报时和清零(我已经完成,而且已经验收了)。 2、自选题目: 在完成了数字钟的设计后,我选择了另一个设计的题目,那就是PS2键盘扫描。所以这次课程设计我的报告主要详细写的是PS2键盘扫描的程序,而不是简易数字钟。 PS键盘扫描:设计一个PS键盘扫描程序,能接受键盘的输入时钟和数据,区别哪一个键输入,同时解译通码和断码,使用LED灯来显示收到的数据。 三、课程设计的内容与要求 1、设计内容 (1)系统功能的分析; (2)实现系统功能的实际方案; (3)编写各功能模块的VHDL语言程序; (4)对各功能模块进行编译、综合、仿真、分析; (5)顶层文件设计 (6)对整个系统进行编译、综合、仿真、分析; (7)在CPLD\FPGA实验开发系统试验箱上进行硬件验证; (8)写实验报告;

出租车自动计费器设计(课程设计报告模板)

. . . 目录 1 绪论 (1) 1.1设计背景 (1) 1.2QUARTUS II简介 (1) 1.3VHDL语言基础 (2) 2 出租车计费器总体设计结构 (2) 2.1系统设计要求和目的 (2) 2.2.1 系统设计要求 (2) 2.2.1 系统设计目的 (2) 2.2设计思路 (3) 2.3系统总体结构 (3) 2.4出租车计费器系统工作流程图 (4) 3 出租车计费器的实现 (5) 3.1出租车计费器的顶层原理图 (5) 3.2系统各功能模块的实现 (5) 3.2.1 计费模块JIFEI (5) 3.2.2 计量模块JILIANG (6) 3.2.3 显示控制模块SELTIME (7) 3.2.4 显示模块DELED (7) 4 出租车计费器系统仿真及分析 (8) 4.1计费系统的仿真 (8) 4.2单元模块的仿真及分析 (10) 4.2.1 译码显示模块的仿真及分析 (10) 4.2.2 显示控制模块的仿真及分析 (12) 4.2.3 计量模块的仿真及分析 (13) 4.2.4 计费模块的仿真及分析 (13) 5 锁定管脚及硬件实现 (14) 5.1锁定管脚图 (14) 5.2硬件实现 (14) 5.2.1 显示结果的几种情况 (15) 5.2.2 硬件实现总结 (16) 6 设计体会与总结 (17) 参考文献 (18) 附录 (19) 1JILIANG模块的VHDL编程 (19) 2JIFEI模块的VHDL编程 (21) 3SELTIME控制模块的VHDL编程 (22) 4DELED模块的VHDL编程 (23)

1 绪论 1.1 设计背景 随着我国社会经济的全面发展,各大中小城市的出租车营运事业发展迅速,出租车已经成为人们日常出行选择较为普通的交通工具。于是,出租车行业以低价高质的服务给人们带来了出行的享受。但是总存在着买卖纠纷困扰着行业的发展。而在出租车行业中解决这一矛盾的最好方法就是改良计价器。汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具,它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是具有一定意义的。出租车计费器是出租车营运收费的专用智能化仪表,是出租车市场规化,标准化以及减少司机与乘客之间发生纠纷的重要设备。一种功能完备,简单易用,计量准确的出租车计费器是加强出租车行业管理,提高服务质量的必需品。本设计就是采用VHDL硬件描述语言作为设计手段,采用自己的设计思路,得到一种出租车计价系统的软件结构,通过Quartus II 6.0软件下进行仿真,证明所设计的电路系统完成了出租车计价的功能,各项指标符合设计要求,具有一定的实用性。 1.2 QUARTUS II简介 QUARTUS II 是Altera公司的综合性CPLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL等多种设计输入形式,嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整CPLD设计流程。QUARTUS II 支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Altera QUARTUS II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。

出租车计价器系统完整版

智能电子产品设计与制作 课程设计(论文) 题目: 《出租车计价器系统设计》 学院:电气与电子信息工程学院 专业名称: 学号: 学生姓名: 同组成员: 指导教师: 课设时间:2011年5月23日—2011年6月10日 目录

一.设计目的 (2) 二.设计要求 (2) 三.系统结构 (2) 四.功能模块设计 (3) 五.软件设计 (5) 六.电路组装与调试 (6) 七.电路仿真 (7) 八.总结 (8) 八.附录 (9)

出租车计价器课程设计 一、设计目的 随着出租车行业的发展,出租车已经是城市交通的重要组成部分,从加强行业管理以及减少司机与乘客的纠纷出发,具有良好性能的计价器对出租车司机和乘客来说都是很必要的。而采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试。而采用单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易地实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。本设计采用AT89S52单片机为主控器,以红外对管测转速,对实际里程的模拟,实现对出租车的多功能的计价设计,并采用AT24C01实现在系统掉电的时候保存单价等信息,输出采用8段数码显示管。本电路设计的计价器不但能实现基本的计价,而且还能根据白天,黑夜和中途等待来调节单价。 二、设计要求 出租车计价器根据乘客乘坐汽车行驶距离和等候时间的多少进行计价,并在行程中同步显示车费值。从起步价开始,当汽车程行驶未满3公里时,均按起步价计算。过3公里后,实现每1公里单价收费,中间遇暂停时,计程数不再增加,开始计时收费,测距收费和测时收费的和便构成了一位乘客的车费。同时,白天和夜晚价格不同,可以进行切换。白天单价、夜晚单价、等待单价和起步价格都可通过独立键盘进行调节。(默认起步价为5元/3公里,里程单价白天为1.5元/公里,夜晚为1.8元/公里,等待计时单价为0.5元/5分钟) 三、系统结构 根据设计的要求选择实验的方案:采用单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易地实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。设计采用AT89S51单片机为主控器,以红外对管和电机测转速(按键替代),实现对出租车的基本的计价设计,并采用AT24C02实现在系统掉电的时候保存单价等信息,输出采用8段数码显示管,相对液晶显示价格便宜,利用单片机丰富的I/O端口,及其控制的灵活性,实现基本的计价功能。 器系统结构图如下: 四、功能模块 1、单片机模块

VHDL课程设计报告

湖南科技大学 信息与电气工程学院 课程设计任务书 20 —20 学年第学期 专业:学号:姓名: 课程设计名称: 设计题目: 完成期限:自年月日至年月日共周设计依据、要求及主要内容(可另加附页): 指导教师(签字): 批准日期:年月日

目录 一、摘要 二、VHDL语言介绍 三、设计的目的 四、设计内容 五、电路工作原理 六、主要程序及仿真结果 七、对本次设计的体会和建议 八、参考文献

一、摘要 人类社会已进入到高度发达的信息化社会。信息化社会的发展离不开电子信息产品开发技术、产品品质的提高和进步。电子信息产品随着科学技术的进步,其电子器件和设计方法更新换代的速度日新月异。实现这种进步的主要原因就是电子设计技术和电子制造技术的发展,其核心就是电子设计自动化(EDA,Electronics Design Automation)技术,EDA技术的发展和推广应用又极大地推动了电子信息产业的发展。为保证电子系统设计的速度和质量,适应“第一时间推出产品”的设计要求,EDA技术正逐渐成为不可缺少的一项先进技术和重要工具。目前,在国内电子技术教学和产业界的技术推广中已形成“EDA热”,完全可以说,掌握EDA技术是电子信息类专业学生、工程技术人员所必备的基本能力和技能。EDA技术在电子系统设计领域越来越普及,本设计主要利用VHDL语言设计一个电子数字钟,它的计时周期为24小时,显示满刻度为24时59分59秒。总的程序由几个各具不同功能的单元模块程序拼接而成,其中包括分频程序模块、时分秒计数和设置程序模块、比较器程序模块、三输入数据选择器程序模块、译码显示程序模块和拼接程序模块。并且使用软件进行电路波形仿真。 关键词:数字钟EDA VHDL语言 二、VHDL语言介绍 1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL 设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。 三、设计的目的 本项实验通过六十进制计数器和数字钟的设计与仿真,学习VHDL语言及VHDL文本输入设计方法,编写六十进制计数器和数字钟源程序,应用VMAX+plusII软件进HDL文本输入设计与波形仿真。熟练地运用数字系统的设计方法进行数字系统设计,能进行较复杂的数字系统设计,按要求设计一个数字钟。 四、设计内容 1、60进制计数器计数器 60进制计数器计数器是一个用以实现计数功能的时序部件,它不仅可用来及脉冲数,还常用作数子系统的定时、分频和执行数字运算以及其它特定的逻辑功能。计数器种类很多。按

数字电路出租车计价器设计

时序逻辑电路课程设计 引言: 我们组选择了题目一,设计出租车计价器,通过对课本、资料的查阅,再经过构思,设计,搭建电路,仿真,得出了结果,虽然不够完美,但是也掌握了一些知识,增加了对各种原件的印象。下文将详细给出设计。 一、资料查阅 通过参考数字电路课本,以及数字电路实验书,再经过网络查阅,也参考了网上有的类似的设计,想出了电路的基本思路。 二、对于要求的实现 要求1:根据出租车上的速度传感器传来的脉冲个数和设置的里程单价来计算对应的总价格,并将总价格通过LED实时显示。 对于此要求的实现,通过查阅,我们发现了74LS160十位计数器,有预制与清零功能,能进行0-9重复计数。功能表如下 要求2:起步价可以设置:。 由于74LS160有置数功能,所以可以置数,能够要求其从一个确定的数开始计数,所以可以设置起步价。对于从要过了起步价里程才开始计数,因为每一个单位里程是一次脉冲,而芯片又是每一次脉冲才记一次数,所以应用触发器的存储功能来使前几次脉冲无法传至芯片。 要求3:里程单价可以设置。 运用比例乘法器,可以实现脉冲的改变。比如用CC4527比例乘法器,输入一个BCD 数,其输出的脉冲为输入脉冲的BCD的十分之一倍。比如速度传感器的每个脉冲为1km,单价为2元,那么就输入20的BCD数,那么比例乘法器就会输出一个2倍速度传感器脉冲的脉冲信号,以此脉冲作为后面电路的时钟信号,可以实现单价2元。其他单价以此类推,但是由于仿真软件中没有找到比例乘法器,所以仿真中没有单价设置这一项。 要求4:可以对总价格进行复位,从而为下次计费做好准备。

运用74LS160的置数功能,重新对其进行置数即可实现下次重新开始计费。 三、具体电路 时序逻辑:左下角U1为里程脉冲发生器,经过N个D锁存器的延时,才可以传至上面的74LS160芯片,芯片开始计数,显示在右上方的两位显示器上,即计程车的价钱。电路中有两个单刀单置开关,上面的S1和下面的S2。S1的作用为每次重新搭载乘客后的清零和重新显示起步价,S2的功能为开启里程传感器,为计程车进行计价。下面对电路各个部分进行解释: 1.计数部分: 用N块74LS160芯片,即可显示N位十进制数,本次仿真以2位为例,也就是只可以显示0-99元的价格。上图七段显示管U5为十位,U3为个位。如图通过开关S5进行起步价设置控制,芯片有CR和LD引脚,CR为1,LD为0时可以进行置数,入上图,设置起步价为5元。由于当有脉冲时候,才会执行置数功能,而又不能和里程传感器用同一个时钟信号,所以单独设置了一个信号源,通过S1开关,既控制LD电位,又通过与门或门非门作为选择开关控制U16信号源的信号是否输入芯片。当开关断开,LD电位为0,U16信号导通到U2芯片,执行置数功能。当S1开关闭合,CR和LD电位都为1,以里程脉冲作为时钟信号执行计数功能,从预制的数字开始计数。

基于VHDL语言的EDA实验报告(附源码)

EDA 实验报告 ——多功能电子钟 姓名:张红义 班级:10级电科五班 学号:1008101143 指导老师:贾树恒

电子钟包括:主控模块,计时模块,闹钟模块,辅控模块,显示模块,蜂鸣器模块,分频器模块。 1.主控模块: 主要功能:控制整个系统,输出现在的状态,以及按键信息。 源代码: libraryieee; use ieee.std_logic_1164.all; useieee.std_logic_arith.all; useieee.std_logic_unsigned.all; entity mc is port(functionswitch,k,set,lightkey: in std_logic; chose21,setout: out std_logic; lightswitch:bufferstd_logic; modeout,kmodeout : out std_logic_vector(1 downto 0); setcs,setcm,setch,setas,setam,setah:outstd_logic); end mc; architecture work of mc is signalmode,kmode:std_logic_vector(1 downto 0); signal light,chose21buf:std_logic; signalsetcount:std_logic_vector(5 downto 0); begin process(functionswitch,k,set,lightkey) begin iffunctionswitch'event and functionswitch='1' then mode<=mode+'1'; end if; iflightkey'event and lightkey='1' then lightswitch<=not lightswitch; end if; if mode="01" thenchose21buf<='0'; else chose21buf<='1'; end if; ifk'event and k='1' then if mode="01" or mode="11" then kmode<=kmode+'1'; end if;end if; if set='1' then if mode = "01" then ifkmode="01" then setcount<="000001"; elsifkmode="10" thensetcount<="000010"; elsifkmode="11" then setcount<="000100";

出租车计价器收费方法的算法设

《出租车计价器收费方法的算法设计》 教学设计 一、教学设计说明 [现状分析] 算法作为信息科技课程教学内容,旨在培养和提高学生的逻辑思维能力,以及用计算机去分析问题、解决问题的能力。然而算法的相关概念比较枯燥,理论过于抽象,对学生的能力要求较高,所以在教学过程中往往难以把握,也不容易引发学生的兴趣。因此需要教师在教学设计和课堂教学中,运用各种手段,使教学内容生动起来,活起来。 [关于教学目标] 在知识目标方面,通过对出租车计价器收费方法的算法设计,使学生理解分支结构解决问题的基本思想,能用分支结构算法来解决实际问题。 在能力目标方面,通过对出租车计价器收费方法的算法设计,培养和提高学生逻辑思维能力以及培养学生在算法研究中的自学探究能力和解决具体问题的能力。 在情感目标方面,通过对出租车计价器收费方法的算法设计,激发学生兴趣,提高学生学习的主动性和积极性。让学生知道算法设计在现实生活中的重要性和程序设计的实用性。同时也倡导同学间的相互研究讨论的风气,逐步养成合作学习的好风气,取长补短、共同提高。[关于教学设计] 中小学信息科技课程既承担着让中小学生了解、熟悉、掌握信息科技的基础知识和基本操作技能的任务,又承担着通过学习,学会利用信息技术发展创造性思维,培养解决真实、开放问题能力的任务。 因此以项目式学习的方法来展开教学,学生以小组为单位进行选择,开展项目式学习。以生活中的实际情况为例,激发学生的学习热情与兴趣。 整个教学过程如下: 1、引入问题 2、布置任务 3、建立数学模型 4、确定算法画出流程图: 5、编写应用程序 6、进行作品展示

7、活动反思 [关于教学策略] 通过项目式学习,一般要求学生应以小组为单位,联系学习、生活的实践,设计学习任务、课题或项目,教师只起组织、指导作用,并考虑制定可行的评价方案。 对于在项目活动中出现学生思维出现盲点或陷入小巷思维时,教师因势利导,给与学生适时的引导与帮助。这样将更有利于学生正确地分析问题、思考问题,学生思维才能得到更有效的培养和锻炼。 最后,期望通过本项目学生能充分理解分支结构解决问题的基本思想,根据算法画出流程图。同时能形成相互研究讨论的风气,逐步养成合作学习的好风气,取长补短、共同提高。二、教学目标 知识目标: 1、理解分支结构解决问题的基本思想; 2、能用分支结构算法来解决实际问题。 能力目标: 1、培养和提高学生逻辑思维能力,使学生完成对分支结构算法的设计; 2、通过对实际问题的解决,培养学生在算法研究中的自学探究能力和解决具体问题的能力。 情感目标: 1、创设情境,激发学生兴趣,提高学生学习的主动性和积极性。让学生知道算法设计在现实生活中的重要性和程序设计的实用性; 2、倡导同学间的相互研究讨论的风气,逐步养成合作学习的好风气,取长补短、共同提高。 三、教学重点与难点 重点:把解决实际问题的方法用分支结构算法表达出来 难点:分支结构算法特点和作用的归纳 四、教学资源 1、调查学生使用搜索引擎的情况。 2、教师用VB程序编写一个出租车计价器软件。 3、设计学生活动,准备活动中碰到的问题。 4、多媒体网络机房,网络展示评价平台。 五、教学过程 1、引入:出租车乘过吗?了解费用怎么计算?

VHDL课程设计

本科实验报告 实验名称:数字系统设计与实验(软件部分)

实验一 QuartusII9.1软件的使用 一、实验目的: 1、通过实现书上的例子,掌握QUARTUSII9.1软件的使用. 2、编程实现3-8译码电路以掌握VHDL组合逻辑的设计以及QUARTUSII9.1软件的使用。 二、实验内容 1.十进制加法计数器的VHDL文本及仿真 功能图: VHDL文本: library IEEE; use IEEE.std_logic_1164.all; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity count10 is port(clk,load,en:in std_logic; data_in:in std_logic_vector(3 downto 0); seg:out std_logic_vector(6 downto 0)); end count10; architecture beha of count10 is signal qout:std_logic_vector(3 downto 0); signal q_temp:std_logic_vector(3 downto 0); begin process(clk,load) begin if(load='1')then q_temp<=data_in; elsif(clk'event and clk='1')then

if(en='0')then qout<=qout; elsif(qout="1001")then qout<="0000"; else qout<=qout+1; end if; q_temp<=qout; end if; end process; process(q_temp) begin case q_temp is when"0000"=>seg<="1000000"; when"0001"=>seg<="1111001"; when"0010"=>seg<="0100100"; when"0011"=>seg<="0110000"; when"0100"=>seg<="0011001"; when"0101"=>seg<="0010010"; when"0110"=>seg<="0000010"; when"0111"=>seg<="1111000"; when"1000"=>seg<="0000000"; when"1001"=>seg<="0010000"; when others=>seg<="0001000"; end case; end process; end beha; 功能仿真流程及结果: 全编译通过后,进行仿真 新建波形文件,在其中添加所需节点。将clk设置为时钟信号,将en设置为高电平,将load 设置为低电平,将data_in设置为想要预置的数值。 运行Generate Functional Simulation Nest List命令产生能仿真的网标文件。点击Start Simulation开始模拟仿真 仿真结果:

出租车自动计费器设计(课程设计报告模板)课件

目录 1 绪论 (1) 1.1设计背景 (1) 1.2QUARTUS II简介 (1) 1.3VHDL语言基础 (2) 2 出租车计费器总体设计结构 (2) 2.1系统设计要求和目的 (2) 2.2.1 系统设计要求 (2) 2.2.1 系统设计目的 (2) 2.2设计思路 (3) 2.3系统总体结构 (3) 2.4出租车计费器系统工作流程图 (4) 3 出租车计费器的实现 (5) 3.1出租车计费器的顶层原理图 (5) 3.2系统各功能模块的实现 (5) 3.2.1 计费模块JIFEI (5) 3.2.2 计量模块JILIANG (6) 3.2.3 显示控制模块SELTIME (7) 3.2.4 显示模块DELED (7) 4 出租车计费器系统仿真及分析 (8) 4.1计费系统的仿真 (8) 4.2单元模块的仿真及分析 (10) 4.2.1 译码显示模块的仿真及分析 (10) 4.2.2 显示控制模块的仿真及分析 (11) 4.2.3 计量模块的仿真及分析 (12) 4.2.4 计费模块的仿真及分析 (12) 5 锁定管脚及硬件实现 (13) 5.1锁定管脚图 (13) 5.2硬件实现 (13) 5.2.1 显示结果的几种情况 (14) 5.2.2 硬件实现总结 (15) 6 设计体会与总结 (16) 参考文献 (17) 附录 (18) 1JILIANG模块的VHDL程序 (18) 2JIFEI模块的VHDL程序 (19) 3SELTIME控制模块的VHDL程序 (20) 4DELED模块的VHDL程序 (21)

1 绪论 1.1 设计背景 随着我国社会经济的全面发展,各大中小城市的出租车营运事业发展迅速,出租车已经成为人们日常出行选择较为普通的交通工具。于是,出租车行业以低价高质的服务给人们带来了出行的享受。但是总存在着买卖纠纷困扰着行业的发展。而在出租车行业中解决这一矛盾的最好方法就是改良计价器。汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具,它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是具有一定意义的。出租车计费器是出租车营运收费的专用智能化仪表,是出租车市场规范化,标准化以及减少司机与乘客之间发生纠纷的重要设备。一种功能完备,简单易用,计量准确的出租车计费器是加强出租车行业管理,提高服务质量的必需品。本设计就是采用VHDL硬件描述语言作为设计手段,采用自己的设计思路,得到一种出租车计价系统的软件结构,通过Quartus II 6.0软件下进行仿真,证明所设计的电路系统完成了出租车计价的功能,各项指标符合设计要求,具有一定的实用性。 1.2 QUARTUS II简介 QUARTUS II 是Altera公司的综合性CPLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整CPLD设计流程。QUARTUS II 支持Altera 的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Altera QUARTUS II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。

VHDL实验报告

专用集成电路实验报告 13050Z01 1305024237 刘德文

实验一开发平台软件安装与认知实验 实验内容 1、本实验以三线八线译码器(LS74138)为例,在Xilinx ISE 9.2软件平台上完成设计 电路的VHDL文本输入、语法检查、编译、仿真、管脚分配和编程下载等操作。下载芯片选择Xilinx公司的CoolRunner II系列XC2C256-7PQ208作为目标仿真芯片。 2、用1中所设计的的三线八线译码器(LS74138)生成一个LS74138元件,在Xilinx ISE 9.2软件原理图设计平台上完成LS74138元件的调用,用原理图的方法设计三线八线译 码器(LS74138),实现编译,仿真,管脚分配和编程下载等操作。 源程序: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; -- Uncomment the following lines to use the declarations that are -- provided for instantiating Xilinx primitive components. --library UNISIM; --use UNISIM.VComponents.all; entity ls74138 is Port ( g1 : in std_logic; g2 : in std_logic; inp : in std_logic_vector(2 downto 0); y : out std_logic_vector(7 downto 0)); end ls74138; architecture Behavioral of ls74138 is begin process(g1,g2,inp) begin if((g1 and g2)='1') then case inp is when "000"=>y<="00000001"; when "001"=>y<="00000010";

简易出租车计价器设计

简易出租车计价器 摘要:介绍了一种以单片机为核心的多功能出租车计价器,该计价器采用单CPU结构,具有计量功能、掉电保护功能、语音功能等。文中阐述了系统的硬件及软件结构。 关键词:出租车计价器单片机多功能 ABSTRACT:This paper present a new type of taximeter based on single chip microcomputer. In addition to metering the distance, this kind of taximeter have safe memory function, speech function and so on. The article mainly introduces the system hardware and software. KEYWORDS:Taximeter single chip microcomputer multi-function 第1节引言 汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是十分有一个应用价值的。 电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。为此我们采用了单片机进行设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。针对计费模式的切换,通过软件编程就可以轻易而举的实现。避免了机械开关带来的不稳定因素。 随着生活水平的提高,人们已不再满足于衣食住的享受,出行的舒适已受到越来越多人的关注。于是,出租车行业以低价高质的服务给人们带来了出行的享受。但是总存在着买卖纠纷困扰着行业的发展。而在出租车行业中解决这一矛盾的最好方法就是改良计价器。用更加精良的计价器来为乘客提供更加方便快捷的服务。 现在各大中城市出租车行业都已普及自动计价器,所以计价器技术的发展已成定局。而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,计价器的普及也是毫无疑问的,所以未来汽车计价器的市场还是十分有潜力的。 …… 1.1出租车计价器概述 本电路以89S51 单片机为中心、附加A44E 霍尔传感器测距,实现对出租车计价统计,采用AT24C02 实现在系统掉电的时候保存单价和系统时间等信息,输出采用8 段数码显示管。本电路设计的计价器不但能实现基本的计价,而且还能根据白天、黑夜、中途等待来调节单价,同时在不计价的时候还能作为时钟为司机同志提供方便。 1.2本设计任务 1.2.1设计任务 设计简易出租车计价器 1.2.2 课程设计目的

相关主题
文本预览
相关文档 最新文档