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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

EDA与VHDL语言课程实验报告

实验名称: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分别被单独选通,同时,在段信号输入口加上希望在该对应数码管上显示的数据,于是随着选通信号的扫变,就能实现扫描显示的目的。

图18位数码扫描显示电路

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

1、程序设计

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY scanplay IS

PORT( CLK:IN STD_LOGIC;

SI:OUTSTD_LOGIC_VECTOR(7 DOWNTO 0);

BI:OUT STD_LOGIC_VECTOR(6DOWNTO0) );

END ;

ARCHITECTUREbhv OF scanplay IS

SIGNAL S: STD_LOGIC_VECTOR(3 DOWNTO0);

SIGNAL B:STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

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

VARIABLE SIO: STD_LOGIC_VECTOR(3DOWNTO 0);

VARIABLE BIO:STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

IF CLK'EVENT AND CLK='1'THEN IF BIO < 8THEN BIO:=BIO+1;

ELSE BIO:=(others=>'0');

END IF;

IFSIO< 8THEN SIO:=SIO+1;

ELSESIO:=(others=>'0');

END IF;

ENDIF;

S<=SIO;

B<=BIO;

ENDPROCESS;

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";

ENDCASE;

ENDPROCESS;

PROCESS(B)

BEGIN

CASEBIS

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";

WHENOTHERS=>BI<="1110001";

END CASE;

END PROCESS;

ENDbhv;

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

2、仿真波形

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

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

(PIO41-PIO34),通过短路帽选择clock0接65535Hz信号。

4、实验结果

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

相关文档
最新文档