? 基于FPGA的8位数码管扫描显示电路设计_牛聚文档

基于FPGA的8位数码管扫描显示电路设计

基于FPGA的8位数码管扫描显示电路设计
预览:

8位数码管扫描显示电路设计

一、实验目的

1、学习 8位数码管扫描显示电路设计

2、继续学习元件例化语句的使用

3、继续学习 VHDL 的 CASE 语句应用及多层次设计方法

二、实验原理

图中所示的是 8位数码扫描电路, 其中每个数码管的 8个段:h 、 g 、 f 、 e 、 d 、 c 、 b 、 a(h是小数点 ) 都分别连在一起, 8个数码管分别由 8个选通信号 k1、 k2、 … k8来选 择。被选通的数码管显示数据,其余关闭。如在某一时刻, k3为高电平,这是仅 k3对应的数码管显示来自段信号端的数据,而其他 7个数码管呈现关闭状态。根据这 种电路状态, 如果希望在 8个数码管显示的数据, 就必须通过选通信号 k1、 k2、 … k8分别单独选通,并在此同时,在段信号输入口加上希望在该对应数码管上显示的数 据,于是选通信号的扫变,就能实现扫描显示的目的。

实验内容一中 clk 是扫描时钟:SG 为 7段控制信号, 由高位至低位分别接 g 、 f 、 e 、 d 、 c 、 b 、 a7个段:BT 是位选控制信号,接上图中的 8个选通信号:k1、 k2、 … k8。 程序中 cnt8是一个 3位计数器,作为扫描计数信号,由进程 P2生成;进程 P3是 7段译码查表输出程序;进程 P1是对 8个数码管选通的扫描程序,例如当 cnt8等于 “ 001”时, K2对应的数码管被选通,同时, A 被赋值 3,再由进程 P3译码输出 “ 1001111”,显示在数码管上即为“ 3”;当 cnt8扫变时,将能在 8个数码管上显 示数据:13579bdf.

三、实验内容

1、设计 8位数码管扫描显示电路并进行仿真和下载验证;

(1)实验程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY SCAN_LED IS

PORT(CLK:IN STD_LOGIC;

A1,A2,A3:IN STD_LOGIC_VECTOR(3 DOWNTO 0);

第1页/共7页 下一页>尾页