1、 EDA实验报告 班级: XXX 姓名: XXX 学号: XXX 1 实验四 8位数码管扫描显示 一、 实验目的 1、了解 7段数码管的工作原理; 2、学会用于 VHDL语言进行程序设计。 二、 实验原理 在本实验中,按一下 key0,完成复位功能 , clk5选择 1Hz,clk3选择的频率越高越好 。 LED的显示模块原理: LED有段码和位码之分,所谓段码就是让 LED显示出 8.的八位数据,一般情况下要通过一个译码电路,将输入的 4位 2进制数转换为与 LED显示对应的 8位段码。位码也就是 LED 的显示使能端,对于共阴级的 LED 而言,低电平使能(在本实验箱中所有的LED 均位共
2、阴级的),在本实验中设计 了一个 3 位的循环计数器,将计数结果输入到 3 8 译码器 74ls138,译码结果输出即可依次使能每个 LED。例如:要让 8个 LED 同时工作,显示数据,就是要不停的循环扫描每一个 LED,并在使能每一个 LED的同时,输入所需显示的数据对应的 8位段码。虽然 8个 LED是依次显示,但是受视觉分辨率的影响,看到的现象是 8个 LED同时工作 。 三、实验连线 1、将 EP2C5适配板左下角的 JTAG用十芯排线和万用下载区左下角的 SOPC JTAG 口连接起来,万用下载区右下角的电源开关拨到 SOPC 下载的一边 2、实验板右下方频率 源 CLK1接任意频
3、率作为扫描频率。 3、将实验板左端的 JP103全部用短路帽接上(共八个)。 四、实验内容与步骤 1、打开 Quartus II 6.0软件,点击“ File OpenProject”出现如下的对话框 (图 6.1),选中scan_seg8,点打开即可 ; 2、点击“ Tools-Programmer”后出现如下图下载对话窗口, 3、点” Edit Add File” 出现如下对话框 (图 6.2),在图 6.3 对话框中, 选中EP2C5/scan_seg8/scan_seg8.sof项目后点击打开, 回到 Programmer对话框 , 在下载对话窗口中“选中 Program/ Confi
4、gure” ,点击 Start”即进行下载。 scan_seg8.vhd原程序如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_SIGNED.ALL; ENTITY SCAN_SEG8 IS PORT(CLK3,CLK5 :IN STD_LOGIC; RST :IN STD_LOGIC; SEG_DA:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); SEG_SEL:OU
5、T STD_LOGIC_VECTOR(2 DOWNTO 0) ); END SCAN_SEG8; ARCHITECTURE ADO OF SCAN_SEG8 IS SIGNAL SEG_BUF1,SEG_BUF2,SEG_BUF3,SEG_BUF4,SEG_BUF0:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL SEG_BUF5,SEG_BUF6,SEG_BUF7,SEG_BUF8 :STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL SEG_CNT :STD_LOGIC_VECTOR(2 DOWNTO 0); EDA实验报告 班级: XXX
6、姓名: XXX 学号: XXX 2 SIGNAL SEG_TEMP:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL CLK:STD_LOGIC; BEGIN PROCESS (CLK5) BEGIN IF CLK5EVENT AND CLK5=1 THEN CLK SEG_TEMP SEG_TEMP SEG_TEMP SEG_TEMP SEG_TEMP SEG_TEMP SEG_TEMP SEG_TEMP SEG_TEMP SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA SEG
7、_DA SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA NULL; END CASE; END PROCESS; END ADO; 引脚分配( Cyclone EP2C5Q208C8): seg_d0-P3、 seg_d1-P5、 seg_d2-P6、 seg_d3-P8、 seg_d4-P10、 seg_d5-P11、 seg_d6-P12, sel0-P141、sel1-P142、 sel2-P143, clk-P130, rst-43. 管脚标号 seg_d 0到 seg_d 6分别接到 LED的 8位段码中的 7位上(由于实验中不需要在 LED 上显示“ .”,因此 8 位段码中显示“ .”的数据没有接入,其默认为低电平,有兴趣的同学可以自己修改一下程序,其管脚分配如附录三所示); sel0到 sel2接到实验箱中 74ls138的输入端; clk 为 LED 显示时钟输入 ,接到频率源 clk1。 100 脚接 key0 用来复位。管脚标号对应的 I/O如下图所示: 图 4-1 EDA实验报告 班级: XXX 姓名: XXX 学号: XXX 4 五、 实验现象 在 8 个数码管显示 “8,7,6,5,4,3,2,1“的数据隔一秒 中 ,数据向左移动 ,显示 “7,6,5,4,3,2,1,8“,依次循环。 六、实验小结