fpga数码管显示实验原理

合集下载

数码管显示控制实验原理

数码管显示控制实验原理

数码管显示控制实验原理
嘿,朋友们!今天咱来聊聊数码管显示控制实验原理。

想象一下,数码管就像是一个个小小的窗户,每个窗户里都能显示出不同的数字或符号。

其实啊,这原理就好像是一个聪明的指挥家在控制着一场精彩的灯光秀。

数码管里的每一段就像是一个小灯,通过巧妙地控制这些小灯的亮灭,就能组合出我们想要的数字啦。

比如说,要显示数字“8”,那就得让数码管的所有段都亮起来,就像把所有的灯光都打开,一下子就呈现出一个完整的“8”啦。

而要显示其他数字呢,就按照特定的组合让相应的段亮起来就行。

这就好像我们家里的电灯开关,想开哪个灯就按哪个开关,只不过这里的开关是通过电路和程序来控制的哦。

在实验里,我们就是要搞清楚怎么去设置这些开关,让数码管乖乖地显示出我们想要的东西。

是不是感觉挺有意思的呀?就像是在玩一个超级有趣的电子游戏,只不过这个游戏是关于数字和电路的。

所以,下次当你看到数码管显示出清晰的数字时,就可以想象一下背后那个神奇的“指挥家”是怎么工作的啦!。

拨码开关输入数码管显示实验

拨码开关输入数码管显示实验

综合课程设计实验报告班级:姓名:学号:11指导老师:实验名称:拨码开关输入数码管显示实验实验要求:1. 掌握数码管显示原理2. 掌握拨码开关工作原理3. 通过FPGA用拨码开关控制数码管显示实验目标:4位拨码开关分别对应4位数码管,拨动任意1位开关,对应的数码管将显示数字1,否则显示数字0。

实验设计软件Quartus II实验原理1.数码管显示模块电路原理图:如图所示,数码管中a,b,c,d,e,f,g,dp分别由一个引脚引出,给对应的引脚高电平,则对应引脚的LED点亮,故我们在程序中可以设定一个8位的二进制数reg【7:0】h,每一位对应一个相应的引脚输出,那么我们就可以通过对x的赋值,控制对应的8个LED亮灭的状态进行数字显示。

例如,如果我们显示数字2,则在数码管中,a、b、d、e、g亮,c、f、dp不亮,则显示的是数字2,即h=’b代表显示数字2。

2.拨码开关模块电路原理图:拨码开关有8个引脚,每个引脚对应于数码管的一个LED灯,当拨码开关的一个引脚是高电平时,则对应的数码管一个LED灯亮,其他7个LED等不亮。

通过此原理来实现数码管的LED灯亮暗情况从而实现数码管的数字显示。

例如当第一个拨码接通时,此时输入信号为8'b对应的数码管的输出信号为out=8'b,此时相当于数码管a,b,c,d,e,f,g亮,7段数码管全部显示,显示的数字为8。

程序代码module bomakaiguan(out,key_in,clk);assign p='b1111;output[7:0] out=8'b;input[7:0] key_in;input clk;reg[7:0] out;always @(posedge clk)begincase(key_in)8'b: out=8'b;8'b00000001: out=8'b01100000;8'b00000010: out=8'b;8'b00000100: out=8'b;8'b00001000: out=8'b01100100;8'b00010000: out=8'b;8'b00100000: out=8'b;8'b01000000: out=8'b;endcaseendendmodule。

(VHDL实验报告)数码管显示(一位数码管显示0-9,八位数码管显示学号后八位)

(VHDL实验报告)数码管显示(一位数码管显示0-9,八位数码管显示学号后八位)
信号源模块的时钟选择为 1KHZ,第一个实验则有一位数码管重重复显示 0-9 的数,第二个实验则八位数码管显示了学号后8 位。其部分结果如下所示:
(1)一位数码管显示0-9:
(2)八位数码管显示学号后八位: 七、心得体会
七段码管位选输入信号 七段码管位选输入信号 七段码管位选输入信号
五、 实验步骤
1、打开 QUARTUSII 软件,新建一个工程。 2、建完工程之后,再新建一个VHDL File,打开VHDL 编辑器对话框。 3、按照实验原理和自己的想法,在VHDL 编辑窗口编写VHDL 程序。其 程序如下所示:
(1)一位数码管显示0-9:
电子科技大学成都学院学院
标准实验报告
(实验)课程名称 数字电路 EDA 设计与应用
姓名 乱弹的枇杷 学号 专业 指导教师
一、 实验名称 数码管显示(一位数码管显示 0-9,八位数码管显示学号
后八位)
二、 实验目的 1、了解数码管的工作原理。 2、学习七段数码管显示译码器的设计。 3、掌握 VHDL 的 CASE 语句及多层次设计方法。
信号名称对应fpga管脚名说明7segaf13七段码管段输入信号7segbf14七段码管段输入信号7segcf15七段码管段输入信号7segde15七段码管段输入信号7segef16七段码管段输入信号7segff17七段码管段输入信号7segge18七段码管段输入信号7segdpf18七段码管dp段输入信号7segsel0g18七段码管位选输入信号7segsel1g17七段码管位选输入信号7segsel2g16七段码管位选输入信号实验步骤1打开quartusii软件新建一个工程
信号名称 7SEG-A 7SEG-B 7SEG-C 7SEG-D 7SEG-E 7SEG-F 7SEG-G 7SEG-DP 7SEG-SEL0 7SEG-SEL1 7SEG-SEL2

