实验五 8位数码管扫描显示电路设计
一、 预习内容
1、什么是扫描显示; 2、怎样实现数码显示;
3、写出原理草图,写出源程序。
二、 实验目的
1、进一步熟悉用VHDL进行EDA设计方法;
2、本实验与实验4的不同之处在八个数码管都要显示; 3、进一步了解EDA实验箱的基本功能;
三、 实验器材
PC机一台、EDA教学实验系统一台、下载电缆一根(已接好)、导线若干
四、 实验要求
1、用VHDL设计一个扫描显示电路,并在实验箱上的八个数码管能同时显示自己的学号。(23408148)
2、在完成1的基础上,显示自己的学号加100.
五、实验原理与内容
实验原理:
1> 每个数码管的8个段:hgfedcba(h是小数点)都分别连在一起, 8个数码管分别由8个选通信号k1.k2.。。。k8选择,被选通的数码管(高电平)显示数据,其余关闭。如在某一时刻,k3为高电平,其余为低电平,这时仅k3对应的数码管显示来自段信号端的数据,其余的都关闭。据此,就必须使8个选通信号分别被单独选通,并同时在段信号输入口加上希望显示的数据,就能实现功能 。
2> Clk 是扫描时钟,SG 为7段控制信号,由高位之低位分别接gfedcba7个段,BT是位选控制信号。Cnt8是一个3位计数器,做扫描计数信号,由进程P2生成。进程P3是7段译码查表输出程序,进程P1 是对8个数码管选通的扫描程序。例如当CNT8=001时,K2对应的数码管被选通,同时A被赋值2,再由进程P3译码输出1001111,显示在数码管上即为2,。当cnt8扫变时,将能在8个数码管上显示23408148. 3> 本次试验不显示小数点,可把SG段控制信号向量变为8位(最高位代表小数点),并在最高位设置成恒0低电平。
1
图4-1 动态数码扫描显示硬件电路原理图
六、实验步骤
1、调出调出预先编好的的源程序,检查是否正确;
在quartus 中新建一个工程命名为SCAN_LED,将预先编辑好的程序复制入vhdl文件中,保存并命名为SCAN_LED。 2、编译、仿真程序;
点击start complilation按钮进行全程仿真没有错误后开始进行硬件仿真,首先进行引脚锁定,按照实验讲义中的器件引脚选择模式6,锁定引脚后如下图所示。
3、引脚锁定完成后,开始下载生成的sof文件,会发现数码管开始显示23408148,实验成功。
七、实验报告
1、写出实验源程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
2
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
---------------------------------------------------------- ENTITY SCAN_LED IS PORT ( clk : IN STD_LOGIC;
SG : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); --段控制信号输出 BT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ); --位控制信号输出 END SCAN_LED;
---------------------------------------------------------- ARCHITECTURE one OF SCAN_LED IS
SIGNAL CNT8 : STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL A : INTEGER RANGE 0 TO 9; BEGIN
P1: PROCESS( CNT8 ) BEGIN
CASE CNT8 IS
WHEN \
WHEN \
WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN OTHERS => NULL ; END CASE ; END PROCESS P1; P2: PROCESS(clk) BEGIN
IF clk'EVENT AND clk = '1' THEN CNT8 <= CNT8 + 1; END IF;
END PROCESS P2 ;
P3: PROCESS( A ) --译码电路 BEGIN
CASE A IS
WHEN 0 => SG <= \ WHEN 2 => SG <= \ WHEN 4 => SG <= \ WHEN 6 => SG <= \ WHEN 8 => SG <= \ WHEN 10 => SG <= \ WHEN 12 => SG <= \ WHEN 14 => SG <= \ WHEN OTHERS => NULL ; END CASE ;
3
END PROCESS P3; END one;
2、实验结果:
将生成的sof文件通过下载线下载到实验箱中,正确显示了自己的学号。改变时钟频率,可以得到不同的效果,如低频率时数码管逐个显示,高频率时数码管逐个显示频率很快,变成了同时显示。 3、心得体会:
1》本次实验要想成功,首先需要知道以下知识:位控制端是控制哪个数码
管显示。段控制端输入根据每个数码管的7个段输入的电平高低而发亮,显示所需要的数据
2》本实验用到3个进程,进程P1 是对8个数码管选通的扫描程序,进程P2做扫描计数信号,进程P3是7段译码查表输出程序。这给初学者一个启发,在编写复杂的程序时,也可以按照这种方式实现。
3》通过改变段选值可以使数码管显示不同的数值。所以显示自己的学号加100,只需要把程序A值改变即可。
4》通过改变clock0的频率可产生不同的显示效果。
八、问题及思考
扫描在视频显示中的应用:
扫描显示是通过把画面划分成很多很多帧来实现的。每一帧都是静止的图
象,快速连续地显示帧便形成了运动的假象。刷新频率越快,由于人眼的视觉停留,就会得到想要的结果。
这就像是拍摄电影一样,在拍摄武打动作时,实际中两人的动作是很慢的,
但播放时,人为的把速度放快,才得到了我们日常生活中喜欢的那种快动作效果。
4
相关推荐: