8位数码扫描显示电路设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 位数码扫描显示电路在该对应数码管上显示的数据,于是随着选通信号的扫变,就能实现扫描显示的目的。