《FPGA设计与应用》数码管显示实验

《FPGA设计与应用》数码管显示实验

《FPGA设计与应用》数码管显示实验一、实验目的1.学习动态数码管的工作原理;2.实现对EGO1开发板四位动态数码管的控制;二、实验内容实现对EGO1开发板四位动态数码管的控制,使其能够正常工作;三、实验要求在EGO1开发板上显示想要的数字。

四、实验背景知识1.LED数码管基础知识在数码管上显示数字就是将相应的段位点亮组成要显示的数字,共阴数码管的码值表如下所示,‘1’代表相应的管脚输出高电平,点亮相应段位,‘0’代表相应的管脚输出低电平,不点亮相应段位。

2.动态数码管原理EGO1 开发板上使用的是共阴极动态数码管,这种数码管有四个共阴极分别选通对应的每位数码管,四位数码管的八个段码脚连接在一起。

动态数码管显示的原理是:每次选通其中一位,送出这位要显示的内容,然后一段时间后选通下一位送出对应数据,4 个数码管这样依次选通并送出相应的数据,结束后再重复进行。

这样只要选通时间选取的合适,由于人眼的视觉暂留,数码管看起来就是连续显示的。

五、实验方案及实现1、数码管显示的设计共分3个模块:(1)数码管封装模块(2)数码管设计模块(3)顶层模块数码管封装模块代码:module smg_ip_model(clk,data,sm_wei,sm_duan);input clk;input [15:0] data;output [3:0] sm_wei;output [7:0] sm_duan;integer clk_cnt;reg clk_400Hz;always @(posedge clk)if(clk_cnt==32'd100000)begin clk_cnt <= 1'b0; clk_400Hz <= ~clk_400Hz;endelseclk_cnt <= clk_cnt + 1'b1;reg [3:0]wei_ctrl=4'b1110;always @(posedge clk_400Hz)wei_ctrl <= {wei_ctrl[2:0],wei_ctrl[3]}; reg [3:0]duan_ctrl;always @(wei_ctrl)case(wei_ctrl)4'b1110:duan_ctrl=data[3:0];4'b1101:duan_ctrl=data[7:4];4'b1011:duan_ctrl=data[11:8];4'b0111:duan_ctrl=data[15:12];default:duan_ctrl=4'hf;endcasereg [7:0]duan;always @(duan_ctrl)case(duan_ctrl)4'h0:duan=8'b0011_1111;4'h1:duan=8'b0000_0110;4'h2:duan=8'b0101_1011;4'h3:duan=8'b0100_1111;4'h4:duan=8'b0110_0110;4'h5:duan=8'b0110_1101;4'h6:duan=8'b0111_1101;4'h7:duan=8'b0000_0111;4'h8:duan=8'b0111_1111;4'h9:duan=8'b0110_1111;4'ha:duan=8'b0111_0111;4'hb:duan=8'b0111_1100;4'hc:duan=8'b0011_1001;4'hd:duan=8'b0101_1110;4'he:duan=8'b0111_1000;4'hf:duan=8'b0111_0001;数码管设计模块module test(clk,data);input clk;output [15:0]data;reg clk_1Hz;integer clk_1Hz_cnt;always @(posedge clk)if(clk_1Hz_cnt==32'd2*******-1)begin clk_1Hz_cnt <= 1'b0; clk_1Hz <= ~clk_1Hz;end elseclk_1Hz_cnt <= clk_1Hz_cnt + 1'b1;reg [39:0]disp=40'h1234567890;reg [15:0]data;always @(posedge clk_1Hz)begindisp <= {disp[35:0],disp[39:36]};data <= disp[39:24];endEndmodule顶层模块module smg_ip(clk,sm_wei,sm_duan);input clk;output [3:0]sm_wei;output [7:0]sm_duan;wire [15:0]data;wire [3:0]sm_wei;wire [7:0]sm_duan;test U0 (.clk(clk),.data(data));smg_ip_model U1(.clk(clk),.data(data),.sm_wei(sm_wei),.sm_duan(sm_duan)); endmodule六、实验结果Vivado仿真:上实验板实操:七、实验心得次实验主要学习了利用vivado软件实现数码管的显示,利用编程来实现,并且还对动态数码管的原理进行了一定的学习,包括上次实验学习到的模块化设计,方便程序的调试,程序运行过程中并不顺利,一直没有创建出pin文件夹,最后还是在老师的帮助下完成了pin文件夹的创建,导入到板子后完成了本次实验的设计。

