北京邮电大学数电实验-沙漏点阵实验报告 - 图文

2020-04-17 05:14

数 字 电 路 实 验 报 告

学院:电子工程学院 班级:2012211209 学号:2012211063 姓名:张克寒

一 实验课题任务介绍和要求

沙漏是一种古老的计时工具,也是一种玩具。电子沙漏用发光二极管表示沙粒,模拟沙

漏的运动过程。电子沙漏会像真正的沙漏一样,上部的沙粒(点亮的发光二极管)一粒一

粒往下掉,下部的沙粒一粒一粒堆起来。

在结构上,两组各16 个发光二极管分别排列成为两个三角形,如图1 所示。其中:VD0~

VD15 位于上部,排列成倒三角形;VD0'~VD15'位于下部,排列成正三角形。两个三角形

的顶尖相对,组成沙漏形状。当上部有一个发光二极管熄灭时,相应地下部就有一个发光

二极管点亮,模拟了沙粒的运动。 1、采用 8*8 双色点阵显示电子沙漏的开机界面,如图2 所示。其中红色LED 代表沙

漏的上半部分沙粒VD0~VD15,绿色LED 代表沙漏的下半部分VD0'~VD15'。 2、用拨码开关 SW1 模拟重力感应器。当SW1 为低电平时,沙粒从VD0~VD15 向

VD0'~VD15'移动;当SW1 为高电平时,沙粒从VD0'~VD15'向VD0~VD15 移动。

3、按键 BTN0 作为计时启动停止按键,启动后沙粒即可按照SW1 设定的方向移动,

以SW1 为低电平时为例,LED 移动的顺序与对应关系如图3 的①~○16所示(若SW1

为高电平,则点阵显示移动顺序为○16~①)。每颗沙粒的移动时间为1 秒,当移动

到图3 的○16时,若SW1 仍为低电平,则保持沙粒不动,但计时继续,直到SW1 的电平发生变化或者BTN0 计时停止。4、设计实现一个 60 秒计时器,当按键BTN0 启动时开始工作,用于在沙粒移动过程

中进行计时校准,并用数码管DISP0~DISP1 显示计时结果。 提高要求:

1、可以调节控制电子沙漏的流动速度。 2、用多种方式呈现电子沙漏界面。

3、自行设定沙粒的移动路径,显示每颗沙粒的移动过程。 4、外接重力感应器,实现真实的电子沙漏功能。 5、自拟其它功能。

二 系统设计

因为要利用Quartus II 9.0软件来进行硬件语言的编译,所以应该做好系统设计,下图是我的系统设计

三 仿真波形与波形分析

四 源代码

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all; entity div4k is

port(clk_in : in std_logic; clk_out : out std_logic); end;

architecture a of div4k is

signal cnt : integer range 0 to 1999; signal clk_tmp : std_logic; begin

process(clk_in) begin

if (clk_in'event and clk_in='1') then if cnt=1999 then

cnt<=0; clk_tmp<= not clk_tmp; else

cnt<=cnt+1; end if; end if; end process;

clk_out<=clk_tmp;

end;

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY scan_led_2 IS PORT ( CLK : IN STD_LOGIC;

BTN0: IN STD_LOGIC;--运行和停止 SW0 : IN STD_LOGIC;--控制开机画面 SW1 : IN STD_LOGIC;--控制沙漏上下 SW2 : IN STD_LOGIC;--控制沙漏速率 SW3 : IN STD_LOGIC;--控制沙漏速率 SW4 : IN STD_LOGIC;--控制沙漏速率

SG : OUT STD_LOGIC_VECTOR(6 DOWNTO 0); BT : OUT STD_LOGIC_VECTOR(5 DOWNTO 0); R:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); Cr:OUT STD_LOGIC_VECTOR(0 TO 6); Cg:OUT STD_LOGIC_VECTOR(0 TO 6)); END;

ARCHITECTURE arc OF scan_led_2 IS component div4k

port(clk_in: in std_logic; clk_out: out std_logic); end component;

SIGNAL clk_tmp1 : std_logic;

SIGNAL BT1:STD_LOGIC_VECTOR(5 DOWNTO 0); SIGNAL CNT6 : INTEGER RANGE 0 TO 6; SIGNAL CNT9 : INTEGER RANGE 0 TO 9; SIGNAL A : INTEGER RANGE 0 TO 9;

SIGNAL S : INTEGER RANGE 0 TO 7;--控制点阵显示 SIGNAL S1 : INTEGER RANGE 0 TO 16;--沙漏状态 SIGNAL S2 : INTEGER RANGE 17 TO 42;--开机画面

SIGNAL SW_0 : STD_LOGIC;--SW_0 为1时运行 为0时保持开机画面 SIGNAL SW_1 : STD_LOGIC;--SW_1 为0时向下运动 为1时向上运动 SIGNAL SW_2 : STD_LOGIC;--沙漏下落速率档位 SIGNAL SW_3 : STD_LOGIC; SIGNAL SW_4 : STD_LOGIC;

SIGNAL FLAG : STD_LOGIC;-- FLAG='1'时运行 FLAG=‘0’停止


北京邮电大学数电实验-沙漏点阵实验报告 - 图文.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:大学C语言复习题 - 附答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: