第七章课程设计_第1页
第七章课程设计_第2页
第七章课程设计_第3页
第七章课程设计_第4页
第七章课程设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章课程设计 题目:(4 分)对日常生活中常见的电器控制系统进行设计,自行决定设计功能,要求尽 可能接近实际情况(需要自行调研设计要求) 。注意根据系统特点,先进行系统划分顶层设 计,再对各子系统进行设计。完成书面设计后,编写 HDL 程序并进行功能仿真。出租车计 价系统设计:需考虑起步价、里程单价、等待时间加价等因素; 一、 课程设计目的 1、运用所学知识,解决实际问题的能力; 2、结合理论知识,考察阅读参考资料、文献、手册的能力; 3、通过本实践环节,培养科学和严谨的工作作风。 二、能够实现计费功能(起步价,里程单价,等待加价): 费用的计算是按行驶里程收费,设出租车的起价为 5.00 元,当里程小于 3km 时,按 起价计算收费;当里程大于 3km 时每公里按 1.3 元计费。等待累计时间超过 2min, 按每分钟 1.5 元计费。所以总费用按下式计算: 总费用起价费(里程3km)里程单价等候时间等候单价 三、设计思路简述 根据设计要求,本次设计的系统的输入信号有:脉冲信号 clk_195,计价开始信号 start,等待信号 stop,里程脉冲信号 fin。系统的输出信号有:总费用数 cha0 cha3, 行驶距离 km0 km1,等待时间 min0 min1 等。 本次系统的设计有两个脉冲输入信号 clk_195、fin,两个控制输入开关 start、stop; 功能实现的过程是:start 是计费开始开关,当 start 为高电平时,系统根据输入的情况开 始计费。当有乘客上车并开始行驶时,fin 脉冲到来,进行行驶计费,此时的 stop 需要置 为 0;如果需停车等待,就把 stop 变为高电平,并去除 fin 输入脉冲,开始进行等待计费; 当乘客下车且不等待时,直接将 start 置为 0,系统停止工作。 四、实现方法 本系统由分频模块、计量模块、控制模块和计费模块四个模块组成。计量模块是整个 系统实现里程计数和时间计数的重要部分;控制模块是实现不同计费方式的选择部分;设 计通过分频模块产生不同频率的脉冲信号来实现系统的计费。计量模块采用 1HZ 的驱动信 号,计费模块采用 13HZ、15HZ 的驱动信号;计量模块每计数一次,计费模块就实现 13 次或者 15 次计数,即为实现计时时的 1.5 元/min、计程时的 1.3 元/km 的收费; 五、模块设计 (一) 、分频模块 分频模块是对系统时钟频率进行分频,分别得到 15HZ、13HZ、1HZ 三种频率; 本设计中通过三种不同频率的脉冲信号实现在计程车在行驶、等待两种情况下的不同计费。 源程序如下: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity FP is port ( clk_195 :in std_logic; clk_13: out std_logic; clk_15: out std_logic; clk_1: out std_logic); end FP; architecture rt1 of FP is signal q_13:integer range 0 to 12; signal q_15:integer range 0 to 14; signal q_1:integer range 0 to 194; begin process(clk_195) begin if (clk_195event and clk_195=1 )then if q_13=12 then q_13“00000001“then en1“00000010“ then en0=1; else en0=0; end if; else en1=0;en0=0; end if; end if; end process; end rt2; 计量模块的仿真波形图为: 注:由图可以看出,在 fin 脉冲到来时,k1、k0 进行计数,en0 在每进行一次加法计 数时就输出一次高电平;当 stop 为高电平时,即为进入等待计时,m1、m0 进行计数, en1 在每进行一次计时计数的时候输出一个高电平。 (三) 、计费模块 本模块根据输入的 clk2 信号变化,调节费用的计数,c0、c1、c2、c3 分别表示费用 的显示。 源程序如下: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity JF is port(clk2:in std_logic; start: in std_logic; c0,c1,c2,c3: buffer std_logic_vector(3 downto 0); end JF; architecture rt3 of JF is begin process(clk2,start) begin if start=0 then c3=“0000“;c2=“0000“;c1=“0101“;c0=“0000“; elsif clk2event and clk2=1 then if c0=“1001“ then c0=“0000“; if c1=“1001“ then c1=“0000“; if c2=“1001“ then c2=“0000“; if c3=“1001“ then c3=“0000“; else c3=c3+1; end if; else c2=c2+1; end if; else c1=c1+1; end if; else c0=c0+1; end if; end if; end process; end rt3; 计费模块仿真波形图为: 注:由图中可以看出,随着 clk2 的高电平的到来,c3、c2、c1、c0 逐级进行加法计数, 当 c0 计数到九时,产生进位,c1 加一;当 c1 计数到九时,产生进位,c2 加一;当 c2 计 数到九时,产生进位,c3 加一; 起步价为 5 元; (四) 、控制模块 本模块通过两个不同的输入使能信号,对两个输入脉冲进行选择输出;使能信号是计 量模块中的输出,两个输入脉冲是分频模块输出的 13HZ、15HZ 的脉冲;本模块实现了 双脉冲的二选一功能; 源程序如下: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity KZ is port(ent0,ent1:in std_logic; clk_in1:in std_logic; clk_in2:in std_logic; clk_out:out std_logic); end KZ; architecture rt4 of KZ is begin process(ent0,ent1) begin if ent0=1 then clk_out=clk_in1; elsif ent1=1 then clk_out=clk_in2; end if; end process; end rt4; 控制模块的仿真波形图为: 注:由图中可以看出,当 ent0 为高电平时,输出为这一时段的 clk_in1; 当 ent1 为 高电平时,输出为这一时段的 clk_in2; (五) 、总模块 本模块将各个模块组合在一起,实现出租车的计费器系统设计; 源程序如下: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity CZC is port ( clk_195 :in std_logic; start :in std_logic; stop:in std_logic; fin:in std_logic; cha3,cha2,cha1,cha0:out std_logic_vector(3 downto 0); km1,km0:out std_logic_vector(3 downto 0); min1,min0: out std_logic_vector(3 downto 0); end CZC; architecture behav of CZC is component FP2 port(clk_195: in std_logic; clk_13: out std_logic; clk_15: out std_logic; clk_1 : out std_logic); end component; component JL port( s: in std_logic; fin: in std_logic; stop: in std_logic; clk1: in std_logic; en1,en0:buffer std_logic; k1,k0: buffer std_logic_vector(3 downto 0); m1,m0: buffer std_logic_vector(3 downto 0); end component; component JF port(clk2:in std_logic; start: in std_logic; c0,c1,c2,c3: buffer std_logic_vector(3 downto 0); end component; component KZ port(ent0,ent1:in std_logic; clk_in1:in std_logic; clk_in2:in std_logic; clk_out:out std_logic); end component; signal tmp1,tmp2,tmp3,tmp4,tmp5,tmp6: std_logic; begin u1: FP port map(clk_195,tmp1,tmp2,tmp3); u2:JL port map(start,fin,stop,tmp3,tmp4,tmp5,km1,km0,min1,min0); u3:KZ port map(tmp4,tmp5,tmp1,tmp2,tmp6); u4: JF port map(tmp6,start,cha0,cha1,cha2,cha3); end behav; 六、总程序仿真波形 注:由图中可以看出,当 fin 脉冲信号到来时,实现了行驶计费,当行驶里程超过三公 里,则再按每公里 1.3 元计费;当 stop 为高电平,即进入等待计时收费;当等待时间超过 2min

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论