《FPGA设计与应用》数码管显示实验一

《FPGA设计与应用》数码管显示实验一

《FPGA设计与应用》数码管显示实验一、实验目的和要求
1.学习动态数码管的工作原理;
2.实现对EGO1开发板四位动态数码管的控制;
二、实验内容
实现对EGO1开发板四位动态数码管的控制,使其能够正常工作;
三、实验要求
在EGO1开发板上显示想要的数字。

四、操作方法与实验步骤
1、八段数码管的动态显示原理:
2、数码管显示的设计共分3个模块:
(1)数码管封装模块
(2)数码管设计模块
(3)顶层模块
数码管动态显示的MODULE实现:
模块顶层设计——显示4个(位)十进制数
逻辑实现:
确定当前显示的位
确定当前“位”需要显示的“数”:
将“数”翻译成相应的“段码”
仿真测试台代码编写与仿真测试定义时间标尺:
定义测试Moudle
实例化被测Moudle
定义激励信号与响应信号
构造激励信号:
五、实验数据记录和处理实验代码如下:
设计文件:(部分)
仿真文件:
约束文件:
六、实验结果与分析网表结构:
仿真图像:
实物图:
七、讨论和心得
通过这次实验,我学会了数码管的动态显示,每一个数码管共用一套电路,显示时只需控制哪一个数码管进行显示。

虽然一次只能控制单独一个数码管进行显示,但可以快速切换数码管显示,利用人眼的”视觉暂留"来“同步”进行显示。

最后我明白了我们不要遇到一点困难就退缩,就去向老师同学寻求帮助,自己是自己最好的老师,只有我们靠自己的不断修改出正确结果,才会对这个知识掌握的更加透彻。

实验03静态数码管显示

实验03静态数码管显示

实验三 静态数码管显示一.实验目的 1.了解数码管内部电路结构; 2.学习7段数码管显示译码器的设计; 3. 学习LPM 兆功能模块的调用。

二. 准备知识为了对数字电路进行控制、直观观察数字电路的设计结果,CPLD/FPGA 器件往往要和一些外部接口电路相连,前面实验中实验的二极管、DIP 开关、脉冲信号源等都属于外部接口电路。

在编译前我们进行的锁定管脚,就是把设计电路(元件)的数字信号输入、输出连到相应的CPLD/FPGA 器件管脚;而CPLD/FPGA 器件的一些管脚在硬件上和外部的接口电路相连;这样就把设计的输入、输出管脚和外部的接口电路相通,以便对电路进行控制(输入)、观察结果(输出)。

通常的外部接口电路有:二极管、7VGA 接口、鼠标接口、键盘、时钟信号接口、A/D 接口、D/A 接口、UART 接口、I 2C 控制器接口等其它数字信号接口。

数码管LED 显示是工程项目中使用广泛的一种输出显示器件。

从数码管的个数上数码管分为单联和多联,单联数码管的封装结构如图3.1所示;从电路连接上数码管分为共阳极和共阴极2种,共阴极数码管是将8个发光二极管的阴极连接在一起作为公共端,如图3.2所示;而共阳极数码管是将8个发光二极管的阳极连接在一起作为公共端,如图3.3所示。

公共端通常称为位码或选通位,而将其它8位称为段码。

底部管脚 上部结构图数码管的e 、d 、c 、b 、a 。

我们以图3.3所A11脚为低电平,这样发光二极1”,就需要位码为高电平,BC 段码为低电平,正向导通而发光,而其他的段码为高电平,无电流通过不发光。

故8位段码的需要赋二进制值为“00000011”,位码赋值为高电平,这就是所谓的“译码”。

位码使用了三极管。

从硬件电路原理图上可知,FPGA 器件的IO 管脚为低电平时,数码管的位码管脚为高电平,导通。

本实验通过分频器得到1Hz 的时钟信号,加载于4位计数器的时钟输入端。

计数器循环输出0~9、A~F 共16个数。

verilog共阴极数码管扫描显示现象描述

verilog共阴极数码管扫描显示现象描述

共阴极数码管是一种常见的显示器件,用于显示数字、字母和符号等信息。

在共阴极数码管中,所有的阴极(即数码管的段)都连接在一起,而阳极则分别连接到控制芯片的输出引脚上。

共阴极数码管的扫描显示原理如下:
1.首先,通过控制芯片的输出引脚,将对应数字或字符的阳极(即数码管的位)置为
低电平,其他位置为高电平。

2.当某一位的阳极被置为低电平时,该位对应的阴极段需要显示的内容也会被激活。

例如,如果要显示数字"0",则会激活数码管的a、b、c、d、e、f段。

3.接下来,控制芯片会快速切换到下一位,依次将每一位的阳极置为低电平,并相应
地激活阴极段。

4.循环上述步骤,不断切换每一位的阳极,以实现连续的扫描显示效果。

由于共阴极数码管的阴极段都是连接在一起的,显示时只能同时激活一位的阳极,因此需要快速地切换扫描每一位,以使人眼产生连续的视觉效果。

通过高速的扫描和刷新频率,可以让人眼感觉到所有的位都在同时显示,从而呈现出完整的数字、字母或符号。

需要注意的是,共阴极数码管的显示亮度较低,因为每个段都是短暂地被激活并切换显示,所以显示亮度要比共阳极数码管略低。

另外,使用共阴极数码管时,控制芯片需要按照特定的顺序和时间间隔进行扫描,确保每一位都能得到正确的激活和显示。

fpga数码管动态显示原理

fpga数码管动态显示原理

fpga数码管动态显示原理FPGA数码管动态显示原理介绍本文将为读者详细介绍FPGA数码管动态显示的原理。

FPGA(可编程门阵列)是一种灵活的集成电路,可以根据设计人员的需求进行逻辑门的编程和配置。

数码管是一种数字显示设备,通过控制不同的段点亮可以显示不同的数字和字母。

基本原理FPGA数码管动态显示的基本原理如下:1.FPGA通过编程和配置可以实现不同的逻辑功能,其中包括控制数码管的段点亮。

2.数码管由多个段组成,每个段可以独立控制点亮与否。

3.数码管的段的编号是根据国际标准定义的,如a、b、c、d、e、f、g等。

4.数码管的动态显示是通过快速切换每个段的点亮状态来实现的。

原理详解FPGA数码管动态显示的原理更详细地描述如下:1.FPGA通过输入控制信号来选择需要显示的数字或字母。

2.FPGA将该数字或字母转换为相应的数码管段的控制信号。

3.FPGA通过时序控制逻辑来控制数码管段的点亮与否,实现数字或字母的显示。

4.FPGA在一个很短的时间内迅速切换不同的数码管段的点亮状态,使其看起来像是同时显示的。

5.通过不断重复上述步骤,FPGA可以实现数码管的动态显示。

应用实例FPGA数码管动态显示的应用实例包括但不限于以下几种:1.时钟显示:FPGA可以控制数码管动态显示当前时间的小时和分钟。

2.计数器:FPGA可以控制数码管动态显示计数器的值。

3.温度显示:FPGA可以根据输入的温度值,控制数码管动态显示当前的温度。

总结本文简要介绍了FPGA数码管动态显示的原理,包括基本原理和原理详解。

通过编程和配置FPGA,可以实现数码管的动态显示,从而达到显示不同数字和字母的目的。

同时,本文也提及了一些应用实例,展示了动态显示的广泛应用领域。

更大程度上,动态显示技术可以推动数字显示的发展,提供更丰富多样化的显示效果。

对于创作者而言,理解数码管动态显示的原理,可以在设计中灵活运用这一技术,创造出更具创意和功能性的作品。

FPGA实验报告实验

FPGA实验报告实验

西南科技大学实验报告课程名称:基于FPGA的现代数字系统设计实验名称:基于HDL十进制计数、显示系统设计姓名:学号:班级:通信1301指导教师:刘桂华西南科技大学信息工程学院制基于HDL十进制计数、显示系统设计一、实验目的1、掌握基于语言的ISE 设计全流程;2、熟悉、应用VerilogHDL描述数字电路;3、掌握基于Verilog的组合和时序逻辑电路的设计方法;4、掌握chipscope 片内逻辑分析仪的使用与调试方法。

二、实验原理1、实验内容:设计具有异步复位、同步使能的十进制计数器,其计数结果可以通过七段数码管、发光二极管等进行显示。

2、模块端口信号说明:输入信号:Clk_50m ---系统采样时钟clk -------待计数的时钟clr ---------异步清零信号,当clr=0,输出复位为0,当clr=1,正常计数ena---------使能控制信号,当ena=1,电路正常累加计数,否则电路不工作输出信号:q[6:0]---------驱动数码管,显示计数值的个位cout -----------1bit 数据,显示计数值向十位的进位COM-----------共阳级数码管,公共端(接地,参考开发板原理图3、以自顶向下的设计思路进行模块划分:整个系统主要设计的模块是:十进制计数模块和数码管驱动模块,由于实验板的按键为实现硬件防抖,则需要将按键输入的时钟clk,先通过消抖模块消抖后,再输出至后续使用。

1)十进制计数器模块设计输入: CLK -------待计数的时钟CLR ---------异步清零信号,当CLR =0,输出复位为0,当CLR =1,正常计数。

EN---------使能控制信号,当EN=1,电路正常累加计数,否则电路不工作输出:SUM[3:0]---------- 计数值的个位。

即,在CLK 上升沿检测到SUM=9 时,SUM 将被置0,开始新一轮的计数。

tc ------------计数值的十位进位,即:只有在时钟CLK 上升沿检测到SUM=9 时,TC将被置1,其余情况下TC=0;在设计中可以使用always,if-else-if语句实现,设计中注意不要在两个以上的always 模块中对同一个变量进行赋值,否则会产生多重赋值源(multi-source)的问题。

FPGA显示译码电路实验报告

FPGA显示译码电路实验报告

FPGA显示译码电路实验报告实验课程名称:FPGA应用开发实验实验项目名称:显示译码电路班级:姓名:学号:成绩:________________一、实验目的1.实现常见英语字母显示。

2.实现十六进制计数显示。

3.加深PLD设计的过程,并比较原理图输入和文本输入的优劣。

二、实验原理(1)显示简单字符七段数码管显示电路如下图所示:参考原理图:图中包含一个七段解码器模块,c2~c0是解码器的3个输入,当输入值不同时,输出不同的字符。

如表中所示,当输入值为100~111时,输出空格,即数码管全暗。

七段数码管的不同段位用数字0~6表示,注意七段数码管是共阳极的,即各管段输入低电平时,数码管亮;否则数码管暗。

(2)显示0~9数字在完成简单字符显示电路之后,设计一个用于显示0~9数字的七段数码管电路。

电路图如下图所示,c3~c0是七段数码器的输入,当输入0000~1001时,则输出0~9,如表中所示;当输入1010~1111时,输出空格。

参考原理图:(3)循环显示4个字符电路的工作原理是,输入端U、V、W和X的输入值分别是000、001、010和011,通过s1和s0选择四个输入端其中一个作为七段解码器的输入值,从而显示H、L、E和O任一字符。

参考原理图:三、实验步骤(1)显示简单字符<1>VHDL硬件描述语言为:<2>功能仿真:<3>时序仿真:<4>引脚分配:<5>程序下载:<1>VHDL硬件描述语言为:<2>功能仿真:<3>时序仿真:<4>引脚分配:<5>程序下载:在DE2上验证,拨动开关,能显示数字0-9,实验结果与设计要求一致。

(3)循环显示4个字符<1>VHDL硬件描述语言:<2>功能仿真:<3>时序仿真:<4>引脚分配:<5>程序下载:在DE2上验证,能够循环显示四个字符,实验结果与设计要求一致。

七段数码管的动态扫描显示实验报告

七段数码管的动态扫描显示实验报告

实验四七段数码管的动态扫描显示一、实验目的1.进一步熟悉QuartusII软件进行FPGA设计的流程;2.掌握利用宏功能模块进行常用的计数器,译码器的设计;3.学习和了解动态扫描数码管的工作原理的程序设计方法;二、实验原理及过程实验板上面常用的4为联体的共阳极7段数码管。

其接口电路是把所有数码管的8个笔划段a-h同名端连接起来,而每一个数码管由一个独立的公共极COM端控制。

对于这种结构的数码管,采用动态显示的方法是最为广泛的一种显示方式之一。

在轮流点亮的过程中每位显示器的点亮时间都极为短暂,但由于人的视觉暂留现象以及发光二极管的余晖效应,尽管实际上每个显示器并非同时点亮,但只要扫描的速度足够快(如达到30Hz 以上),给人的印象就是一组稳定的显示数据,不会有闪烁感。

本次实验要求在实验板上实现显示00000000-99999999的十进制计数器。

使用的是宏模块产生一个16位的二进制计数器counter()作为4个数码管的显示数据;编写一个分频模块div,其输出作为计数器counter()的时钟信号;编写数码管驱动模块segmain,完成7段译码和扫描显示控制1、建立工程,并建立顶层图。

2、设计计数时钟设计一分频器,对50Mhz分频输出到计数器,让计数器以较慢速度递增。

建立.v文件,输入以下代码module int_div(clk,div_out);input clk;output reg div_out;reg[31:0] clk_div;parameter CLK_FREQ='D50_000_000;parameter DCLK_FREQ='D10;always@(posedge clk)beginif(clk_div<CLK_FREQ/DCLK_FREQ)clk_div<=clk_div+1;elsebeginclk_div<=0;div_out=~div_out;endendendmodule输入完成后,将该文件设为顶层文件,并分析该设计文件,用于检查设计错误。

FPGA入门系列实验教程——数码管动态显示

FPGA入门系列实验教程——数码管动态显示

艾米电子工作室FPGA入门系列实验教程FPGA入门系列实验教程V1.0前言目前市场销售FPGA开发板的厂商很多,但大多只提供些简单的代码,没有详尽的文档和教程提供给初学者。

经验表明,很多学生在学习FPGA设计技术的过程中,虽然刚开始学习热情很高,但真正坚持下来一直到“学会”的却寥寥无几,除了学生个人毅力的因素外,另外一个更主要的原因就是所选的开发板缺少配套的说明文档和手把手系列的入门教程。

原本FPGA的学习门槛相对于单片机来说就高了不少,再加上缺少手把手系列教程资料,这就给初学者学习FPGA增添了更多的困难,很多初学者因为找不到入门的方法而渐渐失去了学习FPGA的兴趣和信心。

