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

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

EDA与VHD1语言课

实验报告

实验名称:

班级:

学号:

姓名:实验日期:8位数码扫描显示电路设计2012.10.27

实验五8位数码扫描显示电路设计

一、实验目的:学习硬件扫描显示电路的设计。

二、实验原理:图1所示是8位数码扫描显示电路。图1中g~a为数码管段信号输入端,每个数码管的七个段(g、f、e、d、c、b、a)都分别连在一起;k1~k8 为数码管的位选信号输入端。

8个数码管分别由8个位选信号k1、k2、…k8来选通,被选通的数码管才显示数据,未选通的数码管关闭。如在某一时刻,k3为高电平,其余选通信

号均为低电平,这时仅k3对应的数码管显示来自段信号端的数据,而其它7个数码管呈现关闭状态。因此,如果希望在8个数码管上显示希望的数据,就必

须使得8个选通信号k1、k2、…k8分别被单独选通,同时,在段信号输入口加上希望在该对应数码管上显示的数据,于是随着选通信号的扫变,就能实现扫

描显示的目的。

AAAAAAAA

K1 K2 K3 K4 K5 K6 K7 K3

图1 8位数码扫描显示电路

三、实验内容1:用VHDL语言设计8位数码扫描显示电路,显示输出数据直接在程序中给出。

1、程序设计

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY scan play IS

PORT( CLK:IN STD_LOGIC;

SI:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);

BI:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));

END ;

ARCHITECTURE bhv OF scan play IS

SIGNAL S: STD_LOGIC_VECTOR(3 DOWNTO 0);

SIGNAL B: STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN

PROCESS(CLK) --产生动态扫描显示的控制信号

VARIABLE SIO: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE BIO:

STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN

IF CLK'EVENT AND CLK='1' THEN

IF BIO < 8 THEN BIO:=BIO+1; ELSE BIO:=(others=>'0');

END IF;

IF SIO < 8 THEN SIO:=SIO+1; ELSE SIO:=(others=>'0');

END IF;

END IF;

S<=SIO;

B<=BIO;

END PROCESS;

PROCESS(S)

BEGIN

CASE S IS

WHEN "0000"=> SI<="00000001";

WHEN "0001"=> SI<="00000010";

WHEN "0010"=> SI<="00000100";

WHEN "0011"=> SI<="00001000";

WHEN "0100"=> SI<="00010000";

WHEN "0101"=> SI<="00100000";

WHEN "0110"=> SI<="01000000";

WHEN "0111"=> SI<="10000000";

WHEN OTHERS=> SI<="00000000"; END CASE;

END PROCESS;

PROCESS(B)

BEGIN

CASE B IS

WHEN "0000"=> BI<="0111111";

WHEN "0001"=> BI<="0000110";

WHEN "0010"=> BI<="1011011";

WHEN "0011"=> BI<="1001111";

WHEN "0100"=> BI<="1100110";

WHEN "0101"=> BI<="1101101";

WHEN "0110"=> BI<="1111101";

WHEN "0111"=> BI<="0100111";

WHEN "1000"=> BI<="1111111";

WHEN "1001"=> BI<="1101111";

WHEN "1010"=> BI<="1110111";

WHEN "1011"=> BI<="1111100";

WHEN "1100"=> BI<="0111001";

WHEN "1101"=> BI<="1011110";

WHEN "1110"=> BI<="1111001";

WHEN OTHERS=> BI<="1110001"; END CASE; END PROCESS; END bhv;

注意:编程下载之前,将扬声器下方的 JDSP 跳线开关跳至“ close ”任意电 路模式皆可。引脚锁定参考附图12所示8个数码管I/O 连接图(图中p~a 为数 码管段信号,每个数码管的八个段都分别连在一起;s1~s8为数码管的位选信号)。

3、引脚锁定以及硬件下载

选择目标器件EP1C3选实验电路模式5。CLK 接 clock0(引脚号为93);输 出BI 接数码管(PIO49-POI43)显示译码输出,输出SI 接数码管位选信号 (PIO41-PIO34),通过短路帽选择 clockO 接65535Hz 信号

8理

PJO49 PJO4S PIO47 PJO4^ P1O45

piO43 PIOO

Sil i&Ti

PI041

PIO40 ? D

53 54

PIO39 1 £

PIO33 □ PIC37 e .f

S5 S5 S7

PIO36

PIO35

g

Pg

^

GW48-PK2^fe1溺K 『用丈个盘沂世QI 探哥 附

图12 GW 眼PK2冲捕显示模式时的连接方 式:8数码管扫ffi 式显示,输入信号高胞平有

2、仿真波形

4、实验结果

编程下载之前,将扬声器下方的JDSP跳线开关跳至“ close”编译下载成功后,可以看到8 位数码扫描显示电路在该对应数码管上显示的数据,于是随着选通信号的扫变,就能实现扫描显示的目的。

相关主题
相关文档
最新文档