数字电路与逻辑设计实验
题目: 简易出租车计价器
学号:
姓名:
班级:
学院:
时间:2013/11/4
设计课题的任务要求
设计一台出租车计价器,不同情况具有不同的收费标准。
基本要求:
1、行驶公里: 用时钟 2 秒钟表示出租车匀速行驶1 公里,在行车5 公里以内,按起步
价13 元收费,超过5 公里部分,以每公里2 元收费。燃油附加费为每运次1 元。
2、途中等待:用按键控制中途等待,等待少于(包括)5 秒不收费,超过5 秒后每等待3 秒钟加收1 元。
3、用数码管分时显示计费金额、行驶里程和等候时间。字母A 表示当前处于显示计费金额状态,字母B 表示当前处于显示行驶里程状态,字母C 表示当前处于显示等候时间状态。
4、用按键控制出租车空驶、载客状态并用点阵显示空驶、载客状态。
二、系统设计(包括设计思路、总体框图、分块设计)
1、设计思路:
将整个计价器分为控制和计费模块,按键及防抖模块,数码管显示模块,点阵显示模块。其中控制和计费模块作为系统核心,负责给出所有控制和对外显示信号。按键及防抖模块提供输入按键信号,用于状态间切换。数码管用于显示计费金额、里程和等待时间信息。点阵模块用于显示出租车载客和空驶状态。
2、设计框图:
3、分块设计
①控制和计费模块:
采用状态机的设计方式,根据计费计时方式的不同,分为了S0、S1、S2、S3四个状态,四个状态的含义和状态转移图如图所示:
S0
等待开始
S1
行驶
S2
等待
S3
停车付费
②按键防抖模块:
如图:按键防抖模块的原理是利用信号延迟,每个防抖模块都有一个输入时钟,每按下一次按键后输出端将产生一个输入时钟宽度的脉冲,输入时钟频率与主控模块中的状态切换扫描时钟频率相同,使状态能够及时的切换。
③点阵显示模块:
点阵模块主要用于显示出租车的空载和载客状态。空载时显示汉字“空”,载客时显示标志“X”。分别连接到点阵控制的行和列。En是由计费控制模块给出的空载/载客信号。
④数码管显示模块
数码管主要用于显示计费、里程、等待时间信息。clk_shu连接1kHz时钟扫描信号,s0~s6用于接收计费控制模块输出的各个数码管显示的数字。Weixuan和duanxuan控制数码管的位选和段选信号。
⑤时钟分频模块
将50MHz片上时钟分频为1Hz、1kHz、200Hz时钟信号,其中1Hz用于计费和计时。200Hz用于按键防抖和状态切换。1kHz用于数码管和点阵的扫描。
三、仿真波形及波形分析
①数码管显示模块:
下图是固定s0~s6为数字951413后的仿真波形,由于S1位在程序中没有用到,于是将其始终置为高电平(灭),实际输出应为9 1413。
如图所示:weixuan信号每隔6个时钟周期扫描一次,扫描频率为166Hz足以使人眼产生连续显示的感觉。观察duanxuan信号,在圆圈处应显示数字“1”,duanxuan为0000110正是“1”的段选码。说明数码管能将s0~s6传输的数字正确的显示。
②按键防抖模块
如图,,keyout输出一个时钟周期(5ms)的高电平。
③时钟分频模块:
由于分频比例太高,仿真到1s需要花费大量时间,故只仿真到20ms,观察1kHz和200Hz信号如下:
④点阵显示模块:
将en置高电平,输出应为X,如图,显示正确。
⑤计费计时模块:
等待模式:如图在2S和3S间分别按start-stop和pause进入s2模式,初始计费为14(起步费+燃油费),2s(即等待3s)后计费变为15。而在切换至s1后outen信号置高电平使点阵显示“X”。
结束和清零:
如图,再次按Start-stop后停止计费,按clear后计时计费清零
行驶状态:
5s内为14元,之后每2s 加2元,计费正常。
四、源程序
计费和控制模块:
library IEEE;
use ;
use ;
use ;
entity mytaxi is
port ( signal clk1k,clk1,clk5ms:in std_logic;
--频率为1kHz,1Hz,5ms的信号
start_stop:in std_logic; --开始-结束信号
pause:in std_logic; --等待-重新行驶信号
clear:in std_logic; --清零信号
t0:out integ
北邮数电综合实验报告 来自淘豆网m.daumloan.com转载请标明出处.