作者从接著到系统学习FPGA有两年多的时间了,学习FPGA的时间不长,期间因为没有专业的老师指导,自己摸索学习FPGA走了很多的弯路。

有过问题迎刃而解的快乐,也有过苦苦寻求结果和答案的痛苦历程,回想起自己学习FPGA的历程,从开始的茫然,到后来的疯狂看书,购买开发板,在开发板上练习各种FPGA实例,到最后能独立完成项目,一路走来,感受颇多。

发觉学习FPGA只要选择正确的方法是有捷径可走的,有很多人学习FPGA很长时间,因为没有找到正确的方法还是停留在入门阶段。

针对现状,作者从初学者的角度出发,结合作者学习FPGA的经验和亲身体会,遵循“宁可啰嗦一点,也不放过细节”的原则编写了详尽的实验教程作为艾米电子工作室开发套件的配套教程使用,主要面向FPGA初学者。

FPGA的学习只有通过大量的操作与实践才能很好并快速的掌握。

为此本实验教程从点亮LED 灯写起,深入浅出,以图文并茂的方式由易到难地列举了很多实例,采用手把手、Step by Step的方式让初学者以最快的方式掌握FPGA技术的开发流程以及Quartus II软件的使用,从而激起初学者学习FPGA的兴趣。

在教程中作者采用“授人以渔”的方式,努力做到不仅讲述怎样进行试验,而且分析为什么这样做,以便初学者深刻理解并快速掌握FPGA的学习方法。

FPGA与数字系统设计-实验六7段数码显示译码器设计

FPGA与数字系统设计-实验六7段数码显示译码器设计

7段数码显示译码器设计1、实验目的熟悉ISE系列软件的设计流程和基本工具使用,学习7段数码显示译码器设计,学习VHDL的CASE语句应用。

2、实验内容7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是二进制的,所以输出表达都是十六进制的,为了满足十六进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中实现。

本实验中,7段译码器的数码管采用共阴数码管,而且不考虑小数点的发光管。

其输出信号LED7S的7位分别接数码管的7个段,高电平有效。

例如,当LED7S输出为“1101101”时,数码管的7个段:g、f、e、d、c、b、a分别接1、1、0、1、1、0、1;接有高电平的段发亮,于是数码管显示“5”。

3、实验器材Spartan 3E开发板。

4、实验说明实验中所需要的源文件在本报告附录中。

5、实验步骤步骤1:创建ISE工程(1)启动桌面上的ISE9.1图标,在Project Navigator中选择File→New Project。

(2)在弹出的对话框(见图1)中,设置工程名为ymq7s,工程存放路径为E:\work\,顶层模块类型选择HDL,并单击Next按钮。

图1 ISE工程属性对话框(3)出现图2所示对话框,目标器件选择spartan3E,具体设计如下图。

图2 ISE工程属性对话框(4)一直点击Next,直到出现图3(即是刚才所设定的),最后点击Finish。

图3 工程设计总表出现图4,这就是所建立的工程,现在我们需要在里面完成我们的设计。

图4 ISE工程属性对话框步骤2:创建新的VHDL设计文件(1)在ISE用户界面中,选择Project→New Source。

(2)在弹出的对话框(见图5)中,选择VHDL Module作为源程序类型,设置文件名为ymq7s,并单击“下一步”按钮。

图5 VHDL的New Source Wizard(3)点击Next,直到出现图6,直到Finish。

FPGA实验三 七段数码管静态与动态显示实验报告

FPGA实验三 七段数码管静态与动态显示实验报告

得分:数字系统设计课程实验实验三七段数码管静态与动态显示实验项目三实验名称:七段数码管静态与动态显示实验目的:通过一个七段数码管显示器的设计,让学生掌握组合逻辑电路的设计方法;掌握组合逻辑电路的静态测试方法;再次基础上扩展了解数码管动态驱动方法并实现,要求在数码管上动态显示4个不同数字。

实验类型:设计、验证实验学时:2学时每组人数:1人实验内容及方法:用七段数码显示器显示0-F16个数字。

设计部分采用VHDL语言完成。

在完成静态显示后思考如何完成动态显示。

实验仪器设备:计算机,红芯开发板。

注意:实验板所用的数码管是共阳极。

原来PPT上讲的例子是共阴极。

在程序编写时注意频率的问题。

通过数码管片选信号选通数码管,以控制输出。

