教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 专业资料 >

北邮电子-数电综合实验报告(2)

来源:网络收集 时间:2026-09-18
导读: 2.4 模块control3 2.4.1电路模块 当输入outt为1时,开始计数 cm2为等待时间计费 2.4.2关键代码 ENTITY control3 IS PORT( clk3: IN STD_LOGIC; --输入是0.3Hz的时钟 outt: IN STD_LOGIC; --为1时,等待时间大于5s v

2.4 模块control3 2.4.1电路模块

当输入outt为1时,开始计数 cm2为等待时间计费

2.4.2关键代码

ENTITY control3 IS PORT(

clk3: IN STD_LOGIC; --输入是0.3Hz的时钟

outt: IN STD_LOGIC; --为1时,等待时间大于5s v: IN STD_LOGIC; --载客控制输入信号 w: IN STD_LOGIC; --等待信号

cm2: out STD_LOGIC_VECTOR(9 DOWNTO 0));--等待计费 END control3 ;

ARCHITECTURE c OF control3 IS

SIGNAL tempm: STD_LOGIC_VECTOR(9 DOWNTO 0) ; BEGIN

p5:PROCESS(clk3,outt,v,w) BEGIN

IF outt='1'THEN --大于5秒时开始计费 IF (clk3'event and clk3='1') THEN IF v='0' THEN

tempm<="0000000000"; --乘客下车等待时间重置 ELSIF w='0' THEN --行驶时保持状态 tempm<=tempm;

ELSE tempm<=tempm+1 ; --等待时开始计费 END IF; END IF; END IF;

END PROCESS p5;

p6: PROCESS(clk3,tempm)

BEGIN

简易出租车的数字电路设计

IF V='0' THEN

cm2<="0000000000"; ELSE

cm2<=tempm; --将信号赋给输出:等待计费cm2 END IF;

END PROCESS p6; END c;

2.5 control4 2.5.1 电路模块

将等待计费cm2和行驶计费cm1相加,并加上

燃油费1元,得到总费用cm

2.5.2 关键代码

ENTITY control4 IS PORT(

clk2: IN STD_LOGIC; --输入是0.5Hz的时钟 v: IN STD_LOGIC; --载客控制输入信号 cm1: in STD_LOGIC_VECTOR(9 DOWNTO 0);--行驶费用 cm2: in STD_LOGIC_VECTOR(9 DOWNTO 0); --等待费用

cm: out STD_LOGIC_VECTOR(9 DOWNTO 0));--总费用 END control4 ;

ARCHITECTURE c OF control4 IS BEGIN

p5:PROCESS(clk2,v) BEGIN

IF (clk2'event and clk2='1') THEN IF v='0' THEN cm <="0000000000"; ELSE cm<=cm1+cm2+1; END IF; END IF;

END PROCESS p5; END c;

2.6控制计数部分的总仿真波形

图8 控制计数器仿真波形

简易出租车的数字电路设计

3.转换器

3.1 电路模块

由三个输入:行驶距离cd、等待时间ct、计费

金额cm

输出out1-5为四位二进制BCD码

实现功能:将十位二进制数按照位数转为为

BCD码

3.2 关键代码

ENTITY transform IS PORT(

clk: IN STD_LOGIC; --0.5hz的时钟 v: IN STD_LOGIC; cd: in STD_LOGIC_VECTOR(9 DOWNTO 0);--行驶距离 ct: in STD_LOGIC_VECTOR(9 DOWNTO 0); --等待时间 cm: in STD_LOGIC_VECTOR(9 DOWNTO 0) ;--总费用 out1: out std_logic_vector(3 downto 0) ;--输出个位 out2: out std_logic_vector(3 downto 0); --输出十位 out3: out std_logic_vector(3 downto 0); --输出百位 out4: out std_logic_vector(3 downto 0); --输出千位

out5: out std_logic_vector(3 downto 0)); --输出ABC END transform ;

ARCHITECTURE c OF transform IS

signal cc : integer range 0 to 1023 ;

signal t : std_logic_vector(1 downto 0) ; signal q1,q2,q3:integer range 0 to 1000; BEGIN

p1:PROCESS(clk,v) --p1进行3进制的计数 BEGIN

IF (clk'event and clk='1') THEN IF v='0' THEN t<="00";

elsif t="00" then t<="01";

elsif t="01" then t<="10";

elsif t="10" then t<="00";

else t<="00";

END IF;

简易出租车的数字电路设计

END IF;

END PROCESS p1; p2:process(clk,t) BEGIN

if (clk'event and clk='1') then

CASE t is --实现分时显示

when "00" => cc <=CONV_INTEGER(cm);out5<="1010" ;--计费,显示A when "01" => cc <=CONV_INTEGER(cd);out5<="1011"; --计里程,显示b when "10" => cc <=CONV_INTEGER(ct);out5<="1100"; --计时,显示c when others => cc<=cc; --将十位2进制转为十进制 END CASE;

q1<=cc/10; --除法结果为整数部分 q2<=q1/10;

q3<=q2/10;

out1<=conv_std_logic_vector(cc rem 10,4); --取得个位 out2<=conv_std_logic_vector(q1 rem 10,4); --取得十位 out3<=conv_std_logic_vector(q2 rem 10,4); --取得百位 out4<=conv_std_logic_vector(q3 rem 10,4); --取得千位 end if;

end process p2; END c;

4.数码管译码电路

4.1电路模块

4.2关键代码

ENTITY shumaguan IS PORT(

clk1: IN STD_LOGIC; ---500hz数码管扫描时钟 out5,out4,out3,out2,out1: IN STD_LOGIC_VECTOR(3 DOWNTO 0); g:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); cat:OUT STD_LOGIC_VECTOR(5 DOWNTO 0)); END shumaguan;

ARCHITECTURE a OF shumaguan IS

SIGNAL tmpg:STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL tmpn:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL tmpc:INTEGER RANGE 0 TO 5; BEGIN

p1:PROCESS(clk1) --六进制计数 BEGIN

if(clk1'event and clk1='1')then

简易出租车的数字电路设计

if tmpc = 5 then tmpc<=0; else

tmpc<=tmpc+1; END IF; END IF;

END PROCESS p1;

p2:PROCESS(clk1) --数码管选通轮流显示 BEGIN

if(clk1'event and clk1='1')then --将个位、十位等赋给各个数码管 case tmpc is

WHEN 0 => tmpn<=out1;cat<="111110"; WHEN 1 => tmpn<=out2;cat<="111101"; WHEN 2 => tmpn<=out3;cat<="111011"; WHEN 3 => tmpn<=out4;cat<="1 …… 此处隐藏:3125字,全部文档内容请下载后查看。喜欢就下载吧 ……

北邮电子-数电综合实验报告(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/54285.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)