段选时0有效一、VHDL代码:--七段数码管静态与动态显-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;---------------------------------------------------------entity decl7isgeneric(DWIDTH:integer:=18);port(clk,en:in std_logic;led7s:out std_logic_vector(6downto0);bitsele:out std_logic_vector(3downto0));end decl7;---------------------------------------------------------architecture behave of decl7issignal key:std_logic_vector(3downto0);signal temp:std_logic_vector(DWIDTH-1downto0);signal count:std_logic_vector(1downto0);signal fp:std_logic;signal clkout:std_logic;------------------------------------------------------------------------------------------------------------------begin---------------------------------------------------------P1:process(clk)--时钟进行18次分频(引脚上接的是50MHZ时钟);beginif en='1'thenif clk'event and clk='1'then temp<=temp+'1';else NULL;end if;else NULL;end if;end process;clkout<=temp(DWIDTH-1);---------------------------------------------------------P2:process(clkout)--分频后的时钟作为位选时钟;beginif clkout'event and clkout='1'thenif count="11"then count<="00";else count<=count+"01";end if;else null;end if;end process;---------------------------------------------------------P3:process(count)--位选(片选)的同时跳转到段,位选(片选)0有效;begincase count iswhen"00"=>bitsele<="1110";key<="0010";--数码管最后一位显示2;when"01"=>bitsele<="1101";key<="0001";--数码管倒数第二位显示1;when"10"=>bitsele<="1011";key<="0100";--数码管第二位显示4;when"11"=>bitsele<="0111";key<="1001";--数码管第一位显示9;when others=>null;end case;end process;---------------------------------------------------------P4:process(key)--段选,数码管为共阳极,段选0有效;begincase key iswhen"0000"=>led7s<="1000000";--数码管显示0;when"0001"=>led7s<="1111001";--数码管显示1;when"0010"=>led7s<="0100100";--数码管显示2;when"0011"=>led7s<="0110000";--数码管显示3;when"0100"=>led7s<="0011001";--数码管显示4;when"0101"=>led7s<="0010010";--数码管显示5;when"0110"=>led7s<="0000010";--数码管显示6;when"0111"=>led7s<="1111000";--数码管显示7;when"1000"=>led7s<="0000000";--数码管显示8;when"1001"=>led7s<="0010000";--数码管显示9;when"1010"=>led7s<="0001000";--数码管显示A;when"1011"=>led7s<="0000011";--数码管显示b;when"1100"=>led7s<="1000110";--数码管显示c;when"1101"=>led7s<="0100001";--数码管显示d;when"1110"=>led7s<="0000110";--数码管显示E;when"1111"=>led7s<="0001110";--数码管显示F;when others=>null;end case;end process;---------------------------------------------------------end behave;---------------------------------------------------------二、波形仿真:波形仿真截图仿真时,clk输入的是50MHZ的方波,使能端en输入高低平有效,数码管位选输出1110,也就是在仿真的630ns内数码管最后一位被选通,与此同时,段选输出为0100100,也就是数码管显示数字2。

课程设计(基于FPGA的数码管十进制显示)

课程设计(基于FPGA的数码管十进制显示)

中北大学课程设计说明书指导教师:崔永俊职称: 副教授2012 年 6 月 22 日目录1、课程设计的目的 (1)2、课程设计内容和要求 (1)2.1、设计内容 (1)2.2、设计要求 (1)3、设计方案及实现情况 (1)3.1、设计思路 (1)3.2、工作原理及框图 (1)3.3、各模块功能描述 (3)3.4、仿真结果 (9)3.5、试验箱验证情况 (10)4、课程设计总结 (11)5、参考文献 (12)1、课程设计的目的1)、学习操作数字电路设计实验开发系统,掌握数码管显示模块的工作原理及应用。

2)、掌握组合逻辑电路、时序逻辑电路的设计方法。

3)、学习掌握可编程器件设计的全过程。

2、课程设计内容和要求2.1、设计内容1)、学习掌握键盘控制模块、数码管显示模块的工作原理及应用;2)、熟练掌握VHDL编程语言,编写键盘控制模块的控制逻辑。

2.2、设计要求1)、仿真所编写的程序,模拟验证所编写的模块功能;2)、下载程序到芯片中,硬件验证所设置的功能,能够实现十进制数的显示;3)、整理设计内容,编写设计说明书。

3、设计方案及实现情况3.1、设计思路1)、键盘不断扫描,有按键按下则输出相应信号,并且发出使能信号给处理模块。

2)、处理模块对收到的信号进行判断,决定执行什么操作,对数据进行运算。

3)、对于数字键需要移位显示,功能键要考虑优先级判断,进行倒计时操作时要能对时钟信号分频自减。

4)、专门的程序段用来不断将当前数据各位求出,译码成显示内容输给数据选择模块。

5)、数据选择模块根据扫描电路选择信号将各位数字显示出来。

3.2、工作原理及框图1、键盘原理键盘电路网络很像一台微缩的计算机,它拥有自己的处理器和在该处理器之间传输数据的电路,这个电路的很大一部分组成了键矩阵。

键矩阵是位于键下方的一种电路网格。

在所有的键盘(中,每个电路在每个按键所处的位置点下均处于断开状态。

当您按下某个键时,此按键将按下了开关,从而闭合电路,使得少量电流可以通过。

FPGA与数字系统设计-实验七 数码管的动态显示电路

FPGA与数字系统设计-实验七 数码管的动态显示电路
counter<=counter+1; END IF; END PROCESS;
PROCESS(counter) BEGIN CASE counter IS WHEN “000”=>scan<=“01111111”;xianshi<=“0001”; WHEN “001”=>scan<=“10111111”;xianshi<=“0011”; WHEN “010”=>scan<=“11011111”;xianshi<=“0101”; WHEN “011”=>scan<=“11101111”;xianshi<=“0111”; WHEN “100”=>scan<=“11110111”;xianshi<=“1001”; WHEN “101”=>scan<=“11111011”;xianshi<=“1010”; WHEN “110”=>scan<=“11111101”;xianshi<=“1100”; WHEN OTHERS=>scan<=“11111110”;xianshi<=“1111”; END CASE; END PROCESS;
• 实验原理分析
LED数码管根据LED的接法不同分为共阴和 共阳两类。
以共阴式为例,如把阴极接地,在相应段的阳
极接上正电源,该段即会发光。拿8位8段共阴极数 码管来说,每一位都是将8个发光二极管(下面简称 LED)的负极接在一块,这个就是位选,接上低电平 算是选通该位。相同字段LED的正极连在一起,也有 八根线,接上高电平即点亮相应段。
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY display IS PORT( clk:IN STD_LOGIC;

FPGA_数码管译码

FPGA_数码管译码

实验报告
一.实验名称
七段数码管译码显示
二.实验目的
1)学会VHDL语言的数组使用方法
2)理解进程和结构体的概念
3)熟悉七段数码管的显示方式
三.实验原理
1)数码管结构图
2)七段数码管使用方式
LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。

这些段分别由字母a,b,c,d,e,f,g来表示。

当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。

四.实验过程
1)创建工程
2)新建VHDL文件,输入程序,结果见图表1:
图表 1
3)编译工程,查看RTL,见图表2
图表2
4)创建波形仿真文件,设置DIN的波形,进行仿真,查看结果见图表3:
4)引脚分配,见图表4
图表4
5)下载到试验箱,看结果
结果符合预期。

五.实验总结
注意事项:
1)Case语句要放在process中
2)Process()括号中最好写全在进程中涉及到的所有输入输出端口名
3)波形仿真的时候,设置端口波形时可用Count Value穷举。

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

fpga数码管显示实验原理
FPGA(Field-Programmable Gate Array)数码管显示实验是一种利
用FPGA进行数字数码管显示控制的实验。

FPGA是一种可编程逻辑器件,
可实现数字逻辑电路的设计与实现。

本实验的原理是通过FPGA控制数码
管的亮灭状态和显示的数字,以实现不同数字的显示。

整个实验可以分为数字信号生成、数码管扫描和数码管显示三个模块。

1.数字信号生成模块
数字信号生成模块是实现FPGA输出驱动数码管的主要模块。

FPGA的
管脚可以设置为输入或输出。

在本实验中,FPGA的输出管脚和数码管的
输入管脚相连,通过FPGA控制输出信号,驱动数码管显示对应数字。

数字信号生成的步骤如下:
(1)设置FPGA的输出管脚为输出模式(输出高电平或低电平);
(2)通过FPGA内部逻辑电路产生或处理需要显示的数字信号;
(3)将处理好的数字信号传输到FPGA输出管脚;
(4)输出管脚通过外部的连接线连接到数码管的输入管脚。

2.数码管扫描模块
数码管扫描模块是为了能够显示多位数字,需要对数码管进行扫描操作。

扫描操作的原理是通过快速切换数码管的亮灭状态来实现显示多个数
字的效果。

数码管通常由多个数字显示单元组成,每个数字显示单元对应一个输
入管脚,FPGA的输出信号控制数码管上的不同数字显示单元。

数码管扫描的步骤如下:
(1)设置FPGA的输出管脚为输出模式;
(2)产生一个使得一些数码管显示的数字信号;
(3)通过控制FPGA输出管脚的电平状态来选择需要显示的数码管;
(4)不断循环上述步骤,可以实现多个数码管显示的效果。

3.数码管显示模块
数码管显示模块是实现数码管上显示特定数字的部分。

在本实验中,常用的是共阳数码管和共阴数码管。

共阳数码管需要将管脚接上Vcc电源,通过地线控制输出高电平使得数码管亮起。

共阳数码管的原理是通过控制对应的输出管脚输出低电平,控制数码管上的七段LED显示不同的数字。

共阴数码管则需要将管脚接上地线,通过Vcc电源控制输出高电平使得数码管亮起。

其他的控制原理和共阳数码管类似。

通过FPGA控制数码管显示的过程如下:
(1)根据要显示的数字,将相应的控制位对应为高电平或低电平;
(2)通过FPGA的输出管脚将控制位的电平状态传输到数码管对应的输入管脚;
(3)数码管根据接收到的控制信号进行显示。

通过以上的步骤,就可以利用FPGA来完成数码管显示的实验。

通过控制FPGA输出的信号和扫描数码管的操作,可以实现多位数字的显示效
果。

这种方式不仅具有灵活性高、易于扩展的特点,还可以更好地理解FPGA的原理和操作。

相关文档
最新文档